관리 메뉴

TEAM EDA

업스테이지 입사 6개월 후기 본문

TEAM EDA /UpstageAI (2022.01.01 ~ )

업스테이지 입사 6개월 후기

김현우 2023. 3. 27. 00:00

지난 글에서 공유했던 것처럼 카이스트 대학원을 졸업하고 22년도 10월에 업스테이지 정규직에 합격했습니다. 업스테이지는 인공지능(AI)을 기반으로 하는 스타트업으로 OCR과 추천 AI Pack을 만들어서 기업에 제공하는 회사입니다. 최근에는 한화생명에 OCR Pack을 브랜디에 Recsys Pack을 제공한 기사가 나면서 기술력을 입증하기도 했습니다. 

(좌) OCR Pack - 한화생명 / (우) Recsys Pack - 브랜디

저는 업스테이지의 챌린지스팀에 AIRE (AI Research Engineer) 직군으로 합류를 하였는데, 챌린지스팀은 다양한 대회에 참가해 수상하여 기술력을 홍보하고 이때 대회에서 얻은 노하우들을 제품에 녹여내는 역할을 하는 팀입니다. 대표적으로는 RecSys 2022 챌린지나 캐글 AI 대회들에서 좋은 성과를 거두었고 최근에는 브랜디라는 쇼핑몰에 추천 시스템을 적용해 경쟁 모델 대비 1.5배 이상 좋은 결과를 달성하기도 하였습니다. 그 외에도 OCR 모델의 성능을 개선하거나, 경진대회 관련 자문, 강의 제작 등 회사 내 다양한 부분에서 기여를 하고 있습니다.  

업스테이지를 선택하게 된 이유는 경진대회 나가는 것을 좋아하고, 팀 내에 캐글 그랜드 마스터가 두명이나 되어서 회사에서 많이 배워서 그랜드 마스터 급의 실력을 가지고 싶었기 때문입니다. (그랜드 마스터가 회사 다닐 동안의 목표이기도 합니다.) Rapids.ai 가 캐글 그랜드마스터 급만 모아둔 NVIDIA의 팀인데 캐글 및 다른 경진대회를 휩쓸고 다니면서 회사 및 제품을 홍보하고, 계속 기술력을 높여가는 모습이 부럽기도 했습니다. (덕업일치를 할 수 있을 것 같은 기분?) 그 외에도 대부분 주니어이지만 팀 내 멤버들이 되게 좋아 보였고 평소같이 대회 나갔던 본받을 만한 친구도 있었기에 입사를 결정하게 되었습니다. 

 

업스테이지에 들어와서 주로 했던 일들은 4가지 인 것 같습니다. 

  1. Kaggle 및 경진대회 참여
  2. PoC 모델링 및 분석 진행
  3. 경진대회 데이터 검수 및 베이스라인 제작
  4. 부스트캠프 AI Tech 강의 제작

 

[Kaggle 및 경진대회 참여] 

회사의 제품군에 기술을 녹여내야하기에, 보통은 제품군과 비슷한 주제의 경진대회를 참여합니다. 대표적으로는 Recsys 2022, H&M personalized fashion recommendations, Otto multi objective recommender system 가 있었습니다. 

Kaggle - OTTO 대회
Kaggle - H&M 대회
Recsys Challenge 2022

차례대로, Recsys 2022 Challenge는 Session-based Recommendation 대회였고 H&M Persoanlized fashion recommendation은 쇼핑몰 상품 추천 대회, OTTO - Multi objective recommender system은 쇼핑몰 상품 추천 대회지만 검색, 구매, 장바구니 3가지를 모두 성능을 높여야 하는 대회였습니다. 짧게는 2주 길게는 한 달 정도의 시간을 가지고 대회들에 참여했는데 짧은 시간에도 불구하고 팀원분들이 다들 잘하시고 대회 종료 날은 다들 밤새고 마감시간 18분 전까지 고생하느라 좋은 성적 거둘 수 있었던 것 같습니다. (다들 열정적으로 일에 참여하는게 스타트업의 장점인 것 같습니다) 

 

