본문 바로가기

AI/NLP

Don’t Stop Pretraining: Adapt Language Models to Domains and Tasks

본 포스팅은 Don’t Stop Pretraining: Adapt Language Models to Domains and Tasks논문의 리뷰를 다루고 있습니다.

개인적 고찰은 파란색으로 작성하였습니다. 해당 내용에 대한 토론을 환영합니다 :)

 

Summary

  • LLM(Large Language Model)을, 수행하고자 하는 task domain에 맞게 pre-training하는 것은 LLM을 task specific PT모델로 만드는 효과가 있다. (Domain Adaptive Pre-Training, DAPT)
  • 이에 더불어, 수행하고자 하는 task dataset에 대해서도 pre-training하는 것 또한 task 성능 향상에 직접적으로 기여한다 (TAPT) ⎯심지어 DAPT보다도 더 효과가 있다.
  • 다만, 주의해야할 것은 DAPT든 TAPT든 data distirbution이 다른 data를 pre-training하는 것은 catastrophic forgetting을 야기하여 성능을 저하시키므로 어떤 데이터를 pre-training할 것인가를 판단하는 것이 반드시 선행되어야 한다.

 

Introduction

  • 방대하고 다양한 Corpus를 기반으로 사전학습한 모델을 구축하고 다양한 task에 fine-tuning하여 좋은 performance를 내고 있음
  • 하지만, 이러한 사전학습 모델이 보편적으로 통용될 수 있는지 아니면 domain-specific한 사전학습 모델을 구축하는 것이 나은지에 대한 판단이 필요함⎯개인적으로 Key Question이라고 생각함
    • 알다시피, 어떠한 domain의 사전학습 모델을 구축하는 데에는 많은 시간, 비용, 노력이 들어 쉽게 구축할 수 없으나
    • 배포된 일반적인 사전학습 모델을 그대로 사용하는 것이 과연 진정한 사전학습 모델인지에 대한 가치판단이 필요하다고 생각함 (아래와 같은 domain gap때문에)

  • Fine-tuning의 대상이 되는 downstreaming dataset(=task dataset, 검정색 ellipsis)는 사전학습 데이터 분포와 task dataset이 속한 target domain의 교집합(회색 ellipsis)으로부터 선택된 dataset임
    • 그리하여, target domain에 대한 pre-training이 task performance 향상에 도움이 될 것이라는 것이 본 논문의 key ide
  • 그래서, RoBERTa라는 사전학습모델을 기반으로 4개의 domain⎯biomedical, computer science publications, news, reviews⎯과 8개의 classification task에서 continued pretraining on the domain (DAPT)의 효과성을 입증하고자 함
  • 본 논문에서는 다른 domain에서의 DAPT 효과성과 더불어 TAPT (task-adaptive pre-training)의 효과성을 함께 검증하였고, 특히나 TAPT가 RoBERTa에서 비약적인 performance 향상을 가져왔음 (DAPT를 쓰든 안 쓰든)
    • 이러한 TAPT를 위해서 manually curated task-specific unlabeled data를 사용하는 것이 주요했는데, 이를 모사하여 automatically task-relevant unlabeled text를 구성하는 방법도 제안코자함 (TAPT한정)
    • 어떻게 보면 자명한 사실인 것이, 충분한 capacity가 있는⎯즉, 데이터를 많이 배울 수 있는⎯Large Pre-trained Model에게 task와 직결되는 데이터를 더 배우게 하는게 성능 향상에 도움이 될 것
    • 이 논문의 contribution은 이러한 당연한 생각들을 가설로 잡고 정교하게 검증 실험을 설계하여 증명해나가는 데에 있다고 생각함

 

 

 

Method

1.   Domain-Adaptive Pre-Training (DAPT)

DAPT는 사전학습 모델을 unlabeled domain specific data로 한번 더 pre-training하는 것을 말함.

이를 위해서 RoBERTa를 아래 표에서 4가지 domain Corpus를 다시 pre-training시키고 성능을 측정하였음.

  • 성능은 masked LM loss이며 각 domain dataset에서 50k의 document를 random sampling하여 loss를 측정하였음
    • $L_{ROB.}$는 DAPT를 하기 전 RoBERTa의 loss를 측정한 것이고 $L_{DAPT}$는 DAPT를 하고난 후 loss를 측정한 것임
  • 지표가 loss이기에 낮을수록 해당 corpus를 잘 배웠다고 생각할 수 있으며, NEWS domain을 제외하고는 다른 domain에 대해서 DAPT가 유효하였다는 것을 증명함
  • ‡표시는 RoBERTa의 pre-training corpus에 대한 masked LM loss이며 RoBERTa의 pre-training dataset이 공개되어 있지 않아 비슷한 source data로 측정한 결과임

 

1. 1   The effectiveness of DAPT for fine-tuning

 

아래 실험결과는 DAPT가 fine-tuning task에 얼마나 영향을 주는지 검증하기 위해 각 domain에 해당하는 task(classification)를 fine-tuning한 결과

