.. Cover Letter

ㅇ 일상/대외활동 후기

비버웍스, PinkLab 주관 자연어처리 해커톤 대회를 참여했습니다.

BrainKimDu 2023. 1. 31. 01:00

비버웍스가 NLP 해커톤 대회를 통해 좋은 인재를 모집합니다. [feat. 핑크랩] (pinkwink.kr)

 

비버웍스가 NLP 해커톤 대회를 통해 좋은 인재를 모집합니다. [feat. 핑크랩]

오늘은 꽤 흥미로운 주제의 해커톤 대회를 소개할까 합니다. 지원기간이 12월 11일까지이며, 대회는 1월 27일부터 29일까지 2박 3일간 열립니다. 비버웍스라는 회사와 그 회사의 이번 NLP 대회 주제

pinkwink.kr


살면서 처음으로 참여해본 대회이면서
살면서 처음으로 참여해본 해커톤 대회였습니다.

일단 후기나 이런건 나중으로 미루고

PinkLab은 어떤 회사인가?

현 PinkLab의 대표이신 민형기 대표님(강사님?) 께서는
좋은 기업과 좋은 취준생들을 연결해주는 사업을 하고 계십니다.


대표님께 비버웍스라는 회사에서 하나의 의뢰가 들어옵니다.
"우리의 데이터를 보고 좋은 인사이트를 주셨으면 합니다."


일단 그 데이터가 뭘까요?

비버웍스라는 회사를 알 필요가 있습니다.

간단하게 요약하면
키오스크를 만들던 회사온라인 주문 및 배달대행 중계를 담당하던 회사
서로 합쳐지면서 비버웍스라는 회사가 만들어졌는데요.


두 개의 회사가 합쳐지면서

키오스크에 등록된 모든 메뉴에 대한 데이터..
비버웍스는 이 데이터를 정리를 하고싶다 (표준화) 하고 싶었습니다.




이를 의뢰받은 PinkLab의 대표님께서는


이걸로 해커톤 대회를 열어보자고 제안을 하시게 되었고,
그 결과 해커톤 대회가 열리게 되었습니다.


참가신청을 하고,
1월 27일 금~1월 29일 일요일 까지 해커톤 대회를 참여했습니다.


비버웍스 검색 - 네이버 지도 - 네이버 지도 (naver.com)

 

네이버 지도

비버웍스

map.naver.com

 

비버웍스는 신사역에 위치해있고,

(제가 사진을 못찍어서 네이버지도로 대체해서 조금 옛날의 모습입니다.)

서울 한복판 비싼땅에
하나의 건물을 사옥으로 가지고 있는
돈이 많아보이는(?) 회사입니다.



이 해커톤을 위해서, 부트캠프에서 같이 신청했던 사람들과 동맹을 맺고
설연휴 기간동안 접근전략을 오프라인에서 회의해보면서

어떤 모델을 사용해야할지, 데이터 전처리는 어떻게 해야할지 공부를 했습니다.
그렇게 대망의 해커톤 대회 당일


해커톤에는 총 16팀이 참여했고, 약 50명의 인원이 모여서 대회를 진행했습니다.


처음 도착하자마자
PinkLab의 민형기 대표님께 해커톤 대회의 일정과 규칙을 들었습니다.
아무래도 민형기 대표님의 강의를 수강하셨던 분들이 많았고
그 외 대학원생들과 현직자분들이 많이 참여하셨습니다.


그렇게 팀별로 업무공간을 배치받고
노트북과 데이터를 전달받고
일을 시작했습니다.


해커톤이 시작하자마자..
같이 있는 팀원의 모든 노트북에
윈도우를 삭제하고 바로 우분투를 설치했습니다.

아무래도 사용하던 환경에서 진행해야 하니까요.
이게 저희가 성공적으로 해커톤을 마칠 수 있었던 비결 중 하나라고 생각합니다.