이때, 대학생 시절에 캐글하던 생각이 많이 났었습니다. 그때도 막 금메달 하나 얻어보겠다고 주말도 실험하고, 저녁부터 새벽까지 피쳐 만들고 그랬는데 그때도 지금도 결과는 은메달이었지만 개인 시간이 아닌 업무를 하면서 대회나가고 많은 기술들을 배울 수 있어서 참 좋은 것 같습니다. (물론, 퇴근 이후랑 주말인 개인 시간에도 대회를 하긴 했지만요...) 최근 Recsys 2023 Challenge 포함해서 많은 추천대회가 열리고 있는데 이번에는 더 높은 성능 달성해서 업스테이지의 기술력 입증과 제품의 성능 개선에 기여하는 게 목표입니다. (가능하면 Recsys Challenge는 작년에 못했던 페이퍼로도 연결해보고 싶습니다)

 

[PoC 모델링 및 분석 진행] 

저희 팀은 대회만 하고 끝은 아니고, 대회에서 얻은 노하우 혹은 기술들을 AI Pack 제품에 녹여내는 작업까지 수행합니다. 브랜디를 포함해서 되게 많은 회사들에 AI Pack을 통해서 추천 서비스를 제공하는데, 여기에 쓰이는 기술들이 논문 구현부터, 자체적인 기술들, 최신 대회의 설루션까지 많은 내용들이 집합되어 있습니다. 이렇게 하는 이유는 Pack 자체가 다른 경쟁 모델대비 높은 성능을 보여야 다른 회사 입장에서 Pack을 도입하려는 니즈를 가지게 되기 때문입니다. 브랜디의 경우 추천 AI Pack 적용 후 효과는 총 노출당 구매 전환액이 해당 사업 시작하기 전 대비해서 60% 가까이 증가했기에 더 보람찬 일이지 않나 생각합니다. 

 

현재 브랜디는 아니지만, 다른 회사 하나랑 진행하는 PoC의 추천모델링을 제가 주로 맡고 있습니다. 회사마다 데이터의 형태나 특성이 다르기에 분석하고, 기존 모델들을 적용했을 때 어떤 한계점이 있는지 파악해 가면서 성능 개선을 위해 노력하고 있습니다. 최신 기술부터 고전 기법까지 테스트도 해보고, 관련 리서치도 찾아가 보면서 공부하고 있고 실제 몇몇 기법들은 서비스 내보내서 테스트해보기도 했는데 생각했던 가설이 맞아서 성능이 오른 것을 보면 뿌듯하긴 합니다. (내 자식 자랑하는 느낌이랄까요...?) 아직 PoC 기간이고 따로 보도자료 나간 게 없어서 자세한 내용을 언급할 수 없지만 계약까지 잘 마무리되어서 더 자세히 소개할 수 있는 기회가 왔으면 좋겠습니다. 

 

[경진대회 데이터 검수 및 베이스라인 제작] 

유플러스 AI Ground 경진대회

그 외에도 경진대회와 관련된 자문 역할을 맡기도 합니다. 작년 LGU+ 와 업스테이지가 공동으로 아이들 나라 콘텐츠 추천 경진대회를 진행했습니다. 저는 경진대회를 원활히 진행하기 위한 자문과 베이스라인 제작, 검증을 주로 맡았고 아래의 그림이 대회 참여자들에게 제공되었던 베이스라인이었습니다. 

 

메타 정보를 결합한 NCF

데이터의 종류가 많았고, 주어진 데이터 중 메타 데이터가 있어서 메타 정보와 NCF (Neural Collaborative Filtering)을 결합한 베이스라인을 만들었습니다. 사실 860팀이나 되는 많은 팀이 내 코드를 기반으로 작업한다는 게 부담도 있었고, 잘못된 정보를 제공하면 안 된다는 생각에 코드 검수를 되게 여러 번 했던 것 같습니다. 

