GPT-1, GPT-2 포스팅도 있으니 참고해주세요~
[Paper Review] Improving Language Understanding by Generative Pre-Training
[Paper Review] GPT-2: Language Models are Unsupervised Multitask Learners
최근 많은 NLP 논문들은 pretrain-finetune 기반으로 큰 성능 발전이 있었다. 일반적으로 모델의 구조는 task-agnostic(특정 작업에 종속되지 않음)함에도 불구하고, task에 적용하기 위해서는 여전히 많은 데이터 예시를 필요로 한다. 하지만 사람들은 새로운 task를 처리하기 위해서는 적은 예시와 간단한 설명만으로도 충분하다. GPT-3는 모델의 scaling을 통해 task-agnostic 성능을 증가시키고자 했다. GPT-3는 175 billiion개의 파라미터 수를 가진 autoregressive 모델이며, few-shot setting에 대해 추가적으로 평가를 진행한다. 모든 task에 대하여 GPT-3는 추가적인 업데이트나 fine-tuning이 없이 진행되었으며, 오로직 few-shot setting과 간단한 상호작용만이 사용되었다. GPT-3는 최종적으로 기계 번역, QA, word unscrambling 등의 많은 NLP task에서 효과적이었다 - 하지만 여전히 몇가지 dataset에 대해서는 성능이 좋지 않았다. 그리고 GPT-3는 사람이 쓴 것인지 구분되지 않을 정도의 뉴스글을 쓸 수 있게 되었다. 본 논문은 GPT-3가 사회적으로 미칠 영향에 대해서도 다룬다.
Introduction
최근 몇년 동안 NLP 분야는 pretrain-finetuning 트렌드가 이어지고 있으며, downstream transfer를 위해 더 유연하고 task-agnostic하게 적용되고 있다. 가장 면서 워드 벡터를 활용한 single-layer representation이 학습되어 task-specific한 구조로 적용되는 방식의 연구가 진행되었으며, 다음으로 다중 레이어 RNN에 대한 연구가 진행되었고 최종적으로 transformer 모델이 출현하면서 현재 트렌드까지 오게 되었다.
Pretrain-finetuning approach는 다양한 NLP task의 큰 발전에 기여했지만, 모델의 구조는 task-agnostic한 것에 비해 해결해야 하는 task에 대해 좋은 성능을 보이기 위해서는 여전히 task-specific 데이터셋에 대한 fine-tuning 과정을 거쳐야 한다는 단점이 존재한다. 몇 가지 이유로 해당 한계점을 돌파해야 한다.
첫 번째로, 실용적인 측면에서 생각해봤을 때 새로운 task에 대해 매번 새로운 훈련을 진행하는 것은 모델의 적용 가능성을 제한한다. 문법 교정, 짧은 이야기에 대한 평가 등의 다양한 NLP task는 훈련 데이터를 확보하기 어렵지만 fine-tuning을 제거할 수 있다면 다양한 흥미로운 task에 대해 실험해볼 수 있을 것이다.
두 번째로, 큰 데이터에 대하여 pre-train하고 좁은 영역의 데이터로 fine-tuning하는 방식은 spurious correlation(가짜 연관성)을 학습할 수 있게 된다. 큰 모델이 항상 out-of-distribution에 대해 더 나은 일반화를 하는 것이 아닐 수 있으며, fine-tuning을 통해 모델이 특정 task에 대해 너무 특화되어 있어 underlying task에 대해서는 과장된 성능을 보일 수 있다.
마지막으로, 사람은 대부분의 task를 해결하기 위해 large supervised 데이터셋을 필요로 하지 않는다 - task에 대한 간단한 설명이나 몇 가지 예시만으로 충분히 해결 가능하다. 따라서 현재 NLP의 접근 방법을 생각해봤을 때, 사람의 문제 해결 방식을 모델에 적용한다면 실용적인 이점을 가져갈 수 있게 된다.
Meta-learning은 Fine-tuning의 문제를 해결하기 위한 하나의 방법이다. 해당 훈련 기법을 사용하는 모델은 학습 시 다양한 스킬과 패턴 인식을 학습하며, 추론할 때 해결할 task에 바로 적용할 수 있다(GPT-2도 이와 같이 학습됨). 이를 "in-context learning"으로 부르며, pre-trained 모델의 입력에서 task를 명시하여 사용된다 - task에 대한 간단한 설명 및 적은 예시로 간단히 나타내면 모델은 task를 인식하여 예측한다. 하지만 이러한 접근 방식은 fine-tuning 모델보다 낮은 성능을 보였는데, GPT-3는 이를 model scaling(확장) 트렌드를 적용하여 성능을 향상시킨다.
본 논문은 175B 파라미터를 가진 GPT-3에서 실험을 진행하며, in-context 학습 능력을 20여개의 데이터셋과, 훈련 세트에 포함되기 어려운 빠른 적용을 테스트 하기 위한 추가 task에 대해서도 평가된다. GPT-3는 다음 세 가지 세팅에 대해 평가된다.
- few-shot: in-context learning에 해당되며 모델 context window가 수용하는 만큼(보통 10~100)의 예시를 활용한 학습을 한다.
- one-shot: 하나의 예시를 활용한 학습
- zero-shot: task에 대한 설명을 제외한 예시가 주어지지 않는 학습
GPT-3는 zero-shot과 one-shot 세팅에서 유망한 결과를 보였으며, few-shot은 SOTA와 비슷하거나 능가하는 성능을 보였으며, 즉각적이고 빠른 추론을 요구하는 task에서도 one-shot, few-shot으로 좋은 성능을 보였다. 반면에, GPT-3는 ANLI, RACE, 그리고 QuAC와 같은 데이터에선 안 좋은 성능을 보이기도 한다. GPT-3의 전반적인 benchmark 성능은 다음 그림 2와 같다.
Approaches
GPT-3의 모델, 데이터, 학습을 포함한 접근법은 GPT-2와 유사하다. GPT-3의 In-context learning 또한 GPT-2와 비슷하지만, 학습을 하기 위한 여러 가지 세팅을 가지고 실험한다. 이 세팅은 모델의 task-specific data에 대한 의존도(추론 중에 사용되는 task 예시)라고 할 수 있으며, 모델의 학습 스펙트럼은 다음과 같이 네 개로 분류할 수 있다.
Fine-Tuning(FT)은 최근 몇 년간 가장 널리 쓰인 언어 모델링 기법이며, pre-trained 모델을 supervised 데이터셋에 대하여 가중치를 업데이트 시키는 과정을 말한다. 일반적으로 1000~100000개의 레이블된 예시가 사용되며, FT의 장점으로는 많은 benchmark에 대해 좋은 성능을 보인다는 것이다. 주된 단점은 매 task에 대해 새로운 큰 데이터셋이 필요하다는 것이고, out-of-distribution에 대한 일반화가 잘 되지 않을 수 있다. 또한 큰 데이터에 대해 pretrain하고 범위를 좁혀 finetune을 함으로써 데이터의 허위 정보를 사용하게 될 가능성이 있으며 사실상 human performance와 비교하는 것은 불공평하다. GPT-3는 FT를 사용하지 않고 task-agnostic 성능에 집중한다.
Few-Shot(FS)은 추론 시 model에게 task에 대한 몇 가지 예시를 준다 - 가중치 업데이트는 되지 않는다. 위의 그림 3과 같이 task에 대한 명시와 몇가지 task 예시, 그리고 문제가 주어진다. 입력에서 언급되는 예시의 수를 K라고 하며, 보통 10개에서 100개로 context window $n_{ctx} = 2048$에 맞는 만큼의 수를 할당한다. Few-shot은 적은 task-specific data만을 필요로 하며, 과도하게 좁은 분포에 대해 학습할 가능성이 적어진다.
One-Shot(1S)은 few-shot과 유사한 입력 세팅이지만, 하나의 예시가 주어진다. One-shot을 굳이 few-shot, zero-shot과 분리하는 것은 실제 상황에서 사람이 문제를 해결하는 방법과 유사하기 때문이다.
Zero-Shot(0S)은 예시는 주어지지 않고, 해결해야 하는 task에 대한 설명만을 가지고 추론한다. task-specific 예시를 필요로 하지 않기 때문에 가장 간단한 방식이며, spurious correlation을 학습하지 않지만 가장 어려운 세팅이다.
Architectures
GPT-3 모델은 modified initialization, pre-normalization, 그리고 reversible tokenization에 대해 GPT-2와 동일하고, transformer 구조는 Sparse Transformer와 비슷하다. 모델 사이즈에 대한 성능을 평가하기 위해 8가지의 파라미터를 설정한다.
모델의 파라미터 $n_{params}$는 GPT-3 Small 모델의 125M부터 가장 큰 모델인 GPT-3는 파라미터 수가 175B이다. "Scaling Laws for Neural Language Models"에 의하면 학습 데이터가 충분할 경우 모델의 사이즈가 커짐에 따라 loss가 power-law에 따라 변화한다고 한다 - 추후 논문에서 이 power-law가 틀렸다는 것이 증명된다.
Datasets & Training process
수조개의 데이터로 이뤄진 Common Crawl dataset은 GPT-3 모델이 중복되어 학습되지 않아도 될 정도로 충분하지만, 필터링되지 않은 데이터는 정리된 데이터에 비해 퀄리티가 떨어진다. 따라서 본 논문에선 3가지 step을 거쳐서 데이터의 퀄리티를 증가시킨다.
1. High-quality corpora의 다양한 범위 및 유사성을 기반으로 한 Common Crawl을 다운받고 필터링한다.
2. Document-level에서 fuzzy deduplication을 진행한다.
3. High-quality 데이터를 추가적으로 수집한다.
Common Crawl 데이터는 45TB의 크키에서 필터링 후 570GB가 되었으며, 이는 400B의 byte-pair-encoden 토큰과 같다. 훈련 중에 각 데이터셋은 크기에 따라 샘플링되는 것이 아니라 higher-quality 데이터셋에 대해 더 자주 샘플링되었으며, 이에 따라 CommonCrawl은 1보다 적은 수치로 샘플링되었지만 Wikipedia 데이터 같은 경우엔 3번도 넘게 샘플링된다.
모델에 사이즈가 클수록 배치 사이즈가 커지고, 학습률은 작아진다. 학습을 진행하면서 측정한 gradient noise scale를 기반으로 batch size를 선택한다. 모델 학습 도중 메모리가 부족하지 않도록 네트워크의 레이어에서 model paralellism을 적용했으며, 모든 모델은 V100 GPU에서 학습된다.
Experiments
모델은 few-shot, one-shot, 그리고 zero-shot 세팅에서 모두 실험되며, 가장 먼저 모델링 방식과 유사한 task에서 실험이 진행된다.
Language modeling tasks
4개의 Wikipedia와 관련된 task는 훈련 데이터에 완전히 포함되므로 제거되었고, one-billion word 또한 대부분이 겹치기 때문에 평가하지 않는다. 위의 표에는 나와있지 않지만 GPT-3는 PTB(Penn Tree Bank) 데이터에서 15 perplexity 포인트 차이로 SOTA 모델을 앞섰다. 위의 표 3에서 평가된 LAMBADA는 모델의 long-range dependencies를 평가하는 데이터셋이다. 모델은 문장의 마지막 단어를 예측하도록 요구된다. 다른 논문에서 모델 스케일링의 성능 향상이 미미한 것을 두고 스케일링이 답이 아니라는 반박이 제시된 바 있으나 GPT-3가 zero-shot 세팅에서 LAMBADA benchmark SOTA를 달성하며 모델 scaling의 영향을 입증했다.
또한 LAMBADA 데이터셋에 대해 few-shot의 결과가 더 좋다는 것은 모델에게 task 예시를 제시하는 것이 이해를 돕고 올바른 예측을 할 수 있도록 이끈다는 의미로 해석될 수 있다. Task에 대한 설명만 제시되는 zero-shot의 경우 문장의 끝 단어를 예측하는 것인지에 대한 인식 능력이 떨어져 올바른 위치 외에 다른 연속된 단어에 대한 확률도 고려하게 된다. 이때 few-shot setting은 예시를 줌으로써 모델이 task를 보다 잘 이해할 수 있게 된다.
HellaSwag는 이야기의 best ending을 예측하는 task이고 StoryCloze는 다섯 문장 다음으로 올 문장을 예측하는 task이며, 이 두 데이터에 대해서는 SOTA 성능보다 조금 떨어졌다.
Closed Book QA
해당 task는 closed book QA에 대해 모델을 평가한다. Closed book QA는 open-book보다 더 제한된 task로 외부 컨텐츠를 활용하는 것이 허용되지 않지만 GPT-3는 finetune를 하지 않기 때문에 그보다 더 환경이 제한된다. TriviaQA는 zero-shot에서 64.3%, one-shot에서 68.0%, 그리고 few-shot에서 71.2% 정확도를 달성하며 SOTA를 뛰어넘는 성능에 도달한다.
WebQS는 zero-shot 14.4%, one-shot 25.3%, 그리고 few-shot 41.5%의 결과를 보였고, few-shot setting은 T5-11B+SSM과 SOTA 성능의 근접하는 성능에 달성했다.
Natural QS는 Wikipedia의 세부적인 내용을 다룬다. 해당 데이터셋에서는 모델이 좋지 못한 성능을 보였다.
Rest of the tasks
GPT-3는 93% 영어, 그리고 나머지 7% 정도는 다른 언어에 대해 학습되었는데, 이로 인해 다른 언어에 대해서도 이해할 수 있는 능력을 가지게 된다. 이에 따라 번역 task에서도 뛰어난 성능을 보이며, 몇몇 task에 대해서는 SOTA보다 좋은 성능을 보이기도 한다.
대명사가 지칭하는 대상이 무엇인지 예측하는 Winograd-Style Task는 NLP의 전통적인 task으로, 문법적으로 모호하지만 사람이 봤을 땐 의미가 분명한 문제에 대해 다루게 된다. 최근 finetuned 모델들은 사람과 비슷한 정확도까지 도달했지만, 더 어려운 task에 대해서는 여전히 사람보다는 정확도가 떨어졌다. PIQA는 기존 SOTA보다 더 높은 성능을 보였지만 나머지 데이터에 대해서는 조금 아쉬운 성능을 보였다.
또한 GPT-3는 news articles 생성에 대한 성능을 평가하기 위해서 모델에 의해 생성된 sample을 사람에 의해 평가하는 실험을 진행했다. GPT-3는 뉴스 관련 데이터에 대해 학습되지 않았기 때문에 few-shot으로 예시 뉴스를 줌으로써 이를 개선했다. 실험에 참여하는 사람들은 모델이 생성한 articles에 대해 “very likely written by a human”, “more likely written by a human”, “I don’t know”, “more likely written by a machine”, 그리고“very likely written by a machine”의 5가지 선택을 한다.
Mean accuracy는 사람이 모델이 예측한 글인지를 판단한 정확도이며, Control 모델은 출력의 랜덤성을 증가시켜 의도적으로 퀄리티가 낮은 글을 생성하도록 설정되었다. 정확도가 50%에 가까울수록 우연히 정답을 맞추게 되었을 확률이 올라가게 되는데, control 모델의 경우 86%로 대부분 모델이 생성한 텍스트임을 예상했지만, 모델의 파라미터 수가 올라갈수록 그 확률은 점점 50%에 가까워지며 사람이 예측하기 힘든 수준의 글까지 생성하게 된다.
Broader Impacts & Conclusion
고도로 발전된 언어 모델은 문법 교정, 문장 자동 완성 등 다양한 장점이 있다. 하지만 장점이 있는 반면에, 이로 인해 생기는 단점 또한 있다. 이를 남용하게 된다면 스팸, 피싱, 그리고 에세이 부정사용 등의 좋지 않은 여파가 생길 수 있으며 이를 해결하기 위한 연구가 진행되어야 한다.
GPT-3는 few-shot learning으로 finetuning 없이 많은 task에서 SOTA를 뛰어넘기도 하는 엄청난 성능을 보여줬으며, few-shot으로 뉴스 생성 실험을 통해 학습된 데이터 외의 입력에 대해서도 성공적으로 다룰 수 있음을 증명했다. 현재는 언어 모델 발전으로 인해 ChatGPT가 많은 사람들에게 편의성을 제공하고 있으며, 이로 인해 생길 사회적 남용이 우려되기도 한다.
논문은 아래 링크를 참고해주세요.