Background
: 기존 NLP task들 task에 특화된 dataset을 가지고 supervised learning 방식으로 모델을 훈련시켰다.
Research Goal
: To build general systems
Approach
: GPT-2; 1.5B parameter Transformer
- sufficiently large language model
- zeroshot setting
- Byte pair encoding (BPE)
Results & Findings
- zeroshot setting에서 진행된 8개 테스트에서 7개 부분에서 SOTA 달성
- GPT-2는 Supervised learning 없이도 (e.g., transfer learning) Task를 학습할 수 있었다 (e.g., zeroshot setting).
ML의 발전으로 많은 system들이 특정 task에서 우수한 성능을 보이고 있다. 하지만 특정 task에 국한되어 있기 때문에 data distribution이 조금이라도 바뀌면 System은 제 기능을 못한다.
-> Not Generalized but Charaterized!
특정 task에 맞춰진 대부분의 ML system들은 narrow experts로서 제기능을 하지만, captioning models, reading comprehension systems, image classifier처럼 input이 다양한 task에는 밑바닥을 보이고 만다 ㅎㅎ.
Robust system을 만들기 위한 일환으로 다양한 도메인에서의 성능을 측정할 수 있도록 GLUE, decaNLP 등의 metric들이 제안되기도 하였다.
Research Goal
훈련을 위한 데이터셋 구축을 하지 않아도 Many task를 수행할 수 있는 General systems를 만들자!
Language models can perform down-stream tasks in a zero-shot setting - without any parameter or architecture modification.
Approach
Multitask learning (MTL) :MTL은 여러 task를 함께 학습하여 general한 feaute를 뽑게 해 general performance 향상에 도움이 되는 framewrok이지만, NLP 분야에서는 아직 발전이 덜 되었다. 여기서는 MTL 방식으로 gpt-2를 학습시킨다는 게 아니고, Multitask에서 general하게 작동한다는 의미로 multitask 용어를 사용한 것 같다.
Meta-learnig : 기존의 ML 모델은 generalize하기 위해서 수많은 데이터셋이 필요하다. 더군다나 MTL을 하려면 너무 많은 수의 데이터셋이 필요한데, 만약 데이터가 적다면? Meta-learning 방식은 unseen task에 대해 적은 양의 데이터(few or zero shot)를 보여줬을 때에도 빠르게 학습할 수 있다.
Language modeling은 이론적으로 unsupervied learning 방식임. (언어 모델링(Language Modeling)은 주어진 단어들로부터 아직 모르는 단어를 예측하는 작업. 즉, 언어 모델이 이전 단어들로부터 다음 단어를 예측하는 일은 언어 모델링.) 기존 연구에 따르면 sufficiently large language model들은 supervised 방식보다 속도는 느리지만 MTL을 수행할 수 있다고 함.
본 연구자들은 언어모델이 충분히 크다면 데이터를 대화데이터를 가져오든, 인터넷에 있는 데이터를 가져오든 조달 방법과는 상관없이 자연어 시퀀스에서 수행된 태스크들을 잘 infer하고 perform할 것이라고 예상함.
위치 : a pre-activation residual network랑 비슷하게 layer normalization이 input의 sub-block으로 옮겨짐 ( LayerNorm을 Attention과 Feedforward 출력부에 두는 것보다 입력부에 두는 것이 학습 시 레이어별 Gradient의 정도가 상대적으로 고른 편이라 합니다.)
GPT-2는 Finetuning 없이 어떠한 task에서도 general하게 잘 작동할 수 있도록 Unsupervised pre-training작업을 극대화시킨 pretrained language model이다. 이를 위해서 1) 충분히 큰 데이터로 학습을 하고 2) Byte pair encoding을 사용해서 어떠한 데이터에서도 robust한 tokenization을 할 수 있도록하였다. 결과적으로 zeroshot setting에서도 8개 중 7개의 task에서 SOTA를 보였다.