* 논문상의 내용을 바탕으로 하고 있으며, 본인이 이해하고 해석한 흐름에 맞게 내용을 조정하였습니다.
Abstract
최근 NLP tasks 그리고 benchmarks에 대한 연구에서, specific task에 대한 모델의 성능을 향상시키는 것에 대한 가치있는 발견이 있었다. Task-agnostic한 architecture를 가진 모델에 specific task를 위한 large corpus examples를 이용하여 specific task에 맞게 모델을 fine-tuning시켜 task를 해결해 내도록 하는 것이다. 하지만 인간이 NLP task를 수행해 낸다고 가정해본다면, 그리고 인간이 그러한 task를 풀어낼 때의 과정을 상상해본다면, 인간이 task를 풀어낼 때의 모습은 large corpus examples로 fine-tuning한 모델이 task를 풀어내는 모습과 다르다고 말할 수 있다.
Fine-tuning 모델이 task를 해결하기 위해 pre-trained 지식을 사용한다는 점은 인간이 task 해결을 위해 배경 지식을 활용하는 모습과 같다고 볼 수 있다. 그러나, 인간은 specific task를 해결하기 위해 엄청난 개수의 large corpus examples를 필요로 하지는 않는다. 단지, 배경 지식과 task에 맞는 몇 개의 examples 혹은 instructions만 주어진다면 인간은 짧은 시간 안에 여러 task를 수행해 낼 수 있을 것이다.이러한 인간의 모습으로 task를 수행할 수 있는 능력을 가진 모델이 바로 GPT3이다.
GPT3는 in-context learning을 통해 specific task를 위한 large corpus data와 fine-tuning 과정 없이 여러 task를 수행할 수 있도록 했다. 더불어, 같은 해 1월 발표한 논문인 Scaling Laws for Neural Language Models에서 확인된 실험 결과를 바탕으로 하여 GPT3의 모델 capacity를 키웠고, 그 결과로 GPT3는 NLG task에서 SOTA를 기록하는 등 여러 task에서 fine-tuning 없이 좋은 성과를 보였다.
Introduction
NLP 분야에서는 BERT와 같은 pre-trained 모델을 이용하여 large scale의 task-specific fine-tuning data와 fine-tuning process거침으로써 여러 task에서 뛰어난 성적을 기록하는 흐름이 이어지고 있었다. specific task에, benchmark에 대해 굉장히 좋은 성능이 나타난다는 것은 fine-tuning 모델의 큰 장점이었다. 하지만, fine-tuning 모델에게는 명확한 단점들이 있었다. 그것은 아래 3가지로 정리할 수 있다.
Fine-tuning 모델의 단점
- Fine-tuning 모델은 새로운 specific task를 해결하고자 할 때마다 매번 새롭게 task에 맞는 large scale의 data를 구해야만 하며, task를 진행할 때마다 반복해서 fine-tuning 과정을 거쳐야만 한다. 이는, language models의 applicability를 제한시킨다.
- Fine-tuning data로 인해 굉장히 narrow한 train or task distributions이 발생하여 모델의 generalization 능력이 부족하다.
- 인간의 능력처럼, 단 몇 개의 demonstrations만으로 task를 수행하는 능력을 가지고 있지 못하다.
Approach
In-context learning
Specific task를 해결하기 위해 fine-tuning data를 필요로 하지 않고, gradient를 이용한 parameter update 과정을 필요로 하지 않는 GPT3는 in-context learning 이용하여 모델이 on-the-fly reasoning을 통해 여러 task를 수행할 수 있도록 했다.
In-context learning에서 쓰이는 setting은 3가지로 아래와 같다.
- Few-Shot(typically, set K in the range of 10 ~ 100)
- One-Shot
- Zero-Shot
즉, task를 해결하기 위해 task에 맞는 description만 모델에 제공하거나 task description과 함께 1 ~ 100개 정도의 demonstrations을 모델에 제공하는 것만으로 GPT3는 task를 성공적으로 수행한다.

Scaling law
더불어, 저자는 GPT3를 capacity 크기를 다르게 하여 총 8개의 GPT3 모델을 마련한 후 in-context learning을 적용한 GPT3의 capacity별 성능을 비교했다. 그 실험의 결과로, 모델의 capacity가 커지면 커질수록 평균적으로 성능이 좋아지는 것으로 나타났다.
즉, GPT3의 capacity가 커지면 커질수록, zero, one, few-shot 등의 setting과 무관하게 일관적으로 성능이 향상되었다.
이러한 결과를 보고 논문의 저자는 모델의 capacity가 커질수록 in-context learning에서 배우게 되는 지식을 담는 capacity 또한 커져서, 모델의 capacity가 커질수록 성능 또한 좋아진다라고 해석하고 있다.


Pretraining dataset

GPT3가 학습한 토큰의 개수는 총 300B이며, 그 학습에 쓰인 datasets는 위와 같다.
이때, Books2와 Common Crawl dataset을 제외한 3개의 dataset은 모델에 2 ~ 3 epochs 적용된 것으로 확인된다. 이는, 저자의 말에 따르면 적은 양의 고품질 corpus를 overfitting 시키기 위함이라고 한다.
추가적으로, Common Crawl은 web scraping을 통해 구축된 large scale dataset이므로 filtering을 거쳤으며, 이 결과로 45TB였던 Common Crawl dataset은 570GB로 줄었다고 한다.
Results
Appendix에서 저자들은 실험 결과에 data contamination의 가능성을 언급하고 있다. 따라서, 그 정보를 참고하여 실험 결과를 바라보는 것도 좋을 것이다.
NLG

NLG tasks 중 하나인 Lambada task에서 GPT3는 Zero-Shot만으로도 SOTA를 기록하였다.
NLI

GPT3는 NLI나 문제 해결을 위해 2개 문장의 관계를 이해해야 하는 task에서 좋지 못한 성적을 기록했다.
논문 저자들은 이러한 한계점은 GPT architecture로 인해 발생한다고 해석했다. GPT는 bi-directionality가 존재하지 않기 때문에 bi-directionality가 존재하는 모델들에 비해 주어지는 문장에 대한 이해가 비교적 떨어질 수 있다고 보았다.
단 2개의 task에 대해서만 언급했지만, 저자들은 GPT3를 이용하여 총 9개 종류의 task에 대해 실험을 진행했다.
References
'Paper review' 카테고리의 다른 글
| REACT: SYNERGIZING REASONING AND ACTING IN LANGUAGE MODELS(ICLR 2023, Yao et al) (0) | 2024.05.21 |
|---|---|
| Adapting Language Models to Compress Contexts (Chevalier et al. EMNLP 2023) (0) | 2024.03.21 |
| QLoRA: Efficient Finetuning of Quantized LLMs (1) | 2023.11.06 |
| NEFTune: Noisy Embeddings Improve Instruction Finetuning (2) | 2023.11.06 |
| LoRA: Low-Rank Adaptation of large language models (0) | 2023.07.19 |