Radford, Alec, et al. "Language models are unsupervised multitask learners." OpenAI blog 1.8 (2019): 9.
https://cdn.openai.com/better-language-models/language_models_are_unsupervised_multitask_learners.pdf
해당 연구가 이루어지던 시기의 머신러닝 시스템은 특정 데이터, 특정 도메인에만 치중되어있는 좁은 전문가(narrow experts)로서의 성격이 강했다. 즉, multi-task, multi-domain에서 성능을 달성하기가 매우 어려웠는데, 해당 논문에서는 NLP task에 대한 Multitask learning을 적용하고자 한다.
해당 시기에는 word vector, RNN에서 Transformer를 활용한 multi self-attention이 효율적임이 이미 증명되었다. 이에 따라 연구자들은 최소한의 지도 데이터만 사용하여 NLP task에 대해 보다 robust하고, general한 모델을 만들고자 하였다.
이에 따라 논문에서는 파라미터, 혹은 아키텍처의 수정 없이 바로 downstream task를 수행할 수 있는 zero-shot learning이 가능한 언어모델 GPT-2를 제안한다.

GPT-2의 접근법의 핵심은 Language Modeling이다. 이는 일반적으로, 각 example이 기호들의 시퀀스 (s1, s2, ..., sn)로 이루어진 집합 (x1, x2, ..., xn)에서 unsupervised distribution estimation 문제로 프레임화된다.

또한, 언어는 자연스러운 순서를 가지므로 이와 같이 전체 기호의 결합 확률을 조건부 확률로 곱하여 분해하는 것이 일반적인 접근법이다(Jelinek & Mercer, 1980; Bengio et al., 2003).
이러한 방식을 통해 p(x)와 p(sn−k, ..., sn|s1, ..., sn−k−1) 형태의 조건부 확률을 추정하는 것이 가능해진다. 이러한 조건부 확률 계산의 expressiveness를 크게 향상시킨 접근법이 바로 Transformer(Vaswani et al., 2017)이다.
McCann et al.2018에서 밝혔듯, 원리적으로는 language modeling 만으로도 multi NLP task를 supervised learning 없이 수행 가능하다. 또한 언어 자체를 사용하면 task, input, output을 모두 sequence로 나타낼 수 있어 매우 유연하다. 예를 들어 아래와 같은 형태이다.
그러나 이러한 unsupervised learning의 object function을 수렴(convergence)할 수 있는가는 주요한 문제이다. 또한, 이를 자연어 환경로 확장하는 것 또한 매우 큰 도전이다.
OpenAI 연구진은 이러한 환경에서 충분한 용량의 언어 모델이 예측 성능을 향상시키며, unsupervised learning만으로 zero-shot multitask를 수행할 수 있다고 가정하였다.
일반적으로 Language Model을 학습시킬 때 자주 사용하는 데이터셋은 단일 도메인으로 한정되어있다. 예를 들어 뉴스 기사(Jozefowicz et al., 2016), 위키피디아(Merity et al., 2016), 소설(Kiros et al., 2015) 등이 있다.
연구진은 최대한 크고 다양한 언어 데이터셋을 구축하고자 하였으며, 이에 대한 접근법으로 Web Scraping을 채택하였다.

그러나, Figure 1에서 볼 수 있듯이 웹에 있는 데이터셋은 그 양이 매우 방대함에도 불구하고 데이터의 품질 문제를 겪는다. 연구자들은 초기 실험에서 English-French 번역 문서들의 일부가 불명확하거나 문법적으로 어색하다는 것을 확인하였다.
이에 따라 연구자들은 문서의 품질에 중점을 둔 새로운 web scraper를 생성하였는데 이는 사람이 큐레이션, 혹은 필터링한 웹페이지만 가져온다는 특징이 있다.
여기서 전체 웹을 수작업으로 필터링하기에는 비용이 많이 들기 때문에 초기에는 Reddit에서 Karma를 3 이상 받은 외부 링크만 수집하였다. Karma는 사용자가 해당 링크에 대해 판단하는 heuristic한 지표로 볼 수 있다.
이러한 과정을 통해 생성된 데이터셋 WebText는 4,500만개의 링크에서 추출한 약 800만개의 문서, 총 40GB 분량의 텍스트를 포함한다. training dataset에서 모든 wikipedia 문서를 제외하였는데, 이는 테스트 과정이 매우 복잡해진다는 점에서 기인한다(GLUE같은 벤치마크에서 데이터가 overlap되면 매우 복잡해질 것이기 때문인듯).
언어모델을 충분히 generalize하려면 어떠한 문자열에 대해서라도 확률을 계산하고, 생성할 수 있어야 한다. 그러나, Large Sacle의 LM들은 소문자 변환(lowercasing), 토크나이징(tokenization), 미등록 단어 처리(out-of-vocabulary tokens)와 같은 전처리 과정을 거치기에 실제로 다룰 수 있는 문자열이 제한된다. 모든 문자열을 UTF-8으로 처리하면 이러한 제한을 피할 수 있지만 현재까지는 성능이 좋지 않았다.
BPE(Byte Pair Encoding)를 사용하면 자주 등장하는 시퀀스는 단어 단위로, 드물게 등장하는 시퀀스는 문자 단위로 처리하여 처리할 수 있기에 효율적이다.
그러나, 단순하게 적용하면 "dog", "dog!", "dog?"처럼 같은 단어도 여러 토큰으로 나누어져 모델 용량이 낭비된다.
이를 방지하기 위해 연구자들은 문자의 category를 넘어서는 병합은 막고, 공백은 예외로 두어 최대한 단어들을 유지하며 압축하였다.

