부스트 캠프 RE 프로젝트

개인 회고

나는 내 학습목표를 달성하기 위해 무엇을 어떻게 했는가?

  • 깃허브와 관련된 issue, pull request 작성 요령을 공부함.
  • github action, precommit 등을 공부함.
  • 허깅페이스 trainer와 trainingarguments 공식문서를 읽으며 어떤 인자들이 활용되는지 공부함.

나는 어떤 방식으로 모델을 개선했는가?

  • 학습 데이터와 검증 데이터를 적절한 방식으로 나뉘어 검증 f1-score와 리더보드 상 f1-score의 간격을 줄임.
  • Entity Representation 방식을 적용하는 코드를 구현하여 1%의 성능 향상을 달성.
  • Cross EntropyLoss 이외 Focal Loss를 적용해 학습을 안정화 시킴.
  • 모델 앙상블을 통해 0.5%의 성능 향상을 달성.

내가 한 행동의 결과로 어떤 지점을 달성하고, 어떠한 깨달음을 얻었는가?

  • train 데이터와 valid 데이터 분할이 적절하게 이루어져 public과 private간 점수 차이가 없음.
    • 검증 데이터의 분포를 어떻게 만드는지가 모델의 성능을 적절하게 검증하는 방법이 되는 것을 깨달음.
  • CrossEntropyLoss를 사용했을 때 검증 loss가 증가하는 경향이 크게 나타남.
    • Focal loss를 적용해 검증 loss의 증가하는 경향을 감소시켰으며 weight와 gamma를 통해 효율적으로 불균형 데이터를 학습하도록 함.
  • 모델의 입력을 수정하여 entity 정보를 가지고 들어가는 기능을 구현함.
    • 리더보드 상 1%의 성능 향상을 보였으며, 모델의 입력이 모델 성능으로 영향을 준다는 것을 깨달음.
  • 모델의 구조를 변경해 roberta 모델과 LSTM, GRU 모델을 결함함.
    • 기존 baseline 모델과 비교하여 성능 향상은 있었지만 학습 시간을 고려하면 효율적이지 못함.
  • 하이퍼 파라미터 튜닝을 진행함.
    • LB 기준 f1-score 71점을 유지했지만 하이퍼 파라미터 튜닝을 통해 f1-score 74점을 달성함.
    • 각 모델이 학습을 진행할 때 학습을 효율적으로 만드는 하이퍼 파라미터가 있는 것을 깨달음.
    • 특히 5e-4, 5e-5, 5e-6 으로 큰 틀로 실험을 진행했을 때 5e-4는 학습을 전혀 하지 못함.
  • 모델의 앙상블을 통해 리더보드 2위의 점수를 달성했으며, 각 모델이 가지는 약점을 앙상블을 통해 보완하는 것을 깨달음.

전과 비교해서, 내가 새롭게 시도한 변화는 무엇이고, 어떤 효과가 있었는가?

  • 깃허브를 통한 협업을 시도함.
    • issue와 pull request를 통해 코드 리뷰를 거치고 하나의 브랜치로 병합하는 과정을 수행함.
    • 깃허브를 통해 협업을 하니 버전관리가 쉬워지고 팀원들과 코드 공유가 편리해짐.
  • make file을 통한 깃허브 액션, precommit을 통해 코드 포맷팅을 적용함.
    • main, dev 브랜치와 merge 할 때 포맷팅을 통해 코드가 통일이 되어 충돌이 일어나지 않음.
  • 특정 실험을 브랜치를 분기하여 수행함.
    • 분기하는 파일과 기존 파일이 분리되어 실험을 수행하기 편리함.
  • 코드 리뷰를 진행함.
    • Pull Request를 통한 코드리뷰를 진행하여 더욱 효율적인 코드 및 새로운 기능을 적절하게 적용함.

마주한 한계는 무엇이며, 아쉬웠던 점은 무엇인가?

  • 특정 기능을 수행하고 각 기능을 독립적으로 모델의 성능 실험을 진행을 하지 못 함.

  • 모델이 출력한 결과를 분석하는 과정이 간소화 되었음.

  • 모델의 구조를 변경하고, 모델의 입력을 변경하는 실험이 늦게 이루어짐.

한계/교훈을 바탕으로 다음 프로젝트에서 스스로 새롭게 시도해볼 것은 무엇일까?

  • 노션을 활용해 표를 만들어 개인이 실험한 모델을 기록하는 것을 시도해보면 좋을 것 같음.

  • 모델 실험을 진행했을 때 모든 내용을 기록해야 비교할 때 유용함.

  • 프로젝트와 관련된 논문을 효율적으로 찾아 이를 실험 해 보는 과정이 더욱 활발하면 좋을 것 같음.

Categories:

Updated: