국문과 유목민

[일일리포트] Day 74 (Lelvel2_MRC_5) 본문

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

[일일리포트] Day 74 (Lelvel2_MRC_5)

논곰 2022. 5. 4. 21:38

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

▶ Today I Learned (핵심 요약 정리)

2차 Finetuning Test

어제 진행한 실험에 더해서 추가적인 실험을 진행했다. 크게 두 가지를 진행했는데 하나는 1차 Finetuning을 진행할 때 Epoch을 3으로 늘려서 진행을 한 것이고, 다른 하나는 이전 1차 Finetuning(epoch_1) 모델에 대해서 2차 Finetuning 시 learning_rate를 낮추는 실험이었다.
우선 첫 번째 Epoch을 3으로 늘린 1차 Finetuning의 결과는 생각보다 그래프가 더 안 좋았다. 따라서 하루동안 돌린 3epoch 모델은 사용하지 않는 것으로 결정했고, epoch에 따라서 성능차이가 크게 날 수 도 있음을 확인할 수 있었다. 그리고 1epoch까지가 제일 적당한 것 같다고 결론을 내렸다. 따라서 Finetuning을 두 번 하는 test는 korquad데이터를 1epoch로 학습한 모델을 2차 Finetuning에 대상으로 삼고자 한다.

1epoch(주황) vs 3epoch(파랑) 1차 finetuning 결과

두 번째 실험은 2차 Finetuning을 할 때, Learning rate을 낮춰서 학습을 하고자 했다. lr을 줄여야겠다고 생각한 이유는 2차 Finetuning을 진행할 때, 초기 모델(보라색)보다 2차 finetuning을 진행한 모델들의 training loss가 더 낮은 상태에서 시작되었다. 그래서 이전 모델의 학습(1차 파인튜닝)이 2차 파인튜닝 모델에도 어느정도 영향을 주고 있다는 생각을 했다.(근거가 부족해 합리적이지 않을 수 있어보인다) 그래서 1차 fine-tuning을 진행했을 때의 3e-5보다 조금 낮춘 1e-5의 lr로 진행했을 때 성능 향상이 있었다.

2차 finetuning 시 train/loss

따라서 이번에는 learning_rate을 더 낮춰서 9e-6으로 학습을 진행했고, 결과적으로 성능향상이 있었다. TF-IDF에 top_k_retreival 40으로 주고 학습한 결과 이전 모델(EM:60 / F1:70.42) 대비 (EM: 61.4700 / F1: 71.3000)으로 성능향상이 있었다. 그리고 추가적으로 이전 다른 팀원 분의 실험에서 Inference 시 BM-25로 했을 때 성능이 더 증가했었기 때문에 BM-25를 활용해 Inference를 진행한 결과 (EM:64.5800 / F1: 75.0200) 으로 큰 성능향상을 얻어 새로 SOTA를 갱신할 수 있었다. 연휴동안 learning_rate에 대해 하이퍼파라미터 세팅을 해두고 실험을 돌려놔도 괜찮을 것 같다.

learning_rate: 9e-6 (핑크)

▶ Review (생각)

오늘은 부캠 시작 전부터 갑자기 핸드폰이 고장이 났고, 어제 돌려놨던 모델의 성능도 좋지 않아서 시작이 불안했다. 하지만 마침 돈이 있어서 새로 핸드폰을 살 수 있었고, 또 마침 당근마켓에 생각했던 기준에 맞는 핸드폰도 올라와서 새로운 핸드폰을 사게 됐다. 그리고 오후부터 다시 집중해서 모델 성능을 올려서 또 SOTA를 갱신할 수 있었다. 이래저래 피곤했지만 결과적으로는 또 감사한게 많은 하루였던 것 같다.
오후에 집중하지 못한 만큼 또 저녁에 실험하고, 정리한다고 자격증 공부를 못해서 블로그 정리 이후 자격증 공부를 좀 해야할 것 같다. 내일 또 마침 휴일이니까 내일이랑 금요일을 잘 활용하면 일주일 공부로도..합격...가능하지 않을까 싶다. (대학교 중간고사 때를 생각하자...)