머신러닝 모델을 개발하는 일반적인 방법은 원하는 태스크에 맞는 데이터셋 수집/이 task를 모방할 수 있는 모델을 학습/iid hold-out example들로 검증
이들은 narrow experts로, task의 변화에 취약
이 논문에서는 다양한 태스크를 동시에 수행할 수 있는 multi-tasker 모델을 만들고자 함
근데 데이터가 너무 많이 필요하다. semi-supervised 접근이 있지만 여전히 데이터가 많이 필요함
이 문제를 해결한 GPT2는 기존 LM의 트렌드를 이어 flexible transfer가 가능하며, 지도학습 형태의 fine-tuning 없이 zero-shot setting에서 downstream task 수행이 가능한 generalist!
+유연한 transfer란, task에 따라 모델 구조를 조금만 바꿔도 금방 적용 가능하다는 말
+downstream task란, pretrained 모델을 활용하여 해결하는 특정 태스크(specific task랑 같은 말이지만 pretrained모델과 관련된 문맥에서 사용. fine tuning여부는 상관없이 용어 사용)
GPT2의 접근법의 핵심은 language modeling이다.
문장 x = (x1, x2, ..., xn)의 token sequence s=(s1, s2, ..., sn)를 사용하여 문장 x의 비지도 분포 p(x)를 측정하는 방법이다.
zero-shot learning
모델 구조 자체는 GPT1과 크게 다르지 않다.
바뀐 점:
GPT2의 가장 큰 차별점은 훈련 데이터이다.
다양한 domain의 데이터를 확보하기 위해 web scraping dataset을 사용함
: 저자들이 직접 만든 WebText dataset
vocabulary와 context size가 엄청 커졌다.
본 논문에서는 BPE(Byte Pair Encoding) 방식을 채택
subword 기반의 인코딩 방법으로 문자 단위로 단어를 분해하여 vocabulary를 생성하고, 반복을 통해 빈도수가 높은 문자 쌍을 지속적으로 vocabulary에 추가하는 방법(greedy)
그 후, 매회 반복을 통해 자주 등장하는 문자 쌍을 greedy하게 추가한다.
실험 중 하나로 generalization vs memorization에 대한 실험이 있었는데 GPT-2는 둘다 잘하는걸로..
train set과 test set의 성능이 모델의 크기(파라미터 수)에 비례하여 같이 향상되는 경향이 있었는데 이건 모델 크기 확장이 overfitting을 유발하지 않고 generalization이 함께 향상되었다는걸 뜻한다. 학습데이터에 지나치게 의존하지 않는다는 말(과적합 되었으면 train>>test)
결론: GPT-1을 기반으로 하여 unsupervised 모델을 극대화 시켜 fine-tuning이 필요하지 않은 pretrained lm이다. 모델의 크기가 커졌기 때문에 성능이 높아졌다=multitask 가능해졌다~