국문과 유목민

[일일리포트] Day 54 (Level2_PStage_10) 본문

IT 견문록/2022_부스트캠프 AITech 3기(100일)

[일일리포트] Day 54 (Level2_PStage_10)

논곰 2022. 4. 6. 23:57

해당 일일리포트에서는 네이버 커넥트에서 진행하는 '부스트캠프 AI Tech 3기'에서 배운 내용을 다루고 있습니다. 저작권 이슈 때문에 관련 자료를 올릴 수는 없기에 핵심 이론과 코드를 요약해서 올리고 있기에 내용이 부족할 수 있습니다.

▶ 오늘 한 일

모델 실험

Competition 마감이 금요일인 줄 잘못 알고 있다가 발에 불이 떨어졌다. 이제는 새로운 것들을 접목시키기보다 지금까지 실험했던 것을 정리하고 합해서 마지막으로 성능 향상을 시켜야 할 필요가 있다고 생각했다. 그래서 미뤄놨던 train_test split 비율을 극단적으로 낮춰서 Train 데이터를 학습시키고자 했으며, 이전에  AMP를 적용했을 때 성능이 또 줄어들었기에 AMP도 빼고 해보고자 했다.
하지만 AMP를 빼니 Batch_size 32일 때 OOM이 발생했다. 이를 해결하기 위해 포기해야 할 부분이 생겼고 나는 Max_length를 512 → 256으로 낮춰서 학습을 진행했다. 그리고 한편으로 warmup_ratio에 대한 미련이 있어서 다른 A팀원 분께 warmup_ratio = 0.1로 해서(기존에는 warmup_step 사용) 모델을 학습해달라고 부탁했다. 마지막으로 또 다른 B팀원 분께서는 Batch_size를 16으로 학습을 진행해준다고 하셨다.
나랑 A분의 모델은 3시간 30분 정도 학습을 했고, 내 모델의 F1은 72.2414가 나왔다. 하지만 warmup_ratio를 0.1로 한  A분의 모델의 F1은 74.4734가 나왔다. 그리고 B분의 모델은 72.8161이 나왔다. 해당 실험이 결과로 Warmup_ratio가 학습에 영향을 준다는 것을 알 수 있었다. 해당 모델은 단일 모델 기준 가장 좋은 성능을 보여준 모델이었기에 뭔가 더 좋은 성능을 기대할 수 있을 것 같다는 생각이 들었다. 그래서 자기 전에 해당 모델과 유사하게 5-fold로 모델을 학습할 계획이다. (6~7시간 소요 예상)

모델 앙상블

오늘 다른 팀원분께서 Inference를 거친 submission용 csv파일들을 이용해, 소프트 보팅으로 앙상블을 할 수 있게 만들어주셨다. 마침 제출 기회가 좀 남아서 앙상블 모델 중 성적이 좋은 모델들과 비교해서 유의미한 예측 difference가 보이고, 가장 성능이 좋았던 모델 몇 가지를 Ensemble 진행했다. 그리고 우리 팀 SOTA점수인 f1-score 75.7027을 달성할 수 있었다.
추가적으로 단일 모델 중 가장 좋은 성능을 보여준 f1-score 74.4734인 모델을 추가해서 Ensemble을 하니, 75.4293으로 f1이 줄었지만 quprc는 81.6188로 행하면 더 큰 성능 향상을 기대할 수 있을 것 같다.

▶ 내일 할 일

  • 모델 앙상블 작업
  • Competition 마무리 잘하기
'왜 안 되지'...와 '왜 되지???'의 연속....