코렙을 사용하던 다른 팀들은 여기저기서 문제가 터졌다고 들었습니다.
부트캠프를 시작하기 전까지는 윈도우가 편했는데, 지금은 우분투가 더 편해..
(저는 개인적으로 로컬은 0.1초면 결과를 보여주는데, 코렙은 3초이상 기다리는게 속터져서 별로 선호하지는 않습니다.)

우분투를 설치하면서
블로그에 미리 정리해놓은게 정말 많은 도움이 되었습니다.


팀원들의 노트북에 우분투를 깔아준 이후
역할 분배를 하였고


딥러닝과 머신러닝을 잘하는 팀장님께서는 전체적인 프로젝트를 총괄하면서 딥러닝의 자문역할을 하셨습니다.
사실 미리 만나서 스터디고 해보고, 준비를 했지만
가면 알아서 하겠지란 마음으로 자연어처리 관련 공부보다도 데이터를 어떻게 접근해야할지만 공부를 해서 그런지
백그라운드가 뛰어난 팀장님 덕분에
의견을 제시하면 가능성과 정확도가 높은 방법을 빠르게 판단하는 능력이 좋아
다른 길로 샐 뻔해도 바로 잡아주는 역할을 잘 해주었습니다.


그리고 같은 조원이였던 J군은 파이썬을 정말 능숙하게 잘 다루는 팀원입니다.
무엇보다도 팀장님과의 케미가 정말 잘 맞았습니다.
가장 잘하는건 새로운 모듈을 1~2시간안으로 익혀 응용하는 능력이 뛰어나
주로 모델제작과 정규식 구현을 담당했습니다.


저는 뭐.. 알고리즘에 관심이 많아서 팀장님과 J군이 요청하는게 있다면,
최대한 빠른 시간에 정확한 코드로 구현하는 역할을 했습니다.
추가적으로 데이터 전처리 알고리즘을 만들고, 검증용 Test 코드를 작성했습니다.
여러 프로젝트를 하면서 저의 장점이라 생각한 건
아무래도 제가 J 성향(계획형인간)이 강하다는 점입니다.
일을 진행하면서도, 어떻게 시간을 분배해야 효율적으로 일을 마무리할 수 있을지
몇시까지 이걸 끝내고, 몇시까지 이걸 끝내주세요. 처럼
목표치까지 단계를 나누고, 데드라인을 걸어서 차근차근 목표에 도달할 수 있도록 해커톤을 진행했습니다.




그렇게 첫날(금요일)에는 제가 자연어처리에 부족함을 느껴서 팀원들에게 조금 짐이 된다고 느꼈습니다.
(금요일은 출퇴근이였기 때문에) 집에 도착해서

FastText나 한글을 자연어처리하는데 주로 어떤식으로 진행되는지 벼락치기 공부를 진행했습니다.
여러 블로그들을 참고했는데

https://youtu.be/5ivVf-Guqk4

https://nodoudt.tistory.com/13

 

[NLP fastText] fastText를 이용한 텍스트 분류 - 1/2

출처 : https://fasttext.cc/docs/en/support.html (1) 시작하기 (1.1) fastText란? fastText는 단어 표현의 효율적인 학습과 문장 분류를 위한 라이브러리입니다. (1.2) 요구사항 fastText는 현대 Mac OS와 Linux 배포판에

nodoudt.tistory.com



https://ratsgo.github.io/from%20frequency%20to%20semantics/2017/07/06/fasttext/

 

FastText, 실전 사용하기 · ratsgo's blog

이번 글에서는 페이스북에서 개발한 FastText를 실전에서 사용하는 방법에 대해 살펴보도록 하겠습니다. FastText는 구글에서 개발한 Word2Vec을 기본으로 하되 부분단어들을 임베딩하는 기법인데요.

ratsgo.github.io


https://joyhong.tistory.com/m/137

 

임베딩 - FastText (한글 자소 분리)

한글로된 코퍼스를 자소 분리하여 FastText의 입력으로 전달함으로 각각의 하나의 문자에 대하여 n-gram을 하도록 할 수도 있다. 이와 같이 사용하려면 학습 전 준비단계에서 해야 하는 일 한가지와

