본문 바로가기

공부방/Upstage AI Lab 4기

패스트캠퍼스 Upstage AI Lab 부트캠프 4기, “특강: 캐글(kaggle)로 공부, 취업준비”

2024. 08. 27(화) 19:00~21:00
강의 제목: 캐글 참여 전략을 통해 본 학습 및 취업 준비 노하우

 

데이터과학계의 상시 개최되는 올림픽이자 공부할 수 있는 커뮤니티, 캐글(Kaggle)!
이번 특강의 주제는 캐글이였는데요. 업스테이지의 AI 리서치 엔지니어이신 송원호 강사님께서 특강을 진행해주셨습니다. 이번 특강 덕분에 막연히 캐글을 하면 좋다고 알고 있던 정도에서, 어떻게 공부에 활용할 수 있을지, 취업을 위한 포트폴리오로 사용할 수 있는지 등 구체적인 조언을 얻을 수 있었습니다. 부트캠프가 끝난 이후에도, 데이터 사이언티스트로서 일을 하기 위해서는 캐글에 활발히 참여하는 것이 좋겠다는 생각이 들었어요. 특강에서 얘기한 내용들을 몇 가지 정리해보았는데요. 들으면서 인상적인 부분, 그리고 마음에 와닿았던 내용을 중심으로 포스팅을 해보려고 합니다. 

 

1. 커뮤니티, 잘 만든 코드는 보고 배우자 

개인적인 일화인데요. 저는 (특정 분야) 플랫폼이 되겠다는 야심찬 목표를 세운 스타트업에서 일을 했던 적이 있습니다. 이용자들에게 다양한 경험을 시켜줄 수 있도록 다양한 보상 방법을 구상하기도 했고, 여러 실험들을 하기도 했는데요. 캐글에 대해 설명을 들어보니, 커뮤니티라는 특성을 가졌기 때문에 잘 된 대표적인 사례처럼 느껴졌습니다. (커뮤니티를 조성한다는 것이 생각보다 얼마나 어려운 일인지를 몸소 깨달았기 때문일까요) 어쨌든, 커뮤니티라는 기능은 플랫폼에서 빠질 수 없는 기능이 된 것 같습니다. 

캐글은 기업이 "문제"를 올리면 데이터 사이언티스트들이 문제를 "해결"하는 방식으로, 둘을 연결하는 플랫폼으로 서비스가 시작됐습니다. 물론 지금도 기본적인 형태는 "대회"가 열리면 사람들이 이를 풀어내고, 가장 좋은 성능을 만들어내는 사람이 우승하는(?) 시스템입니다. 이렇게 문제를 해결하는 과정에서 생기는 이야기들을 나눌 수 있는 '토론 공간'이 있고, 자신의 코드는 다른 사람과 공유할 수 있습니다. 반대로 말하면, 잘 모르는 사람도(뉴비들도) 전문가들이 만든 코드와 설명을 보면서 공부할 수 있다는 것이죠. 

 

 

송원호 강사님께서도 대회에 있는 Discussion과 code를 열심히 클론 코딩한 뒤에 본인의 것으로 내재화하는 방식으로 처음에는 공부해나갈 것을 추천했습니다. 예를 들어서, 내가 풀고자 하는 문제가 A라고 한다면, 캐글에 들어가 A라는 문제와 비슷한 문제를 푸는 대회(competitions)를 찾아보는 것입니다. 그리고 이곳의 주요 코드와 디스커션들을 보면서 A 문제에 적용할 수 있는 아이디어를 찾아보는 식이죠. 특히 리더보드에 있는 문제를 푼 사람들이 작성해놓은 Solution는 그냥 보물 그 자체! 입니다. (공부할 건 널렸다.) 상위 랭크된 참가자들의 솔루션을 보다 보면 요즘은 이런 기법을 쓰네? 이런 식으로도 문제를 풀 수 있네? 트렌드도 엿볼 수 있고 아이디어도 많이 얻을 수 있으니깐요. 

결국 캐글이 처음에는 문제를 올리고 사람들이 문제를 푼다는 어쩌면 단순한 형태의 플랫폼으로 시작했지만, 지금처럼 널리 퍼지게 될 수 있었던 이유는 전문가(또는 고인물?)들만 놀 수 있는 공간이 아닌, 뉴비들도 전문가들을 보며 배울 수 있고 또 성장할 수 있도록 만들어 놓은 강력한 커뮤니티 기능이 있었기 때문이 아닐까 합니다. 이 외에도 문제를 푼 사람들에게 메달을 주는 기능도 있었고, 팀을 이뤄서 협업할 수 있게 만든 기능도 있지만 가장 중요한 건, "과연 '실력자'들은 이걸 어떻게 풀었을까? 나는 이걸 보고 이런 생각을 했어!"를 얘기할 수 있는 모두를 위한 공간이였기 때문이라고 생각됩니다. 