GPT-2는 Transformer(Vaswani et al., 2017) 기반의 아키텍처를 사용하였고, 이는 OpenAI GPT(Radford et al., 2018)와 기본적으로 유사하며 다음의 수정사항들이 적용되었다.

Table 3은 WebText LM(GPT-2 포함)의 다양한 데이터셋에서 추가적인 fine-tuning 없는 zero-shot의 성능을 보인다.
GPT-2는 대부분의 데이터셋에서 SOTA를 갱신하였는데, 특히 크기가 작은 데이터셋(Penn Treebank, WikiText-2)에서 성능이 크게 향상되었다. 다만, 1BW 데이터셋에서는 SOTA를 갱신하지 못하였는데, 이는 데이터셋이 크고 문장 단위로 섞는 등 기본 문서의 구조를 파괴하는 전처리가 적용되었기 때문이다.

Children’s Book Test (CBT)(Hill et al., 2015)는 언어 모델이 단어의 종류별로 성능을 얼마나 잘 내는지 확인하는 데이터셋이다. 자동으로 만들어진 Cloze test를 사용하며, 문장에서 빠진 단어를 10가지 후보 중에 맞추는 문제이며 평가 지표로는 PPL 대신 ACC를 사용한다.
Figure 2에서 볼 수 있듯이, 모델의 크기가 커질 수록 성능이 꾸준히 향상되고 있으며 인간과의 격차를 유의미하게 줄어들었다.
구체적으로는 일반 명사(common noun)에서 93.3%의 정확도를, 고유 명사(named entities)에서는 89.1%로 SOTA를 달성하였다.
LAMBADA dataset(Paperno et al., 2016)은 텍스트에서 각 문단마다 마지막 단어를 예측하는 task를 통해 언어 모델의 장거리 의존성(long-range dependencies)을 평가한다.
GPT-2는 해당 데이터셋에서 PPL은 99.8에서 8.6으로, ACC는 19%에서 52.66%로 크게 향상시키며 SOTA를 달성하였다.
GPT-2는 대부분 문장이 이어지는데 있어서는 타당하지만, 정확한 마지막 단어를 제시하지는 못하엿다. 즉, 모델이 '마지막 단어'라는 추가적인 제약 조건을 이해하지 못한 것이다.
이에 따라 연구자들은 불용어(stop-word) 필터를 추가하여 정확도를 63.24%로 크게 향상시켰으며 이는 기존 ACC SOTA(Hoang et al., 2018) 대비 4% 향상된 수치이다. 또한 이전 SOTA(Hoang et al., 2018)는 모델의 출력을 context 내부의 단어로 제한하였지만, GPT-2는 이러한 제한이 오히려 해로운 것으로 드러났다. 이는 정답의 19%가 문맥 내부에 존재하지 않는다는 점에 기인한다.

Winograd Schema Challenge(Levesque et al., 2012)는 문장 내부의 모호한 표현(ambiguity)을 올바르게 해석하는 task를 통해 상식 추론 능력을 평가한다.
GPT-2는 기존 SOTA(Trinh & Le, 2018) 대비 ACC가 7% 향상된 70.70%를 달성하였다.
CoQA (Conversation Question Answering, Reddy et al., 2018) 데이터셋은 7개 도메인의 문서와 질문자(asker), 답변자(answerer)간의 대화 dialogue를 포함하여 모델의 독해 능력과 대화의 context를 기반으로 QA능력을 평가한다.
GPT-2는 기존 4개의 baseline들 중 3개보다 같거나, 더 나은 성능을 보였다. 기존의 baseline은 모두 127,000개 이상의 Question-Answer pair로 supervised learning을 수행하여야했기 때문에 GPT-2가 훨씬 비용 효율적임을 알 수 있다.

