dukim's blog

[WK09] P-Stage level 2 - NLP KLUE-RE 1주차 본문

Boostcamp AI Tech 2th

[WK09] P-Stage level 2 - NLP KLUE-RE 1주차

eliza.dukim 2021. 10. 2. 01:47

Intro

  • 대회에 대부분의 시간을 쏟음
  • 다른 분들이 너무 열심히 하셔서 정신을 바짝 차리게 된다.
  • 템플릿에 대해 명훈님께 정말 많이 배웠다.

이번 주 학습 목표

개인 학습

  • KLUE 강의 1 ~ 7강 수강 : 매일 1강씩 듣기로 계획했으나, 팀과 약속한 베이스라인 코드 작성 일정을 우선순위로 하였기 때문에 수요일이 되어서야 강의를 들을 수 있었다. 강의 내용을 듣다보니 베이스라인 짜기 전에 봤었더라면 시간을 절약할 수 있었을 유용한 코드들이 있어 강의를 늦게 들은 것을 후회했다. 다음 주는 하루에 조금이라도 시간을 할애하여 들을 것.

공동 학습

  • 아침인사와 그날의 할 일, 전날 완료한 일을 공유하도록 한 규칙이 하루를 허투루 보내지 않도록 하는데 도움이 되었다.

    image

  • 월 ~ 수 까지는 각자 베이스라인 코드 및 싱글 모델 성능 확인과 대략적인 hyperparameter를 찾고, 수요일부터 본격적으로 코드를 합쳐 이번주 내로 베이스라인 템플릿 완성하는 스케쥴로 진행되었다. 이 와중에 각자 세부적인 역할(EDA 전담, 템플릿 코드 모듈 추가 등)을 분담하여 진행했다.

모델 개선 방식

  • 대회제공 베이스라인은 entity 전처리에 오류가 있어 KLUE에서 제공된 베이스라인 처럼 entity 토큰을 이용한 방식을 썼다. 특히 하이퍼파라미터 서치 스페이스는 논문에서 제시된 범위 내에서 탐색을 수행하였고, 1일차 리더보드로 F1 0.67을 달성하였다. 그러나 이번에도 최종 제출에 valid set을 제외한 데이터로만 학습한 모델을 사용하는 실수를 저질렀다. 이후, 하이퍼파라미터를 추가로 탐색하면서 전체 데이터셋에 대해 학습한 모델로 제출한 결과 3일차 리더보드 F1 0.71을 달성했다.

  • 지난번 대회때 반성했던 것 중 하나가 변인 통제를 제대로 하지 않은 것이었다. 이번엔 각 실험 조건을 하나씩만 바꿔가며 해당 조건이 끼치는 영향을 알아보려했고, 그 결과 위에서처럼 개선된 모델을 얻을 수 있었다(아래는 실험 조건별 성능 비교, 아직 대회가 종료되지 않았으므로 구체적인 세팅은 가림)

    image

  • 지난번 대회때 뼈저리게 절감했던 건 데이터의 중요성이었다. 그러나 외부 데이터를 활용할 수 없다는 규칙상, 최대한 내부 데이터를 활용해야 했고, back translation이나 KoEDA 등을 활용한 방법, 데이터셋의 labeling 오류를 수정하는 방법 등이 후보로 올라 작업 중에 있다.

  • 데이터셋 추가가 제한된 상황에서 하이퍼파라미터 서치로 성능을 쥐어짜내는 게 필요했다. ray tune과, optuna 둘 모두를 사용한 코드를 작성해 팀원들이 서치를 쉽게 하도록 템플릿을 제공하였다.

이번 주 아쉬웠던 점, 새로 시도할 것들

  • 데이터셋에 대한 이해가 아직 덜된 점이 아쉬웠다. 템플릿 코드에 기능추가하는 것에만 치중하다보니 상대적으로 시간을 덜 투자한 감이 있다. 특히 label이 아직 헷갈리는 것들이 있어 주말간 명확히 이해해야겠다.
  • 새로운 구조를 실험해 볼 생각이다. 주중엔 시간이 없으니 주말에 미리 구현을 마칠 예정.
  • 하이퍼파라미터 서치 코드를 다 작성하고 공유게시판에 올리려고 들어갔는데 이미 다른 캠퍼분께서 글을 올리셨다. 내가 공유할 수 있었던 부분이었는데 한발 늦은 점이 아쉬웠다.
  • 프로젝트가 진행되는 전반적인 과정과 리더십, 발생하게 되는 문제와 협업을 통한 해결과정의 좋은 예시를 주의깊게 관찰하지 못 한 점도 아쉬웠다.
Comments