보편적으로 NLP분야에서는 대용량의 데이터로 사전 학습된 모델을 가져다가 fine-tuning을 진행을 하는 방식으로 task를 해결합니다. 실제로 160GB 이상의 데이터로 사전학습을 한 RoBERTa는 다양한 task에서 좋은 성능을 보여줍니다. 하지만 이렇게 사전 학습된 모델이 특정 도메인(biomedical, computer science, review)에서도 성능이 잘 나올지는 의문입니다. 따라서 해당 논문에서는 사전학습된 모델이 특정 도메인에 여전히 효과가 좋은지에 대해 다루었습니다.
이 논문의 결론은 간단합니다. 특정 도메인에서 fine-tuning만 하지 말고 MLM(Masked language modeling)도 하면 성능이 잘 나온다입니다. 간단하지만 이것이 작동하는 이유와 실험 과정을 잘 정리해 2020 ACL에서 상을 받을 수 있었습니다.
0. Intro
충분히 큰 데이터로 사전 학습했기 때문에 어느 도메인이든 커버가 가능하지 않을까 생각할 수 있지만 fine-tuning할 도메인이 회색 부분과 같이 완전히 포함되지 않을 수 있습니다. 따라서 해당 도메인의 데이터로 다시 학습하여 사전학습과 다른 영역으로 가져갈 필요가 있다는 것이 이 논문에서의 주장입니다. 따라서 다음과 같은 실험을 진행했습니다.
1. DAPT (Domain-adaptitve pre-training)
- 4가지 도메인에 대해 각각 pre-training(BioMed, CS, News, Review)
2. TAPT (Task-Adaptive pre-training)
- 도메인에 속해있는 task에 대해서만 pre-training
- 훨씬 적은 데이터
- ex) 도메인이 Review라면 IMDB task데이터만으로 pre-training
3. Augmenting Training Data for Task-Adaptive Pretraining
- TAPT의 성능이 잘 나오니까 더 많은 unlabeled data를 추가하여 성능을 높여보자(2가지)
- 1. 사람이 직접 annotaion -> Human Curated-TAPT
- 2. task 데이터셋과 비슷한 unlabeled 텍스트를 retrieve(KNN) -> Automated Data Selection for TAPT
1. DAPT
160GB로 사전 학습한 RoBERTa의 MLM Loss($L_{RoB}$)와
도메인별로 추가 사전학습(DAPT) 후 MLM Loss($L_{DAPT}$)를 볼 수 있습니다. 여기서 볼 수 있는 특징은
- 기존 RoBERTa는 News도메인을 제외하곤 성능이 잘 나오지 않는다.
- DAPT 후 Loss가 낮아진다. (어찌 보면 당연)
- 기존의 160GB의 사전학습 데이터와 각 도메인의 분포가 상당히 다르다는 점을 알 수 있다.
도메인간 단어들의 유사도를 보면 RoBERTa 의 사전학습 도메인과 News의 도메인의 단어가 많이 겹치고, CS, BioMed도메인과는 거리가 있음을 알 수 있습니다. 따라서 기존의 RoBERTa만으로도 News도메인에서 loss가 낮게 나온 것을 설명할 수 있습니다. 그렇다면 실제 task에서 DAPT를 통해 성능이 어떻게 나오는지 확인해보겠습니다.
도메인별로 DAPT를 통해 성능 (F1-score) 이 향상된 것을 확인할 수 있습니다. 흥미로운 부분은 ¬DAPT 부분인데, 논문에서는 DAPT 의 성능 향상이 단지 더 많은 데이터를 학습하여 성능이 개선된 것인지에 대해 확인하려 했습니다. 방법은 상관없는 도메인에 대해 학습을 시킨 후, 관련 있는 도메인의 task의 성능을 보는 것입니다. (ex. CS 로 학습 후, BioMed task수행) 표를 보면, ¬DAPT 의 결과가 baseline 모델보다 좋지 않은 것을 알 수 있습니다. 즉, 도메인에 속한 task 성능은 도메인에 대한 pre-training으로 개선될 수 있다는 것입니다.
2. TAPT
TAPT에서는 DAPT 보다 크기는 작지만, 주어진 task에 더 가까운 corpus를 사용합니다. 앞서 DAPT에서는 Review도메인의 11GB를 사용했다면 TAPT에서는 Review도메인의 IMDB task를 해결하기 위해 IMDB 데이터만 사용하는 것입니다. DAPT에 비해 학습 비용이 저렴하며, 경쟁력 있는 성능을 보여주었습니다.
실험 결과를 보면 TAPT는 RoBERTa의 성능을 뛰어넘었고 더 나아가 성능 개선이 뚜렷하지 않던 News도메인에서도 TAPT의 성능이 더 나은 것을 볼 수 있습니다. 특히 주목할 점은, TAPT에 비해 DAPT에 많은 데이터가 많이 들어감에도 불구하고 TAPT는 몇몇의 task에 대해 DAPT보다 높은 성능을 보여준다는 것입니다. 또한 DAPT -> TAPT 방식이 비용은 가장 많이 들지만 성능이 가장 좋다고 합니다.
※ 반대로 TAPT -> DAPT는 task 관련해서 망각을 유발할 수 있다고 하고 성능 또한 낮다고 합니다.
3. Augmenting Training Data for Task-Adaptive Pretraining
Human Curated-TAPT
Curated-TAPT만으로도 TAPT와 DAPT+TAPT에 비해 성능이 잘 나오는 것을 알 수 있습니다.
Automated Data Selection for TAPT
task 데이터와 도메인 데이터를 임베딩 한 뒤에, task 데이터와 유사한 도메인 데이터를 선택합니다. 문장을 임베딩 할 수 있게 VAMPIRE(VAE)라는 가벼운 모델을 사용했다고 합니다. 그 후, task에 속한 데이터와 유사한 K개의 도메인 데이터를 선택합니다. 이에 따라 뽑힌 도메인 데이터는 task 데이터와 분포가 유사하게 됩니다.
kNN-TAPT에서 k가 증가하면서 성능도 좋아지며 데이터가 부족하거나 컴퓨팅 리소스가 부족한 경우에 효과적이라고 합니다.
4. Conclusion
- 큰 언어 모델은 도메인의 특성을 담기 어렵습니다.
- 따라서 도메인과 task에 대해 사전학습을 하는 것은 도움이 됩니다.
5. 내 생각
- 원하는 task에서 좋은 성능을 달성하기 위해서는 task에 맞게 재학습을 해야 한다는 것은 어찌 보면 당연하지만 이렇게 실험을 통해 보여줘서 좋았습니다.
- 기존에 어느 정도 성능이 나오는 task(RCT, AGNEWS , IMDB)를 보면 기존 RoBERTa와 유의미한 성능 차이가 있다고 보기 힘든 거 같습니다. (1%내)
- MLM에 필요한 리소스를 생각해 봤을 때 비효율적이라고 생각이 들지만 컴피티션과 같이 조금이라도 성능 향상이 필요하다면 유용할 것 같습니다.
https://arxiv.org/pdf/2004.10964.pdf
'AI/ML > NLP' 카테고리의 다른 글
[Paper Review] 생성 AI로 만들어졌는지 판단하기 (DetectGPT) (1) | 2023.11.26 |
---|---|
[Paper Review] LoRA: Low-Rank Adaptation of Large Language Models (1) | 2023.05.14 |
[Review] OpenAI의 DALL-E2 공개 (0) | 2022.04.24 |
[Paper Review] RoBERTa: A Robustly Optimized BERT Pretraining Approach (0) | 2022.03.13 |
[Paper Review] An Empirical Study of Tokenization Strategies for Various Korean NLP Tasks (0) | 2022.01.23 |