참고로, 허깅 페이스라고 하는 플랫폼도 있는데요. 자연어처리 분야에서 NLP 모델과 도구를 개발하고 공유하는 플랫폼입니다. 캐글에 보면 '모델'이라는 란이 있는데 이 부분은 구색맞추기 같은 느낌이고 실제 모델 분야의 진짜배기 커뮤니티는 허깅페이스라고 하네요. 허깅페이스도 커뮤니티로서 왕성하게 발전해나가는 모습을 보인다고 합니다. (아직 구경안해봄)

 

캐글 홈페이지의 competition 화면. 처음이라면 Get Started부터 시작하자!

 

2. 넓고 얕게보다는 좁고 깊게가 낫다

지금까지 부트캠프를 하면서 3번 정도의 특강이 있었던 것으로 기억합니다. 특강들 모두 인공지능 관련 회사에서 일을 하는 현직자들의 이야기를 들을 수 있는 시간들이였는데요. 우연인지 모르겠지만, 신기하게도 모든 현직자들이 이렇게 말했습니다. "여러 개를 다양하게 접해봤고 다양한 스킬이 있다는 것보다, 단 하나라도 확실하게 파는 것이 낫다" (정확한 워딩은 아니고 이런 맥락이였습니다.)

이번 특강에서도 똑같은 얘기가 나왔습니다. 이 말이 3번쯤 반복되니 무시할 수 없습니다. 원래의 저라면 '다양한 경험이 좋아, 얕아도 괜찮아, 지루하고 안풀리면 다른 걸로 갈아타!' 이런 태도가 지배적인 인간이였는데, 부트캠프를 시작하면서부터 계속해서 이런 얘기를 들으면서 뼈를 맞으니, 이제는 끝까지 해야겠다는 생각이 듭니다... 하하 

 

 

강사님의 이야기를 옮겨보자면요. 캐글에는 무수히 많은 대회가 있는데, 대회 여러개를 조금씩 깔짝거리는 것보다 하나의 대회를 "매우 깊게" 파는 것을 추천한다는 것입니다. 여기서 매우 깊게가 어느 정도를 말하느냐가 관건인데요. 대회를 완벽하게 이해하고, 그 대회의 디스커션과 코드를 복붙해서 열심히 내재화시키면서 개선점이나 한계점을 찾아봅니다.

코드와 디스커션을 읽다보면 분명 자기만의 의문점이나 생각이 들텐데, 그 인사이트를 바탕으로 EDA를 진행하고 EDA를 하면서 나만의 가설을 세우고 그걸 어떻게 검증할 수 있을지 실험 계획을 세웁니다. 이때 가설과 실험을 계획할 때에는 대회에서 준 평가지표를 꼭 고려하고요. 자기만의 가설을 세워서 실험을 하면 그걸 디스커션에 올려서 사람들과 최대한 나누도록 합니다. 정말 많은 인사이트를 얻을 수 있고, 이걸로 다시 반복적으로 성능을 올립니다. 대회가 종료되면 자신이 얻은 인사이트나 가설, 실험 등을 따로 기록해놓아야 합니다. 기록은 나중에 회사를 가서, 연구를 할 때, 다른 프로젝트를 진행할 때마다 자신만이 가진 직관으로 발현됩니다. (특히 해당 대회의 탑솔루션은 꼭 내재화하길!!!)

 

 

마무리하며

캐글은 문제와 평가지표가 주어지는 경쟁입니다. 우리는 문제와 평가지표를 바꿀 수 없죠. 주어진 범위 안에서 데이터를 분석하고, 논리와 근거에 기반하여 가설을 수립하는 연습, 그리고 가설을 실험하고 또 가설을 세우고, 실험하고, 이걸 반복하면서 성능을 올리는 경험. 이것이 캐글을 통해 얻을 수 있는 값진 교훈이자 경험입니다. 이렇게 캐글로 내공을 쌓는다면, 나중에는 스스로 문제를 정의하고, 평가지표를 세우고(물론 이때도 연구나 논문을 참고해서 정하긴 하겠지만), 문제를 해결하는 엄청난 일도 할 수 있게 될 겁니다. 

 

그 외에 기억나는 몇 가지 정보

- 대회의 1등과 300등 차이가 EDA 안에 피쳐 하나로 차이가 나는 경우들도 있다.
- 캐글에서 솔로로 은메달 정도 수준이 되면 취업에 유리. 그룹으로 금메달을 딸 수 있는 수준이면 충분히 경쟁력있다. 
- 대회가 진행될 때에는 순위를 올리는 데에 집중하고, 대회가 끝난 뒤에 내재화. 내재화가 자산으로 남아야 나중에 직관으로 발현이 된다. 

 

망원동에서 우연히 만난 예쁜 고양이 사진으로 이번 포스팅도 마무리합니당
다음 패리포터 포스팅에서 투 비 컨틴뉴 쩜쩜쩜

#캐글전략 #캐글포트폴리오 #캐글강의