본문 바로가기
공대생 학부 스펙 & 한 거

네이버 해커톤 (NAVER AI Hacaton Speech) - 춘천 커넥트원

by 두재 2019. 12. 5.

10월 25일 금요일부터 26일 토요일까지 하는 네이버 해커톤 2019 결선에 참가했습니다.

https://github.com/Naver-AI-Hackathon/AI-Speech

 

Naver-AI-Hackathon/AI-Speech

Contribute to Naver-AI-Hackathon/AI-Speech development by creating an account on GitHub.

github.com

처음 예선에서 대략 100팀이고 그중 30팀을 추려서 본선(결선)에 진출하는 것으로 진행되었습니다.

이번 주제는 Speech였습니다. 작년 재작년에는 영화 맞추기를 하는 등 주제는 매년 바뀌는 것 같습니다. Speech에서 자세히 주제를 설명하자면 전화기를 통해 들어오는 말소리로부터 음성 인식을 하는 미션입니다.

이 네이버 해커톤의 가장 큰 특징이자 장점이 NSML입니다. NSML은 Naver Smart Machine Learning이라고 하여 머신 러닝에서 가장 귀찮고 오래 걸리고 컴퓨팅 파워가 필요한 학습 부분을 네이버에 있는 서버 컴퓨터에서 대신 진행을 해줍니다. 물론 이게 상용화가 된다면 무제한으로 풀리거나 공짜로 사용하는지는 모르겠는데 해커톤에 참석하는 사람들에게는 굉장히 여유롭게 제공해줍니다. 게다가 단순히 학습만 대신해주는 것뿐 아니라 NSML 사이트에 들어가 보면 학습을 진행시키는 세션에 대해서 여러 정보를 확인할 수 있습니다. 이 모델에 대한 정보들(배치 사이즈, 에포크 등등)부터 어떠한 로스 함수에 대한 결과가 그래프로 나옵니다. 물론 터미널 상에서의 output도 확인할 수 있고요.

머신 러닝을 연구하는 데에 있어 가장 큰 문제가 빠른 학습을 위해서 고가의 장비들이 필요하며, 언제 끝날지도 쉽게 예측이 안 되는 등 불편한 점들이 존재하는데요 '이상적인 서버에 학습을 대신 맡긴다'는 아이디어를 가진 NSML은 나름 경쟁력 있다고 생각되며 우선 매우 편합니다.

 

저는 사실 Classification이나 Super Resolution과 같은 문제는 코딩해보기도 했고 공부를 나름 했었는데 Speech 분야에 대해서는 배운 적도 없고 코딩을 직접 해본 적은 없습니다. (결선에서 네이버 관계자 분 또한, ML중에서 Speech 분야에 대해서는 사람들이 관심이 많지도 않으며 인재가 너무 적다고 하셨습니다. 재미가 없다는 것이 아니라 사람들이 맛보기조차 해보지 않아서 그런 것 같습니다.) 그래서 이 해커톤은 공부를 위해서, 경험을 위해서 나가보는 것이었습니다. 지원을 할 때에도 이제 졸업학년인데 해커톤을 한 번 나가봐야 하지 않겠냐, 게다가 네이버에서 하는 거면 나름 규모도 있을 것이고 네이버에 대해 궁금하기도 했는데 직원이나 관계자분들을 만나서 얘기하는 것도 좋겠다 싶어서 지원한 것이 크긴 했습니다. 네이버에서 다행히도 Baseline 코드를 올려주셨고, 추가로 공부할 만한 자료를 피피티로 만들어 주셨습니다. 사실 약간 대학교 수업 피피티 느낌 같았습니다. 그 과정에서 Mel Spectogram, Librosa 등을 알게 되었지만, 아직 Speech Recognition에 대해서 남에게 설명할 수준은 되지 못했습니다.

 

예선에서는 100팀 중 26등을 하여 30등 컷인 결선에 진출하게 되었습니다. 예선까지는 Batch size 조정과 loss 를 바꾸는 등 baseline 코드에서 크지 않은 조작만 하여도 올라갈 수 있었던 것 같습니다. 예선에서는 Mel Spectogram을 사용하려고 했으나 하지 못했던 것으로 기억합니다. 결선에서는 했었고요. 그렇게 결선에 진출하게 되었는데 Slack에도 들어가고 naver mail로도 소통할 수 있는 기회가 있었는데 직원분들이나 참가하신 분들이나 다 유쾌하시고 좋았던 것 같습니다. 관계자분들도 전혀 딱딱함 없었고요. 중간고사 기간이었고 해커톤에 금요일, 토요일 참석한 이후 바로 월요일과 화요일에 시험이 있었는 데에도 참석하고 싶더라고요. 


 

금요일 아침에 분당에 있는 네이버 본사(그린팩토리)로 모여 춘천에 있는 네이버 커넥트원으로 버스를 타고 이동했습니다. 매번 경부고속도로 탈 때마다 크게 초록색 건물이 보였는데 이번에 가보게 되었습니다. 로비에 들어가니 네이버 랩스 홍보같은 것도 있었고 네이버 웹사이트의 역사도 있었습니다. 사실 대학원이나 연구실은 많이 가봤어도 기업, 게다가 IT기업에는 딱히 연이 없어서 꼭 가보고 싶었는데 정말 좋았습니다. 뭐 본사 투어를 한 것은 아니지만 대학생활 동안 방문한 곳 중 설레고 신기한 곳에서 아마 높은 순위를 차지하지 않았을까 싶습니다.

