일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- Today
- Total
- activation function
- AdaGrad
- adaptive learning rate
- arithmetic reasoning
- Attention is all you need
- attention mechanism
- auto encoder
- Back Propagation Trough Time
- Backpropagation
- Bayes Theorem
- BCE
- Bert
- Bidirectional Encoder Representation from Transformer
- Binary classification
- BPTT
- Chain-of-Thought
- CNN
- commonsense reasoning
- Computer Vision
- Confusion Matrix
- convolutional neural network
- Cot
- cot reasoning
- counting
- Cross Entropy Loss
- deep learning
- degradation
- Dimension Reduction
- Few-shot
- fine-tuning
데이터 분석 일지
[Paper Review] GPT-2: Language Models are Unsupervised Multitask Learners 본문
[Paper Review] GPT-2: Language Models are Unsupervised Multitask Learners
-ˋˏ ♡ ˎˊ- 2024. 4. 18. 14:32보통 language model task-specific한 supervision을 사용한다. 이는 supervised의 형태를 띠는 fine-tuning을 주로 사용한 다는 의미이다. 본 논문은 zero-shot을 사용하여 명확한 supervision이 없는 model을 제시한다. 실제로 127,000개 이하의 데이터를 사용함에도 불구하고 좋은 성능을 성취하였다. 본 논문의 GPT-2는 1.5B개의 parameter를 가진다. 8개의 task 중 7개의 task에서 SOTA를 달성하였지만, WebText에 대해서는 일반화 능력이 부족하였다.
1. Introduction
ML은 계속 빠르게 발전하고 있다. 여기서 ML은 보통 큰 dataset을 사용하고, high-capacity를 가지는 model이다. 또한 supervised learning으로 이루어져 있다. 이러한 모델은 task-specific하기 때문에 약간의 데이터 분포의 변화에도 민감하고, narrow experts한 특징을 갖는다. 이와 같이 sensitive하고, narrow experts하여 general하지 못한 것이 기존 model의 한계이다. 따라서 본 논문은 이러한 한계를 해결하기 위하여 specific하지 않고, general한 model을 만들고자 한다.
기존에 ML system을 만들기 위한 domain approach는 아래의 형식으로 구성된다.
- 원하는 task에 맞는 dataset 수집
- 원하는 task의 behavior를 모방하도록 train
- i.i.d. hold-out set을 동한 검증
이러한 approach가 model을 narrow experts로 만드는 것이였다. 좀 더 넓은 domain에서의 performance를 위하여 zero-shot setting으로 down-stream task를 수행한다.
zero-shot은 fine-tuning을 수행하지 않는 것을 의미한다. task-specific한 fine-tuning을 진행하지 않음으로써 좀 더 general한 model을 만들고자 하는 것이다. 하지만 fine-tuning을 하지 않으면 model은 입력받는 task가 어떤 task인지 알 수 없다. 이는 아래에서 더 자세히 설명하도록 한다.
2. Approach
GPT-2는 GPT-1과 같이 language modeling을 한다. 아래의 수식을 통하여 이전 sequence에 대한 현재 sequence의 확률을 계산하는 것이다. 또 아래의 식에 log를 취하고 sigma를 사용하여 나타낼 수도 있다.
$$p(x) = \prod_{i=1}^n p(s_n|s_1, s_2, \ldots , s_{n-1}) $$
GPT-2의 핵심은 general하다는 것이다. general하기 때문에 같은 input이어도 주어진 task에 따라 다른 output을 나타내야 한다. 따라서 task도 output의 전제 조건이 되는 것이다. input으로 task와 input을 입력함으로써 output을 얻어내야 한다. 이는 아래의 수식과 같이 나타낼 수 있다. 아래의 수식은 multitask와 meta-learning setting에서 다양하게 계산되어 왔다. $$p(output | input, task)$$
여기서 "GPT-2는 task-specific한 fine-tuning을 하지 않는 상황에서 어떻게 model에게 task를 인지시킬까"라는 의문이 든다. "언어"는 task, input, output을 한 sequence로 유연하게 설명할 수 있다. 이러한 언어의 이점을 활용한다면 model이 수행해야 할 task를 전달할 수 있다. 아래의 예시와 같이 한 sequece로 표현하여 training example로 사용할 수 있다.
- translation task: (translation to french, english text, frech text)
- reading comprehension: (answer the question, documnet, qeustion, answer)
위의 sequece의 형태는 [The natural language decathlon: Multitask learning as question answering]이라는 논문에서 먼저제시 되었다. GPT-2는 어떤 sequence가 output인지 명확한 supervision 없이도 학습이 가능하도록 했다. 원하는 task와 input에 대하여 입력하고 output은 model이 도출하도록 하는 unsupervision의 형태이기 때문이다.
2. 1. Pre-Training Datatsets
본 논문에서 사용한 pre-training dataset은 reddit이라는 인터넷 컴뮤니티에서 karma 3개 이상을 받은 모든 outband link를 scarping하여 수집하였다. 이렇게 만들어진 dataset을 WebText라고 명한다. 총 45M 개의 link를 수집하였고, 이는 2017년 12월 이후의 기사이며, 총 40GB를 이루고 8M 개의 document를 포함한다. 또 이 data 중 Wikipedia의 data는 제외하였다.
2. 2. Input Representation
Embbeding을 수행하기 전 input의 형태에 대해서 설명한다. 먼저 논문에서는 Byte Pair Encoding(BPE)를 사용하고자 하였다. BPE는 subword 기반 encoding을 수행한다. 먼저 단어를 문자 단위로 분해하고 voca에 저장한다. 이 방법을 계속 반복하면서 빈도수가 높은 문자쌍을 voca에 추가한다. 이런 방식을 통해 character-levle과 word-level의 중간 지점으로써 둘 사이를 효과적으로 보간할 수 있다.
하지만 BPE는 이름에도 불구하고 unicode 기반이었다. unicode는 각 언어와 단어마다 고유 포인터를 가진 문자열이기 때문에 voca의 size가 매우 커진다는 단점이 있었다. 이를 해결하기 위하여 Byte-level BPE(BBPE)를 사용한다. BBPE를 사용함으로써 voca size를 256으로 축소할 수 있었다. 하지만 BBPE에도 단점이 있다. 예를 들어 dog라는 단어를 dog.나 dog!나 dog?의 형태까지도 저장한다는 것이다. 이 경우에 공간 효율이 떨어진다. 이를 해결하기 위해 본 논문은 문자 수준 이상의 단어 병합을 방지하였다.
2. 3. Model Architecture
GPT-2는 Transformer가 기본 구조이고, GPT-1을 기반으로 한다. 여기에 아래의 몇 가지 변경사항이 추가되었다.
- layer norm이 sub-block의 input 부분으로 이동하였다. (pre-activation residual network와 유사)
- 추가적인 layer norm이 마지막 self-attention block에 적용되었다.
- 모델의 깊이에 따라 residual path 누적에 관한 initialization 방법이 변경되었다.
- 변경된 방법은 residual layer의 가중치를 1/√N으로 scale하는 것이다. (N = number of residual layer)
- vocabulary를 50,257로 확장하였다.
- context size를 512~1024로 확장하였다.
- batch size를 512로 확장하였다.
또한 모델의 block 구조는 아래의 그림과 같다.
3. Experiments
본 논문은 4가지 크기의 LM을 train하였다. 모델의 크기는 Table 1과 같다. 첫 번째 모델의 크기는 GPT-1의 크기와 같고, 두 번째 모델의 크기는 BERT와 크기가 같다. 마지막 모델이 본 논문에서 제시하는 GPT-2이다. 또한 각 모델은 log-uniform하게 확장된다.
WebText의 5%는 validation dataset으로 사용하여 learning rate를 결정하였다. 4가지 모델 모두 WebText에서 underfitting하였다고 설명한다. 또, 더 많은 시간을 투자하면 향상할 수 있다고 한다.
3. 1. Language Modeling
GPT-2의 모델링 구조를 설명한다. GPT-2는 byte-level로 작동하고, lossy pre-processing이나 tokenization을 안 하기 때문에 어떤 benchmark든 수행할 수 있다. Table 2에서는 GPT-2의 결과를 보여준다. 결과는 보통 작거나 long-term dependency를 가진 dataset에서 성능이 향상되었고, 가장 큰 dataset인 1BW에서는 성능이 하락하였다. 논문에서는 destructive pre-processing이 sentence-level suffling을 수행하여 long-range structure을 제거하기 때문이라고 설명한다.
3. 2. Children's Book Test
이 dataset은 서로 다른 품사에 따른 LM의 성능 평가를 위해 사용하였다. 여기서 품사는 named entity나 noun, verb, preposition 등을 의미한다. 평가 지표로 perplexity가 아닌 cloze test에 대한 accuracy를 사용하였다. cloze test는 10개의 선택지 중 빈칸에 알맞은 단어를 선택하는 것이다. 이 dataset에서는 각 선택지와 선택지를 택하였을 때 생성되는 문장에 대한 확률을 계산하여 수행된다.
결과는 모델 크기가 클 수록 계속 향상되었고, 인간의 정확도와 가까워졌다. Figure 1과 같이 common nouns에서는 93.3%, named entities에서는 89.1%의 정확도로 SOTA를 달성하였다. 이 dataset에서는 PTB를 없애기 위해 de-tokenizer를 사용하였다. PTB는 품사 명칭이 나열되어 있는 sequece를 의미한다.
3. 3. LAMBADA
이 dataset은 long-range dependencies에 대한 LM의 성능을 평가하고자 사용하였다. LAMBADA의 데이터는 주어진 긴 문맥을 통해 마지막 문장의 마지막 단어를 예측하는 형식으로 이루어져 있다. 처음에는 accuracy에서 SOTA를 달성하지 못하였었다. 저자들은 모델이 final word를 예측할 때 적절한 단어를 생성하는데 어려움이 있다고 설명한다. 따라서 stop-word filter를 추가하여 적절한 단어를 생성하도록 하면서 perplexity와 accuracy를 각각 8.23, 63.24%로 모두 SOTA를 달성하였다.
3. 4. Winograd Schema Challenge
이 dataset은 text 속 ambiguities를 해석하여 commonsense reasoning 능력을 평가하고자 사용하였다. 본 논문에서는 [A simple method for commonsense reasoning]라는 논문에서 제안된 promlem formulation을 따랐고, 70.70%의 accuracy로 SOTA를 달성하였다.
3. 5. Reading Comprehension
CoQA를 사용하여 문해력을 측정하였다. CoQA는 7개의 domain에서 추출된 document에서 qeustion asker와 question answerer의 대화로 구성되어 있다. 이 task는 이전 대화에 의존하여 질의응담 능력을 평가하는 식으로 진행된다. 55 F1 score를 달성하였다. 하지만 fine-tuning을 사용하는 BERT는 같은 task에서 89 F1 score를 보여주기 때문에 GPT-2는 SOTA를 달성하지 못하였다. GPT-2는 fine-tuning없이 zero-shot setting으로 진행하였기 때문에 SOTA를 달성하지 못함에도 불구하고 좋은 성능을 보였다.
3. 6. Summarization
이 task를 수행하기 위해서 CNN, Daily Mail dataset을 사용하여 요약 능력을 평가하였다. GPT-2의 zero-shot에서 task-specific한 결과를 도출하기 위하여 TL;DR:이라는 annotation을 추가하여 100개의 token을 생성하였고, 생성된 token에서 세 문장을 요약으로 사용하였다. 평가 지표는 ROUGE를 사용하였고, 기사에서 random으로 세 문장을 도출한 요약보다 더 좋은 요약을 만들 수 있었다. 한 TL;DR: 토큰 없이 실험한 경우, 성능이 더 하락한 것을 보아 task-specific한 힌트를 통해 task를 수행한 것이 더 도움이 된 것을 확인할 수 있다.
3. 7. Translation
어떻게 GPT-2가 번역하는 방법을 학습했는지를 평가한다. task가 translation이라는 것을 명시하기 위하여 english = french의 형태로 먼저 조건화를 하고, 마지막 prompt에서 english = 의 형식으로 작성하여 모델이 답을 도출하게 끔 수행하였다. WMT-14를 사용하여 task를 수행하였다. English-French test와 French-English test에서 각각 5 BLEU score, 11.5 BLEU score를 성취한다. 두 결과 모두 이전 SOTA인 unsupervised model보다 성능이 좋지는 않지만, 영어로만 이루어진 WebText에 French corpus는 10MB 밖에 없었기 때문에 이러한 결과에 의미를 둔다.
3. 8. Question Answering
QA task에서 일반적으로 사용하는 "정확히 답이 일치하는지"를 확인하는 평가 지표를 사용하였다. 이 지표로 비교하였을 때는 GPT-2가 4.1%의 정확도를 보였다. 이러한 결과는 기존 모델들에 비해 5.3배 더 좋은 결과라고 한다. 작은 모델들은 보통 1%의 정확도를 넘지 못하였다. 아직까지 모델의 크기가 task 성능에 영향을 미친다고 볼 수 있다. Table 4는 GPT-2의 가장 신뢰도가 높은 답변 1%를 보인다. 평균 63%의 정확도를 얻었다.
4. Generalization vs Memorization
당시 CV의 image datasets에는 어느정도 중복된 image가 포함되었다. CIFAR-10의 경우 train과 test set 중 3.3%의 중복 data가 포함되어 있었다. 이와 같이 중복된 데이터를 포함하는 것은 일반화 성능을 과대 해석하도록 한다. 데이터가 증가함에 따라 WebText에도 중복 data가 있을 것이라고 생각하고 본 논문에서는 이를 분석한다.
저자들은 이를 조사하기 위해 8-gram Bloom Filter를 사용하였다. 일반적인 LM datasets은 WebText training set과 1~6% (평균 3.2%)의 중복이 포함된 것을 확인하였다. 또 각각 train과 test set끼리 평균 5.9%의 중복이 포함된 것을 확인하였다. 이는 Table 5에서 설명한다.
이러한 중복 제거를 위해서 본 논문에서는 n-gram overlap을 사용하는 것을 추천하였다. 여전히 WebText의 train, test set에 대해서는 모델의 크기가 클수록 underfitting하는 것을 보인다. 이는 memorization가 성능 개선의 큰 요인이 아니었으며 underfitting을 개선하기 위한 연구가 필요하다고 한다.
5. Conclusion
본 논문은 unsupervised learning이 아직 연구할 점이 많음을 보여준다. GPT-2의 zero-shot은 독해 등에서 좋은 성능을 보였지만, 요약과 같은 task에서는 아직 실제로 사용하기엔 무리가 있는 성능을 보였다. 저자들은 decaNLP나 GLUE와 같은 벤치마크에서 fine-tuning을 사용할 것을 계획한다.