코드 유사성 판단 시즌2 AI 경진대회

알고리즘 | 월간 데이콘 | NLP | 유사도 | Accuracy

  • moneyIcon 상금 : 인증서
  • 308명 마감

 

[Private 8위/0.9824] neulab/codebert-cpp Soft-Voting Ensemble

공동작성자

stroke
2024.04.02 14:43 355 조회 language

안녕하세요, 구파일방 팀 김대건입니다 :)
언어모델에 관심이 있어 기간 동안 몰입하여 즐겁게 임했습니다. 재밌는 대회 열어주셔서 감사합니다! 
그리고 같이 열심히 해준 팀원 동료들에게 진심으로 고맙습니다 ^^

많은 분들이 좋은 코드를 공유해주셔서 실험에 큰 도움이 되었습니다.
저희 팀이 엄청 좋은 성적은 아니지만, 실험하며 느낀 점이 많아 도움이 될까 싶어 코드 공유드리고자 글을 작성했습니다. 혹시 오류나 피드백 주실 내용 있으시면 언제든지 알려주시면 감사하겠습니다:)

데이터, 모델, 그리고 코드는 아래 github에 올려두었습니다!
https://github.com/emaeon/DACON-code-Similarity

✅ 참고한 자료
시즌 1 대회의 코드 위주로 레퍼런스를 찾아봤습니다!
📌 데이터 제작 : 청소님, Gmin47님
📌 추론 코드 : Gmin47님

✅ 실험 세부 사항
📌 환경 : RunPod 사용(RTX 4090 24 GB VRAM 8, 46 GB RAM  8 vCPU)

✨ 인사이트
📌 모델 : microsoft 제공 코드 스크립트 사전학습 모델 사용 결과, 기대한 성능에 미치지 못함. (사전학습 데이터의 차이)
따라서, neulab/codebert-cpp로 최종 모델 채택
📌 데이터 : 
✔ 전처리가 매우 중요
✔ 200만 건 학습 후 성능 평가 결과 500만 건 학습 모델 보다 성능 떨어짐. 따라서, 500만 건의 8개 데이터 활용
✔ 500만 건 모델로 다시 500만 건 파인 튜닝할 때 성능 저하 확인. Continual learning 시 별도의 장치 필요
📌 앙상블 : 같은 조합에서 Hard Voting의 성능보다 Soft Voting 약 0.2%p 우세.
📌 파인 튜닝 : 1에폭을 넘어가면 같은 데이터가 들어왔을때 성능이 떨어지는 현상 발견(과적합 의심). 따라서, 각 1에폭씩 학습 , 1개 모델 DataParallel활용

✨ 결론
📌 Soft Voting 결과 정확도 0.9824 달성
📌 데이터가 매우 중요

PDF
코드