CNN and Daily Mail dataset (Nallapati et al., 2016)은 요약에 대한 성능을 측정하는 데이터셋이다.
요약을 위해 기사 뒤에 TL;DR:이라는 문구를 추가하고, Top-2 random sampling을 통해 100개의 토큰을 생성하였다.
GPT-2는 요약 작업에서 그리 좋은 성능을 보이지 못하였다. ROUGE 1, 2, L 지표에서 신경망 모델(Seq2Seq + Attn)에 근접하기는 했지만, SOTA와는 크게 차이가 있었으며 랜덤하게 3문장을 뽑는 것보다 조금 나은 수준이였다.
다만, GPT-2에 TL;DR:과 같은 힌트를 주지 않았을 때는 성능이 크게 하락하였는데 이는 자연어로 된 작업 힌트가 언어 모델이 특정 작업을 하도록 유도가능함을 보인다.
연구자들은 Machine Translation을 위한 데이터셋으로 널리 알려지고 사용되고 있는 WMT-14 데이터셋에서 GPT-2의 성능을 측정하였다.
English-French 테스트에서 GPT-2는 BLEU 5를 기록하였는데, 이는 기존 unsupervised learning 기반의 word-by-word substitution 방법(Conneau et al., 2017b)보다 약간 낮은 점수였다.
French-English 테스트에서는 GPT-2가 BLEU 11.5를 기록하였다. 이는 기존의 unsupervised learning 기법(Artetxe et al., 2017)(Lample et al., 2017)의 번역을 능가하였지만 기존 SOTA(Artetxe et al., 2019) 수준인 BLEU 33.5에는 크게 미치지 못하였다.
이 결과는 연구자들이 매우 놀라운 성능으로 언급한다. 왜냐하면 연구자들은 train data인 WebText에서 의도적으로 비영어권의 웹페이지를 필터링하여 제거했기 때문이다. WebTexet에서 프랑스어 데이터는 10MB만 검출되었으며 이는 기존 unsupervised learning에 비해 약 500배 작은 수준이였다.

Natural Questions(Kwiatkowski et al., 2019) 데이터셋은 질문-응답 쌍으로 구성되어 언어 모델에 특정 정보가 내제되어있는지를 테스트할 수 있는 데이터셋이다.
GPT-2는 Exact Match로 평가했을 때 4.1%의 정답을 맞추었다. 또한, GPT-2가 생성한 답변에 부여하는 확률이 매우 잘 보정(calibrated)되어 있었고, Table 5에서 볼 수 있듯이 가장 자신있는 1%의 질문에 대해서는 63.1%의 정확도를 보였다.
그럼에도 불구하고 이는 open domain QA system(Alberti et al., 2019)의 정확도인 30~50% 범위에 비해 훨씬 낮다.

머신러닝 데이터셋에서는 종종 train data와 test data의 일부가 overlapping되는 경우가 존재하였으며, 이는 모델의 성능을 과대평가하게 되는 원인이 된다. 예를 들어, CIFAR-10은 3.3%의 중복이 존재했다.
이를 연구하기 위해 WebText train set의 toekn의 8-gram을 포함하는 Bloom Filter를 만들었다. 이 bloom filter를 활용해 WebText 데이터셋과 타 벤치마크 데이터셋간의 중복을 계산할 수 있다.
일반적으로 언어 모델의 테스트 데이터는 WebText와 1~6%정도의 중복을 가지며, 평균 중복률은 3.2%였다. 흥미로운 점은 벤치마크 내부의 train/test 간의 자기 중복률은 5.9%였다.
즉, 전반적으로 WebText 학습 데이터와 벤치마크 데이터셋의 중복이 성능에 이점을 제공하지만, 일반적인 학습/테스트 데이터셋 사이에 존재하는 수준 이상의 중복은 발견되지 않았다.

WebText 언어 모델의 성능이 암기 때문인지 확인하는 또 다른 방법은, 자신의 보류된(held-out) 데이터셋에서의 성능을 점검하는 것이다. Figure 4에 제시되어있듯이, WebText 학습 세트와 테스트 세트에서의 성능은 유사하며, 모델 크기가 커질수록 함께 향상된다. 이는 GPT-2가 WebText를 여전히 underfitting 하고 있음을 시사한다.
이 연구는 unsupervised pre-training 만으로 모델이 multi NLP task를 수행할 수 있음을 보여준다.
GPT-2는 reading에서는 zero-shot 상태에서도 supervised learning 기반의 모델들과 비교할만한 성능을 보였으나, summarization과 같은 작업에서는 정량적으로 기초 수준에 머무른다.
또한, QA나 translation과 같은 작업에서는 충분한 모델 용량이 있어야만 기존의 성능을 뛰어넘으며, zero-shot 만으로는 한계가 존재한다. 따라서 실용적 사용에는 아직 부족함이 많다.
unsupervised zero-shot의 성능이 잠재력은 있지만, fine-tuning에 대한 한계가 어디까지 인지 또한 불분명하다. GPT-2는 추상적인 출력물이 많아 현재 QA나 reading과 같은 분야의 주류인 pointer network 기반 방식과는 다른 특성을 보인다. 따라서 decaNLP, GLUE과 같은 다른 벤치마크에서 fine-tuning의 성능을 검증해야할 것이다.
연구자들은 충분히 크고 다양한 데이터셋으로 Large Language Model을 학습시키면 좋은 성능을 낼 수 있음을 입증하였다.
GPT-2는 zero-shot 환경에서 테스트한 8개의 언어 모델링 데이터셋 중, 7개에서 SOTA를 달성하였다.
이처럼 Large Scale의 모델이 충분히 다양한 Corpus를 학습하면, 명시적인 supervised learning이 없이도 많은 작업을 수행하는 법을 배우기 시작한다는 점이 시사된다.