월간 데이콘 코드 유사성 판단 AI 경진대회

알고리즘 | NLP | 분류 | 유사성 | Accuracy

  • moneyIcon 상금 : 총 600만 원
  • 889명 마감

 

Encoder is All you Need | 상하목장스누피팀

공동작성자

stroke
2022.06.16 22:36 3,173 조회 language

안녕하세요, 상하목장스누피팀의 안영진입니다. 
좋은 대회를 주최해주셔서 감사합니다.
무엇보다 저의 동료이자 스승이신 박상하님에게 감사합니다. 상하님께 많은 걸 배웠으며, 같은 팀이라는 게 든든했습니다.

⚠️ 재현하실 때 ⚠️
- 사용한 코드는 다음과 같습니다: https://github.com/sangHa0411/CodeSimilarity
- 보다 용이하게 재현하실 수 있도록 각 Fold 별 학습에 활용된 Pair 데이터셋을 공개합니다: https://huggingface.co/poolc
- 데이콘과 주최측께서 원하신다면 각 모델 별로 훈련시킨 Wandb 로그 또한 공유해드리겠습니다.
- 혹시라도 재현하실 때 확인하실 점, 문의하실 부분이 있다면 언제든 young_ahn@yonsei.ac.kr로 연락주시면 감사하겠습니다.

🕸 Ensemble & KFold 🕸
최종 제출물은 약 1000만 코드쌍(9790K Pairs)을 학습시킨 결과입니다.
A100 GPU 서버에서 총합 130시간 정도 파인튜닝을 진행했습니다.

1) GraphRoberta, 2) CodeT5 Encoder, 3) PLBART Encoder 세 가지 PLM 별로 5Fold Training을 진행했습니다. 
이때 Fold는 240개 Class vs 60개 Class로 Pair의 교집합이 없도록 쪼갰습니다.
데이터셋은 충분하게 각 Fold 별로 90만쌍의 데이터셋을 학습시켰고, 검증 데이터셋으로는 17만쌍을 활용했습니다.  

GraphCodeRoberta 5 Fold (총합 450만쌍) 모델은 Public LB 기준 0.9799가 나왔습니다.
여기에다가 PLBART, CodeT5 모델을 앙상블시키며(총합 979만쌍) Public LB 0.9813까지 상승했습니다.

물론 많은 데이터셋을 입력하고, 좋은 PLM을 앙상블하면 성능이 오릅니다.
그러나 각 모델 별로 성능을 고도화하는 작업도 중요했습니다. 
따라서 팀이 사용한 세부 전략과 참고한 논문은 다음과 같습니다.

코드
로그인이 필요합니다
0 / 1000
honghansol
2022.07.21 11:45

감사합니다