joyhong.tistory.com


그렇게 여러 블로그들을 돌면서
이렇게 접근을 하는거구나 이해를 했고

저는 약간 잘하는 팀원들이 모델을 잘 구현해주겠지 생각하고
일단 전처리나 표준화 모델을 제시하는 것에 집중하려고 생각했으나

일단 모델이 완성되야 하는 일이니 모델을 만드는 것이 우선이라
모델을 만드는데 최대한 협업해야한다는 것을 깨닫고

다음날부터는 짐이 되지 않기 위해 최대한 노력했습니다.



그렇게 토요일 다시 출근해서
저는 데이터 전처리 테스트 코드를 작성하면서
지속적으로 몇시까지 이걸 끝내달라 독촉? 했고

12시간이 지난 일요일 00시..
첫 FastText 모델이 등장합니다.

Accuracy73% !!
뭐 누가 보기엔 낮은 수치일수도 있는데

일단 희망이 보였습니다.
잠이 바로 깨면서

새벽 2시경 J군의 새로운 괴물 모델이 만들어지고

(정확도에 놀란 J군)
새로운 모델에 대한 Accuracy는 무려 78%


그리고 한글 자모음을 분리하지 않은 모델을 만들었는데
그 모델에 대한 Accuracy는 무려 84%

그래서 해커톤을 마무리해야하는 새벽 6시..

졸린 몸을 이끌고, 발표자료를 만들고



어떤 모델을 제출해야하는가 고민에 빠집니다..
자모음 분리를 통해 정석적인 78% 모델이냐
자모음 분리를 안한 84% 모델이냐

팀장님께서는 84%모델을 제출하자 하였지만
아무래도 과적합의 우려때문에 J군과 저는 78%의 모델을 사용해야 한다고 주장했습니다.




결국 78% 모델을 사용했고,
정확도만으로 4등을 하면서

해커톤 코드 작성을 마무리 했습니다.



다른 참가자들의 발표를 보면서 느낀점을 소개하기 전에
비버웍스 해커톤의 먹거리들을 소개해보고자 합니다.


금요일 점심
맘스터치의 싸이버거 세트를 먹었습니다.
사진이 없는 이유는 너무 흔해서 찍지 않았습니다.


금요일 저녁

원할머니 보쌈 도시락을 먹었습니다.

 

역시 고기는 맛있습니다.

그리고 금요일 밤에는
비버웍스의 대표님께서
자몽허니블랙티를 사주셔서

다음날까지 맛있게 먹었습니다.




토요일 점심에는

와사비 참치 김밥과 샌드위치를 먹었습니다.
맛있었습니다.



아마 토요일 저녁에 본도시락을 먹은 것으로 기억합니다.
이때부터 일이 너무 바빠서 먹는 사진을 안찍었네요.

그렇게 비버웍스 사옥에서 밤을 새었습니다..


모든 일을 마무리하고.

코드와 발표자료를 제출한 오전 7시..


일요일 아침은 에그드랍
일요일 점심은 치킨도시락을 먹었습니다. (이거 진짜 맛있어서 두개 먹을까 고민했습니다..)


다양한 간식과 두 종류의 원두가 있는 커피..
진짜 맛있는 차까지..
그리고 엄청나게 많은 핫식스..
마르지않게 계속해서 리필되었습니다.

제가 커피에 관심이 많아서 그런지
역류성 식도염으로 못먹은게.. 아쉬었습니다.
저는 카페인없이 밤을 샜습니다. 저는 제가 아는 커피 만드는 법을 동원해서
강사님과 동기들에게 아이스아메리카노와 아이스 핫초코를 타주었습니다.


결국 test에서는 78%의 정확도를 기록하고
상위 8개 팀으로 뽑혀 발표를 하게 되었습니다.
발표에 대한 내용을 자세히 말할 수는 없고


다른팀의 발표를 들으면서 느낀점을 작성하자면