본사에는 사실 한두시간 정도밖에 없었고, 춘천에 있는 커넥트원이라는 곳으로 이동했습니다. 아마 네이버에서 워크숍을 하는 곳 같습니다. 도착했을 때 첫인상은 굉장히 시골 같다는 느낌이었고 안에 들어서자 생각이 전혀 바뀌었습니다. 커넥트원은 아마 제가 방문한 곳 중 첫 번째로 인상 깊은 곳일 것 같습니다. (감가상각을 고려한 것입니다. 제가 커넥트원이 인상 깊은 곳에서 처음일 정도로 못 놀러 다닌 사람은 아닙니다.) 그런데 정말 장난이 아닙니다. 해커톤을 위해 왔지만 사실 저는 이 커넥트원이라는 시설이 너무 좋았습니다. 게다가 밥이 정말 너무 맛있었습니다. 관계자분들께서 비밀 유지? 와 비슷한 맥락으로 내부에서 찍은 사진들을 외부 SNS 등에 공유하지 말라 하여 올리지 않지만 건물 외부 디자인, 구조, 시설, 내부 인테리어, 엘리베이터, 조명이나 표지판과 같은 사소한 것들 모두가 아이디어를 북돋아 주는 것 같았습니다. 저는 아마 미래에 건물을 짓게 된다면 커넥트원과 연세대 신촌캠퍼스 공학관 앞에 있는 인공 시냇물과 벤치 두 곳에서 많이 영향을 받을 것 같습니다. 그리고 안에 체육관도 있어 농구나 배드민턴 등을 할 수 있었는데 친구들과 거의 두세 시까지 농구를 했던 것 같습니다. 

게다가 1인 1실로 숙소를 제공해 주었는데 숙소도 좋았습니다. 물론 저는 카카오미니를 쓰지만 네이버의 인공지능 스피커도 있었고 숯도 있었고 옻 향이 났습니다. 침대와 책상이 붙어있는 구조도 보기에도 좋았고 일할 때에도 좋을 것 같다고 생각했습니다. 아마 침대에 누워있다가도 노트북을 켜야 하는 개발자들의 삶을 잘 반영한 게 아닐까 싶습니다.

 

책상에는 커넥트원에 대한 책자가 있었는데 대략 100~200페이지 쯤 된 것 같습니다. 앉아서 다 읽었고요. 커넥트원을 디자인하고 건축하는 데에 모든 정보들이 담겨있습니다. 특히나 친환경을 굉장히 중시했다고 합니다. 그래서 건물을 짓기 전 부지에 있는 동식물들을 조사하고 보존하여 다시 심었다는 점이나 숙소에 있는 여러 점들은 굉장히 사용자 입장에서 기분도 좋고 건강에도 좋으며 환경에도 좋다고 생각했습니다.

 

약간 글이 커넥트원에 대한 찬양 및 리뷰가 되어가고 있는데, 다시 해커톤으로 돌아가자면 아주 사실은 하루동안 엄청난 결과가 향상되는 것은 쉽지 않습니다. 아무리 NSML을 사용하더라도 30팀이나 있기 때문에 CPU와 GPU가 어느 정도 제한되어 있고, 아무리 성능이 좋아도 학습 과정은 시간이 필요하기 때문입니다. 나중에 1등 한 팀은 순위가 매우 낮았는데 갑자기 순위권으로 올라서는 현상을 보여주었는데, 이건 결선에 오기 전 미리 트레인 한 모델이 있었기 때문이라고 합니다. 그래서 결론을 말하자면 결선에서는 19등을 했습니다. 나름 등수가 올랐다는 점에서 괜찮게 생각하고 있고 등수를 올리는 것보다 좋은 경험들을 했습니다. 우선 뒤에 네이버 직원으로 보이시는 여러 멘토분들이 있으셔서 평소 머신러닝에 대한 궁금점이나 Speech Recognition, NSML에 대해 궁금했던 것들을 다 물어봤습니다. 모두 친절하시고 잘 설명해주셔서 매우 좋았습니다.

 

그리고 마지막에 1,2,3 등 수상하신 팀들이 어떻게 했는지나 논문이나 아이디어들을 발표해주셨는데 정말 똑똑하시더라고요. 물론 제가 실전 경험이 없는 것일수도 있는데 3팀의 발표를 보고서도 많이 알아간 것 같습니다. 몇몇 키워드들을 기록해놨고 공부하려고 합니다. 데이터 처리나 모델 초기화 같은 개념은 다른 ML 문제에서도 충분히 쓰일 수 있으니까 알아두면 좋고 알아두어야 할 것 같습니다.

 


수상은 하지 못했지만 원래도 수상할 생각은 없었고, 원래 가지고 있었던 공부하자, 다른 사람들이랑 대화하자, 경험을 쌓자와 같은 목적은 모두 이뤄서 매우 좋았습니다. Speech Recognition이 뭔지 맛보기도 해봤고 네이버 본사나 커넥트원에 가보니 정말 인상적이었고 이번 해커톤을 통해 약간은 일해보고 싶다라는 생각도 들기는 했습니다. 최근 네이버 랩스에 인턴십을 가고 싶다는 생각을 하고 있긴 했었는데, 이건 뭐 생각이고 아마 석사 진학을 하게 되지 않을까 싶습니다.

내년 네이버 해커톤에 참가하시거나 하려는 분들이 아마 구글에 네이버 해커톤 리뷰 등도 찾아보실 것 같은데 그쯤되면 이 글을 보러 오실 수도 있겠네요. 참가 안 할 이유도 없는 것이긴 한데 할 수 있으면 꼭 하세요. 재미있기도 하고 정말 좋은 경험이라고 생각해요.