부스트캠프 AI Tech 1기 [T1209 최보미]/P stage-2 (KLUE)

Day6 학습정리 - BERT 기반 두 문장 관계 분류 모델 학습

B1001101 2021. 4. 19. 23:56

프로젝트 회고

  • argparse를 사용해서 run.py를 실행할 때 config 파일을 인자로 받도록 코드를 바꿨다. 설정값들을 config.json파일로 관리하니까 확실히 실험할 때 훨씬 편했다. 
  • pretrained model을 제대로 불러오도록 베이스라인 코드를 수정하고 다시 돌려봤다. 저번주에 bert보다 koelectra가 더 성능이 안 좋아서 이상하다 생각했었는데 코드를 수정하니까 정확도가 50프로대에서 70프로대로 확 올랐고 koelectra가 bert보다 더 성능이 좋았다.
  • kobert도 사용해봤는데 뭔가를 잘못 설정했는지 성능이 현저하게 낮았다. 기본 bert에서 사용하던걸 그대로 사용해서 그런 것 같다.argparse를 사용해서 run.py를 실행할 때 config 파일을 인자로 받도록 코드를 수정했다.
  • 기존 코드는 step 기준으로 모델을 저장해서 학습이 완전히 끝나기 전의 모델을 사용했었다. 학습이 완전히 끝난 후의 모델을 사용하면 정확도가 약간 오르지 않을까 싶어서 save_strategy='epoch' 을 추가했다.
  • 그리고 토론게시판에 올라온 문장 길이 분포를 보니까 90% 지점이 160라고 되어있어서 maxlength를 160으로 늘려줬는데 정확도가 0.1퍼센트밖에 안 올랐다.
  • 오늘 피어세션에서 '관계없음' 클래스에 대한 얘기가 나와서 예측값을 모두 0으로 설정한 다음 제출해봤는데 정확도가 무려 52.1퍼센트가 나와서 놀랐다. 1000개의 테스트셋중에 0이 521개 있다는 것이다. 0이 절반 넘게 있으면 아예 클래스가 0인 것과 0이 아닌 것을 먼저 분류한 다음 나머지를 분류하는 것도 괜찮은 방법인것 같다.