자연어처리에 대해 1일 배워본 저희 팀원들과
(팀장님은 구현은 해보지 않았지만 이론적으로 많이 알고 있습니다.)
자연어처리쪽을 공부하고 있는 다른 팀들의 발표를 들으면서
이 분들은 진짜 진심이구나 라는 것을 느꼇습니다.

나는 자연어처리가 메인이 아니지만 여기에 참여하신 분들의 발표를 들으면서
이 분들이 자연어처리에 쏟은 열정과 결과를 보면서 감명을 받았습니다.

그리고 문득 든 생각이
만약 ROS와 임베디드 해커톤이였다면..
그래서 이 분들경쟁에서 이겨야 한다면?

나는 어느정도 백그라운드가 있어야할까?
이런 점을 느낀 것 같습니다. 이를 글로 적으려니 조금 어렵네요..
(뭔가 지금의 나는 우물안의 개구리가 아닐까? 이런 느낌?)


비버웍스의 대표님께서는 굉장히 유쾌하신 분이셨지만
발표가 시작되자 마자 180도 돌변하시는 모습을 보았습니다.

무슨 이유로 이걸 발표자료에 넣었느냐?
지금 ~~한 상황인데, ~~한 걸 사용한 이유는 무엇인가?
등등 제가 자연어처리를 전문적으로 배운 것이 아니기 때문에 질문이 기억나지 않지만

특정 한 분야의 전문가의 모습이 바로 이런 모습이구나..
그동안 봐온 전문가는 교수님들 이셨는데,
실제 실무에서의 전문가를 보면서 impressive 했다 해야하나..
나의 인생의 롤모델로 삼아야할 사람이라는 느낌을 받았습니다.

처음 이런 impressive 한 감정?을 주신분이 로보월드 자율주행 직무 채용설명회에서
만난 로보티즈의 한 프로님이셨는데, 이런 느낌을 비버웍스 대표님께서도 느낄 수 있었습니다.


발표가 마무리되고 점심식사시간에 민형기 대표님(강사님)과 이야기를 나누면서
여러가지 질문을 했습니다.

첫번째 질문은
"내가 취업을 한다면 비버웍스의 대표님 같은 분들을 만족시켜야 하는건가요..?
솔직히 오늘 발표를 보고 있자면 두렵습니다."

라는 질문이였습니다.
그 때 이렇게 답해주시더군요.

"여러분이 이런 분들을 만족시키는건 불가능합니다.
내가 정말 이 분야에 관심이 있다는 것을 보이는 게 중요하고
가장 중요한건 면접관을 만족시키는 것이 아니라
같이 일하고 싶은 사람처럼 느끼게 만드는 것입니다."


두 번째 질문은
"비버웍스 대표님의 모습을 보면서 대표님 같은 사람이 되고 싶다라는 걸 느꼈는데,
도대체 얼마나 경력을 쌓아야 비버웍스의 대표님처럼 한 분야의 전문가가 될 수 있을까요?"


결국 정답은 공부였습니다.
비버웍스 대표님께서 지금까지 해오신 공부량이 어마어마하시다고 하셨습니다.
추가적으로 일을하다보면 개발자들이 모르게 발전하는게 있다.
그러니 개발자들이 발표하는게 있다면 찾아서 들어보라고 하셨습니다.




기억나는 질문은 이정도인 것 같습니다.
해커톤을 하고 나면 뭔가 많이 배워가는게 있다고 했는데,
해커톤으로 나의 장점을 최대한 활용해본 것도 좋았지만
결론적으로
인생의 많은 배움을 얻어가는 대회였던것 같습니다.

부트캠프 동기들과 강사님과 함께..



아 빼먹고 안적었는데
기념품이 진짜 엄청많습니다.

1. 비버웍스로고 머그잔
2. 비버웍스로고 후드집업
(옷이 너무 이쁘고 따뜻)
3. 비버웍스로고 공책
4. 비버웍스로고 에코백
5. 핫팩 5개
6. 비버웍스 로고 담요
7. 수료증

다음 기회가 있다면 또 참여하고 싶습니다.