본문 바로가기
패스트캠퍼스&업스테이지 AI Lab 1기

NLP 경진대회 후기 - 패스트캠퍼스&업스테이지 AI Lab 1기

by 아르카눔 2024. 3. 24.

1. Abstract

  • Goal of the Competition
    • Text Summarization 일상대화 요약 경진대회. 주어진 데이터를 활용하여 대화의 요약 생성.
  • Timeline
    • March 08, 2024 - Start Date
    • March 06, 2024 - Mentoring1 (Before Competition)
    • March 15, 2024 - Mentoring2
    • March 20, 2024 - Mentoring3
    • March 20, 2024 - Final submission deadline
  • Description of the Data
    • 모든 데이터는 .csv 형식으로 제공되고 있으며, 각각의 데이터 건수는 다음과 같습니다.  
      dev는 validation 데이터이며, test는 public, hidden-test는 private test 데이터입니다.
      - train : 12457
      - dev : 499
      - test : 250
      - hidden-test : 249
    • 총 6526가지의 대화 주제. 
      • 일상 대화는 236개의 대화, 쇼핑은 188개, 기업 운영, 밴드의 경우는 1개의 대화만 존재한다.
    • 성능 지표는 ROUGE-1-F1, 2-F1, L-F1의 합을 사용한다. 
    • 이때, ROUGE란 Recall-Oriented Understudy for Gisting Evaluation의 약자로 자동 요약이나 기계번역에서 사용되는 평가지표다. 
    • 경진대회 데이터는 AI Stages가 제공했다.
  • Description of the Work
    • 총 5명의 조원이 각자 EDA, 리서치, 피쳐엔지니어링, 모델링 후 결과 공유
    • 첫 주차는 오전 10시에 회의, 두번째 주차에는 오후 5시에 하루에 2번씩 회의
    • 얻은 인사이트, 구현한 코드, 모은 데이터, 리서치, 의문점 등 논의
    • 여러차례 멘토링을 통해 의문점이나 추가적인 사항에 대한 정보 공유

2. Process : Competition Model

  • AI Stages에서 제공한 서버 이용해서 학습
  • 자동 문서 요약에는 문서 이해 MRC 능력과 Generation인 생성 능력이 모두 필요하기 때문에 Encoder-Decoder 모델을 사용했다. KoBART를 사용했다. KoT5의 경우 시도했으나 튜닝하는 과정에서 완성하지 못했다. 아래의 Figure 1과 2는 huggingface에서 찾은 한국어 자동 요약 모델들이다.

Figure 1. Korean Summarization Models 1
Figure 1. Korean Summarization Models 2

  • EasyDataAugmentation (EDA) 적용
    RandomDeletion (RD)
    RandomInsertion (RI)
    SynonymReplacement (SR)
    RandomSwap (RS)
  • AEasierDataAugmentation (AEDA) 적용
  • EDA와 AEDA 모두 koeda 사용
  • wandb를 활용한 모델의 성능 지표 모니터링 적용 경험을 쌓았다. 이로써 Tensorboard와 wandb 모두를 사용해보았다.

Figure 3. Wandb Performance Monitoring

3. Process : Issues

  • Issues.
    • 부족한 데이터의 수 문제
    • NLP 문제를 푸는 것 자체에 대해 익숙하지 않았다.
    • KoT5의 적용 문제
  • Solutions to Imporve Your Project Performance.
    • koeda를 통한 EDA과 AEDA를 적용해서 데이터 증강을 시도했다.
    • EDA는 성능의 향상이 별로 없었고, AEDA는 적용 시간이 오래 걸려서 사용하지 않았다.
    • 주어진 강의와 baseline 코드를 적용하면서 익숙해졌다.
    • 직접 대회를 만든 분과 멘토링할 시간이 있었는데 베이스라인인 KoBART 자체가 성능이 높아서 향상이 쉽지 않다고 피드백을 들었다.
    • KoBART의 baseline을 기초로 한 코드로 학습 중에 Batch Size 하나 차이나는 문제가 발생했다. BART와는 다른 T5의 Encoder input과 Decoder input 파트를 더 분석해봐야한다.

4. Role

  • EDA, 리서치, 피쳐 엔지니어링, 모델링

5. Results

리더보드

  • 8th, Public Score: 41.9246
  • 7th, Final(Public + Private) Score: 39.1958

6. Conclusion and Retrospective

  • NLP 강의들이 내용이 좋기에 이를 복습하고 이를 기반으로 페이퍼들을 직접 보고 huggingface 등을 통해서 구현을 더 해보겠다 다짐했다.
  • Wandb를 처음 사용해봤는데 굉장히 유용한 툴이라 앞으로도 자주 사용할 듯 싶다. 
  • 특히 EDA의 적용에 있어서 교착어인 한국어와 고립어인 영어는 형태소 분석이나 토크나이제이션 파트에서 다르게 적용해야 데이터 증강이나 성능의 향상에 있어서 유의미한 결과를 낼 수 있다. 영어의 경우 형용사나 부사를 빼도 의미가 전달되는 경우가 있으나 한국어의 경우 조사 하나가 바뀌면 의미가 크게 바뀐다.
  • Self-Attention, Encoder 구조, Decoder 구조 등 NLP 모델에 대한 이해와 더불어서 한국어가 지닌 고유의 언어학적 지식도 알아야 유의미한 결과를 낼 수 있으니 이에 유의해야겠다고 반성했다.
  • LLM 같은 거대한 모델은 개인이나 작은 규모의 기업, 연구집단에서는 파운데이션 모델을 건드리기 보다는 데이터에 집중해야 한다. 이는 곧 언어 자체에 대한 지식과, 그 언어가 사용되는 분야에 대한 이해, 예를 들어 전문문서 번역의 경우 의학이면 의학, 건설이면 건설분야에 대한 도메인 지식이 중요하다고 판단할 수 있다.
  • Backtranslation도 사용해봐야겠다. 특히 ROGUE 지표를 만족해야하므로 정답인 summary 보다는 dialogue에 증강을 적용하는게 좋아 보인다. 
  • Supervised Fine-Tuning Trainer랑 LORA도 사용해봐야겠다.

References:

https://github.com/toriving/KoEDA