Comparison of ROBERTA (ROBA.) and DAPT to adaptation to an irrelevant domain (¬ DAPT)
Task dataset infomation

  • Task지표는 test marco $F_1$-score
  • ROBA.는 DAPT없이 그대로 각 task를 fine-tuning한 결과이며 ¬DAPT는 task domain과 관계없는 domain으로 DAPT한 결과임
    • 관계없는 domain을 설정할 때, "task domain → irrelevant domain"라고 정의하면 다음과 같음 
      : NEWS CS ,  REVIEW BM , CS NEWS , BIOMED REVIEWS
    • 위와 같이 선정한 이유는 각 domain마다 Vocabulary overlap관계를 도출해보았을 때, 각 pair가 모두 dissimilar한 경우를 찾은 것으로 생각함
    • Reivews와 CS는 12.7로 vocab이 겹치는 정도가 매우 낮지만 그렇게되면 News-BioMed의 관계rk 24.9나 되어버려서, 둘다 낮은 수치로 고를 수 있는 NEWS-CS (17.3), REVIEWS-BM(18.3)으로 고른게 아닐까 싶음
    • 그런데, 각 domain마다 제일 낮은 domain으로 ¬DAPT하면 되지 않은가?⎯ NEWS → CS ,  REVIEW CS , CS REVIEWS , BIOMED → REVIEWS (실험 resource가 부족했나...)

각 domain간 vocabulary overlap

 

 

  • DAPT가 Pre-training한 dataset이 늘어나서 성능이 향상된 것이 아닌, Task와 상관있는 domain dataset을 pre-training해서(DAPT) 성능이 향상되었다는 것을 증명함
  • 또 하나의 시사점은 task의 domain을 고려하지 않는 DAPT는 안하느니 못하다는 사실임 (ROBA.보다도 ¬DAPT가 낮을 수 있음)

 

1. 2   Domain Overlap

 

위에서 살펴 본 domain간의 vocab overlap matrix에서, REVIEWS와 NEWS의 overlap정도가 40%임.

이 정도 overlap 수준인 domain에 대해 DAPT를 시행해도 크게 떨어지지 않는다는 사실을 발견하였음

  • HELPFULNESSIMDB는 본래 REVIEWS domain data로 Pre-training해야하지만, NEWS data로 Pre-training하더라도 DAPT성능이 크게 뒤쳐지지 않음 (전혀 상관없는 DAPT 결과인 ¬DAPT보다도 좋음)

 

 

 

2. Task-Adaptive Pre-Training (TAPT)

특정 task를 수행하기 위해 선택된 data(=task dataset)가 domain(=target domain)의 subset만을 cover하게 됨예를 들면 CHEMPROT dataset은 PubMed categories에서 추출한 데이터셋임. 이렇게 task dataset이 narrowly-defined subset of target domain일 때, task dataset에 대한 pre-training이 성능향상에 도움을 줌. (이 역시도 자명한 사실)

  • DAPT와의 차이점은, task datset이 훨씬 적은 양이며 훨 씬 더 task-relevant하다는 점임
  • 이러한 점에서 TAPT가 DAPT보다는 수행하기에 inexpensive함

 

 

2. 1   TAPT experiments

 

아래 표는 DAPT와 마찬가지로, 사전학습된 RoBERTa에 task dataset을 unlabeled dataset으로 pre-training시킨 결과임

  • TAPT자체는 RoBERTa의 baseline 성능을 모두 outperform하였음
  • DAPT와 비교하였을 경우는 아래와 같음

  • DAPT가 TAPT에 비해 resource intensive즉, 자원을 많이 요구하는task인데 반해 TAPT의 효과가 우수하다고 볼 수 있음
  • 이러한 효과는 DAPT와 TAPT가 함께 쓰이면 극대화 됨

 

 

2. 2   Cross-Task TAPT

  • 이전까지 살펴보았던 TAPT는 task dataset에 대한 pre-training이 성능 향상을 가져다주었다는 것임
  • 과연 다른 task dataset에 대한 pre-training도 성능 향상을 가져다 줄까? → TAPT가 transferring이 가능한가?에 대한 질문
  • 위 표는 그 결과를 보여줌. Transferring은 같은 domain 내의 다른 task dataset에서 수행함.
    • 좌측 상단 표를 보자면 BIOMED domain에서는 RCT, CHEMPROT 두개의 task dataset이 있는데, TAPT는 각 task dataset을 pre-training한 것이라면,
    • Transfer-TAPT는 서로 (RCT는 CHEMPROT으로 pre-training하고 vice versa) pre-training한 것
    • 모든 domain내에서 Transfer-TAPT보다는 TAPT가 우수함
    • 이는 아무리 같은 domain이라고 하더라도 task에 따라 data 분포가 다름을 의미함 → 즉, 위에서도 살펴 본, 분포가 유사한 data로 pre-training하는 것만이 효과적이라고 할 수 있음