Don’t Stop Pretraining: Adapt Language Models to Domains and Tasks (by 이원민)

AI CAU_DSLAB·2022년 3월 2일
0

paper reading

목록 보기
5/5

summary

  1. 최근 대부분의 NLP 관련 연구에서는 pretrained 모델을 사용

  2. 본 논문에서는 특정 task와 domain의 data를 pretrain에서 사용하는 것의 유용성에 주목함

  3. RoBERTA 모델을 사용하여 실험을 진행

  • RoBERTa는 기존 BERT의 pretrain에서 사용한 Wikipedia, BOOKCORPUS 등의 data 뿐만 아니라 CCNEWS, OPENWEB-TEXT등의 unlabled data를 추가해 160GB의 데이터를 사용

  • Transformer 기반의 아키텍처를 사용해 기존의 BERT와의 구조는 동일하지만, train step, batch size를 늘림

  • 기존 BERT의 NSP 방식은 사용하지 않고, MLM 방식만 사용

  • 이로인해 RoBERTa는 이전의 pretrained 모델보다 더 다양한 task에서 더 좋은 성능을 발휘했기 때문에 본 논문에서 사용하게 됨

  1. 본 논문의 기여도

    ① domain 및 task adaptive pretrain 했을때의 성능 비교를 위해 4개의 domain과 8개의 task에 대한 실험을 진행 (DAPT, TAPT, Combined DAPT and TAPT)

    ② 특정 task에 adapted했을 때 다른 task로 transfer하는지에 관한 실험 진행(Transfer-TAPT)

    ③ 더 많은 데이터를 TAPT에 적용하기 위해 task와 관련한 unlabled data를 생성 하는 2가지 방식을 사용 (Human Curated-TAPT, Automated Data Selection for TAPT)

domain & task adapted pretrain

①-1. DAPT(Domain-Adaptive Pretraining)

: 특정 domain과 관련있는 데이터를 사용해 pretrain 진행

  • 특정 domain(논문에서는 biomedical, computer science, news, reviews domain사용)과 기존 RoBERTa의 pretrain domain의 유사도 측정 (fig2)

    • 각 도메인의 데이터에서 자주 사용되는 상위 10,000개의 단어를 사용해 측정
    • 결과적으로, news와 reviews domain은 유사도가 높았고, cs와 biomedical은 비교적 유사도가 낮은것을 확인
  • 관련있는 domain의 데이터로 pretrain을 진행했을 때 기존의 RoBERTa 보다 성능이 향상된 것을 확인 (table3)

  • 위의 결과가 단순히 많은 데이터를 pretrain에 사용해서 성능이 향상된 것이 아님을 증명하기 위해 다른 domain의 데이터를 pretrain에 사용해 실험을 진행

    • 비교적 유사도가 낮은 것끼리 cross
      (news: cs // review: biomedical // cs: news // biomedical: review) (fig2)
    • 결과적으로, 성능이 낮은것을 확인 (table3-¬DAPT)
  • DAPT를 통해 domain 관련성을 고려해 pretrain을 진행하면 최종 성능이 향상됨을 알 수 있음

①-2. TAPT (Task-Adapting Pretraining)

: 관련된 domain 중에서도 특정 task와 관련된 데이터를 사용해 pretrain 진행

  • DAPT와 비교했을 때 더 적은 데이터를 사용하지만, 훨씬 더 관련성이 높다는 장점을 가짐

  • 기존의 RoBERTa 방식에 비해 성능이 좋고 DAPT 방식과는 비슷한 성능을 가지는 것으로 보아(table5) 시간과 비용이 더 적게 들기 때문에 효율적인 방식으로 볼 수 있음

①-3. DAPT+TAPT

: 기존의 RoBERTa의 pretrain 후, DAPT와 TAPT를 순서대로 진행

  • 기존의 RoBERTa, DAPT, TAPT와 비교했을때 DAPT+TAPT 방식이 가장 좋은 성능을 보임 (table5)

  • 하지만, RoBERTa, DAPT, TAPT와 비교했을때 계산 비용이 가장 큼

Transfer-TAPT

: 같은 domain의 2개의 task 사이의 transfer 효과가 있는지에 관한 실험 진행

ex) biomedical domain의 RCT, CHEMPROT task에서 RCT의 unlabled data로 pretrain을 진행하고, fine-tuning을 진행할 때 CHEMPROT의 labled data로 결과를 확인

  • 결과적으로 Transfer-TAPT가 TAPT의 성능보다 낮은것을 확인 (table6)

  • 이를 통해 같은 domain 내에서 task에 따라 데이터 분포가 다를 수 있다는 것도 확인할 수 있음

Augmenting Training data for TAPT

: 특정 task에 더 많은 unlabled data를 만들고 TAPT 실험 진행

③-1. Human Curated-TAPT

: 사람이 직접 unlabled 데이터를 찾고 TAPT에 적용하는 실험을 진행

  • RCT: 18040개의 training 데이터중 500개를 labled로, 나머지는 unlabled로 설정하고 Curated-TAPT 진행

    • DAPT+TAPT실험(table5)에서 TAPT는 기존 18040개의 데이터(table2)로 pretrain 했을때의 성능이 87.8(table5)
    • DAPT+Curated-TAPT 실험(table7)에서 Curated-TAPT는 17540개(18040-500) 데이터(table2)로 pretrain
      했을때의 성능이83.8(table7)
    • → 더 적은수의 데이터로 TAPT를 진행했을 때 성능이 낮은것을 확인
  • HYPERPARTISAN: 5000개의 unlabled data로 Curated-TAPT 수행

    • DAPT+TAPT실험(table5)에서 TAPT는 기존 515개의 데이터(table2)로 pretrain 했을때의 성능이 90.0(table5)
    • DAPT+Curated-TAPT 실험(table7)에서 Curated-TAPT는 5000개의 데이터(table2)로 pretrain 했을때의 성능이
      92.1(table7)
    • → 더 많은수의 데이터로 TAPT를 진행했을 때 성능이 높은것을 확인)
  • IMDB: unlabled 데이터를 직접 50000개 수집해 Curated-TAPT 진행

    • DAPT+TAPT실험(table5)에서 TAPT는 기존 20000개의 데이터(table2)로 pretrain 했을때의 성능이 95.6(table5)
    • DAPT+Curated-TAPT 실험(table7)에서 Curated-TAPT는 50000개의 데이터(table2)로 pretrain 했을때의 성능이
      95.8(table7)
    • → 더 많은수의 데이터로 TAPT를 진행했을 때 성능이 높은것을 확인

→ 사람이 직접 데이터를 만드는 것은 한계가 있기때문에 ③-2와 같이 자동으로 데이터를 생성하는 방법을 제안

③-2. Automated Data Selection for TAPT

: 자동으로 task와 관련있는 unlabled 데이터를 찾는 방안

  • VAMPIRE 모델(bag-of-words 기반의 language model)을 사용해 task, domain 데이터를 shared space에 임베딩

  • domain 데이터중 task 데이터와 유사한 데이터 선택
    - 유사한 데이터는 Knn, random 방식으로 진행
    - Knn에서는 k=50,150,500을 random에서는 k=50을 대상으로 데이터를 선택해 진행 (fig3)
    - 결과적으로 random 보다 kNN을 사용했을 때 성능이 높은 것을 확인 할 수 있음 (table8)

profile
중앙대학교 Data Science Lab입니다.

0개의 댓글