이후에는 Q&A로 올라오는 기술적인 부분에 대한 질문의 답변과 최종 평가 대상자들의 코드 검수를 맡았습니다. 일주일이란 시간 동안 코드 검수를 하는 게 쉽지만은 않았는데, 한 번에 재현이 안된 팀도 있었고 코드가 아예 안 돌아가는 팀들도 있었기 때문입니다. 이런 부분은 수정하기 쉬운 부분은 직접 수정을 진행했고, 수정이 안 되는 부분 (코드가 빠진 경우, 실행 명령어 순서나 자체 누락 등)은 참가자분들에게 연락을 해서 수정을 받아 재현을 진행했습니다. 사실 이렇게 해도 완벽하게 재현되지 않는 팀도 있었습니다. 장비의 이슈일 수도 있고, 최종 제출 코드와 리더보드 제출 코드가 다른 이유일 수도 있고, OS 등의 차이일 수도 있어서 많은 원인이 존재하는 것 같았습니다. 이러한 부분의 검증에서 제 실수로 인해 참가자분들이 불이익은 받으면 안되기에 재현이 안되는 팀은 아래의 과정을 통해서 최대한 재현 여부를 체크했습니다. (이때, 혼자 하기 벅차서 같은 팀원 분들이 재현 작업 도와주기도 했습니다 ㅠㅠ) 

  • OS : Linux에서 재현 -> Window에서 재현 
  • GPU 장비 : RTX3090 -> A100 
  • Seed : 시드 고정 혹은 값 변경해서 테스트

그러다 보니 생각보다 작업에 드는 시간이 많았는데, 다음번엔 어떻게 이런 시간을 줄일 수 있을지 고민해봐야 할 것 같습니다. (데이콘, 마인즈앤컴퍼니 등 다른 경진대회 운영 회사도 검증과정을 거칠 텐데 어떻게 하시는지 대단한 것 같습니다. 하기 전에는 되게 만만하게 생각했는데 해보니 쉽지 않네요 ㅋㅋㅋ..)

 

[부스트캠프 AI Tech 강의 제작] 

마지막으로는 부스트캠프 AI Tech의 강의 제작입니다. Semantic Segmentation 마스터라는 거창한 이름으로 3주 정도 Vision과 관련된 강의를 캠퍼분들에게 진행합니다. 강의는 스튜디오에서 미리 찍어둔 10개의 영상을 캠퍼분들이 보고 공부하는 식이며, 3주 기간 동안 Segmentation과 관련된 대회를 진행하게 됩니다. 이때, 저는 강의를 하는 것 외에 3주에 2번 마스터 클래스라는 이름으로 캠퍼분들에게 Segmentation과 관련된 팁, 정보를 제공하기도 합니다. 올해에도 부스트캠프 강의를 촬영하는데 관련 내용은 다른 글에서 더 자세히 찾아뵙도록 하겠습니다. 

 

[그 외] 

회사는 상현에 있지만 풀재택근무를 원칙으로 하고 있습니다. 그러다 보니 팀원들 간의 만날 일이 사실 많지가 않습니다. 그래서 종종 팀 내 의사결정이 필요할 때 (OKR 수립, 친목 도모, 팀 방향성 결정 등)나 긴 회의가 필요할 때 워크숍을 진행합니다. 

(좌) 스키장 / (우) 제주도 

연 말 시즌에 입사를 해서 OKR 수립 등의 워크숍에 자주 참여했는데, 왼쪽은 스키장에 워크숍을 갔을때 사진이고 오른쪽은 제주도에 갔을때의 사진입니다. 워크샵을 갈 때마다 항상 맛있는 것을 즐길 수 있었는데 이런 점도 하나의 묘미지 않았나 생각합니다. 

 

현재 저의 팀은 저 포함 6명밖에 안되지만 팀 내 분위기가 너무 좋아서 인간관계로 스트레스는 안 받는 게 큰 장점인 것 같습니다. 회사에서 AI 관련해서 하는 것도 많고 초창기다 보니 의욕만 있다면 무언가 해볼 만한 기회들이 많은 것도 사실입니다. 최근에 추천 PoC에서도 이것저것 도입해서 서비스로 내보내보기도 하였고, 주도적으로 무언가 할 수 있어서 좋은 것 같습니다. 하지만, 스타트업 특성상 개인에게 주어진 일이 많습니다. 그러다 보니, 일을 다 마치기 위해 야근을 해야 할 때도 있고 PoC를 하다보면 경쟁 모델 대비 성능을 높여야하기에 이걸 달성할때까지 계속 개선을 해야할 필요도 있습니다. 좋은 동료들과 환경이 주어지기에 더 배우려고 하고 성장하려고 하면 할 수 있는 환경이기는 한데, 사실 아직 어떻게 성장하고 배워야 할지는 잘 모르겠습니다. 지금처럼 3년 정도 뒤에 누군가에게 의지되고 방향성이 있을 선배가 될 수 있을지도 의문입니다. 아직까지 이에 대한 답은 찾지 못했지만, 계속해서 고민해봐야 할 것 같습니다.