본 포스팅은 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한 결과
- 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을 설정할 때, "task domain → irrelevant domain"라고 정의하면 다음과 같음
- 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를 시행해도 크게 떨어지지 않는다는 사실을 발견하였음
- HELPFULNESS와 IMDB는 본래 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하는 것만이 효과적이라고 할 수 있음
'AI > NLP' 카테고리의 다른 글
Transformer-XL : Attentive Language Models Beyond a Fixed-Length Context (0) | 2024.02.14 |
---|---|
Time-Series Transformers (0) | 2024.01.16 |
Evaluation Metrics for Language Models (0) | 2024.01.10 |
GPT decides to stop generation: Semantics of the Unwritten, The Effect of End of Paragraph ... (0) | 2024.01.09 |
Open Source GPT-3 (GPT-Neo, GPT-J) (0) | 2024.01.08 |