본 글은 GPT-2, GPT-3 paper 내용을 기반으로 합니다.
혹시 잘못된 부분이나 수정할 부분이 있다면 댓글로 알려주시면 감사하겠습니다.
OpenAI GPT paper review는 이전 글을 참고해주시길 바랍니다. https://byeonggeuk.tistory.com/16
Language Models are Unsupervised Multitask Learners (GPT-2)
1. Introduction
1. 기계학습 시스템은 큰 dataset, 고용량 모델, supervised learning 등을 통해 발전
- 이러한 방법들은 데이터 분포에 민감하고 특정 task에만 좋음
2. 현재 가장 성능이 좋은 시스템은 pre-training과 supervised fine-tuning의 조합
- 이러한 방법들을 task에 수행하기 위해서는 supervised training이 필요
3. 본 논문은 두 가지 작업(pre-training과 fine-tuning)을 연결
- parameter와 아키텍처 수정없이 zero-shot 세팅에서 down-stream task를 수행
- zero-shot 세팅에서 광범위한 task를 수행하는 언어 모델의 능력을 보여줌
2. Approach
1. Input Representation
- Byte Pair Encoding (BPE) : 빈번하게 등장하는 시퀀스에 대한 word level과 빈도가 낮은 시퀀스에 대한 character level 사이를 효과적으로 보간하고 OOV(Out-Of-Vocabulary)에도 합리적임
ex) {dog. dog! dog?}와 같은 다양성을 피할 수 있음
2. Model
- OpenAI GPT 모델과 거의 동일하게 Transformer 기반 아키텍처를 사용
- Layer normalization을 각 sub-block의 input으로 옮김
- Layer normalization을 final self-attention block 이후에 추가함
- Vocabulary size를 50,257로 확장
- Context size를 512에서 1,024 토큰으로 확장
- Batch size를 512로 확장
3. Experiments
4개의 LM을 훈련
- 가장 작은 모델은 original GPT와 동일한 크기
- 두 번째로 작은 모델은 BERT large 모델과 동일한 크기
1. Language Modeling
- byte level로 동작 =>기존 language model benchmark에 평가 가능 (byte level에서는 추가적인 전처리나 토큰화가 필요하지 않기 때문에)
- WebText에서 <UNK>는 400억 개의 byte에서 26번만 발생
- Zero shot으로 8개 task 중 7개에서 SOTA 성능 달성
2. Children's Book Test (CBT)
- CBT는 품사(고유명사, 명사, 동사, 전치사)에 따른 LM 성능 평가를 위한 dataset
- text에서 생략된 명사나 개체명에 대해 10가지 선택지에서 올바르게 선택할 확률
- CN(Common Nouns)에서 93.3%, NE(Named Entities)에서 89.1%의 좋은 성능 달성
3. LAMBADA
- 텍스트 장거리 의존성을 평가
- 텍스트 내 긴 문장에 대한 의존성을 테스트하기 위해 문장의 마지막 단어를 예측하는 것을 목표
- perplexity와 accuracy가 많이 개선됨
4. Winograd Schema Challenge
- 텍스트의 중의성을 해결하는 능력을 측정
- 기존 SOTA 모델보다 7% 높은 70.7%의 정확도를 보여줌
5. Reading Comprehension
- Conversation Question ANswering dataset(CoQA)는 독해력과 대화 내용에 의존하는 질문에 답하는 능력을 평가
- Supervised SOTA(BERT) F1 score 89보다는 낮은 성능이지만 supervised training 없이 zero-shot으로 F1 score 55 달성
6. Summarization
- 요약문 생성을 수행하는 능력 평가
- 문서 이후 TL;DR:을 추가하여 summarization을 유도 ('TL;DR:'은 'Too Long;Didn't Read:'의 약자로 요약하라는 의미)
- ROUGE 평가 지표를 이용하였으며 TL;DR:을 제거하면 6.4점이 하락
7. Translation
- WMT-14 English-French와 French-English는 각 BLEU의 성능은 5, 11.5
- Unsupervised machine translation 최고 점수보다는 낮음 (33.5 BLEU)
- 33.5 BLEU 달성한 연구에 비해 500배 작은 데이터인 10MB 크기의 프랑스어를 가진 WebText로 학습을 했는데도 불구하고 이정도 성능
4. Generalization vs Memorization
1. Train data와 Test data의 중복 조사
- Train data와 Test data의 중복이 크면 metric 측정에 방해
- WebText train data는 평균 3.2% 중복, benchmark train dataset은 평균 5.9% 중복
2. Train data와 Test data의 성능 조사
- Train set과 Test set의 성능은 비슷하며 모델 크기가 증가함에 따라 같이 성능 증가
- 이는 모델이 아직 과소적합을 의미
5. Conclusion
- 충분히 크고 다양한 data set을 이용해 모델을 학습하면 더 우수한 성능을 보여줌
- GPT-2 모델은 zero-shot에서 8개의 task 중 7개 task에서 SOTA 성능 달성
- fine-tuning 없이 zero-shot 환경에서 모델을 수행할 수 있는 계기가 됨
Language Models are Few-shot Learners (GPT-3)
1. Introduction
1. 최근 발전되고 있는 언어 모델들은 fine-tuning이 필요하지만 다음과 같은 문제로 제거되어야함
- 각 task에 대해 레이블된 대규모 dataset이 필요하기 때문에 언어 모델의 적용 가능성이 제한
- Pre-training 과정에서 매우 큰 정보를 학습된 모델이 매우 작은 dataset에 fine-tuning을 하면 문제를 일으킬 수 있음 (작은 dataset에 민감)
2. 이러한 문제를 해결하기 위한 한 가지 방법으로는 meta-learning이 있음
!!본 논문에서 가장 중요한 contribution!!
meta learning
- Pre-training 과정에서 광범위한 기술과 패턴을 인식하는 능력을 개발 => 여기서 광범위한 기술과 패턴이란 원하는 task에 빠르게 적응하거나 인식한다는 의미로 기술과 패턴을 잘 학습하였다면 few-shot learning에서 좋은 결과를 보여줄 것임
- Inner loop는 동일한 task를 이루는 데이터들로 이루어져 있어 하나의 sequence로 들어가서 학습함
In-context learning
- Inference 과정에서 사용자로부터 받은 문맥을 통해 동적으로 조정되어 특정 task에 더 적합한 응답을 생성하도록 모델을 조정
Few-shot learning
- 모델이 몇가지 예시만을 통해 새로운 task에 효과적으로 적응할 수 있는 능력
- 본 논문에서는 In-context learning을 zero-shot, one-shot, few-shot으로 구체화하여 평가함
3. GPT-3를 42개 benchmark에 대해 평가함
- 전반적으로 좋은 성능을 보여주나 자연어 추론과 독해 task에서는 낮은 성능
- GPT-2와 마찬가지로 모델 크기가 클수록 성능이 좋아짐
2. Approach
Fine-tuning
- Target task에 supervised dataset을 이용해 pre-trained 모델의 가중치를 업데이트
- 좋은 성능을 달성할 수 있으나 앞서 언급한 문제들이 존재 (fine-tuning의 한계)
Few-shot
- K(10~100)개의 예제를 context(2,024개 토큰까지)에 주고 추론
- task별 데이터의 필요성은 줄어들지만 낮은 성능
One-shot
- 1개의 예제를 사용하는 것 이외에는 few-shot과 동일
- one-shot이 인간에게 전달되는 방식과 가장 유사
Zero-shot
- 예제가 없다는 것 이외에는 one-shot과 동일
- 가장 편리하지만 가장 어려운 과제
Model & Architectures
- GPT-2와 동일한 아키텍처 사용
- 파라미터에 따라 8가지 크기의 모델 훈련
- 175B 모델을 GPT-3로 명칭 (어마어마한 파라미터... 하지만 이후 PaLM 논문에서 540B..!!)
Training Dataset
- Training 과정에서 data 품질에 비례하여 샘플링
3. Results
1. Language Modeling, Cloze, and Completion Tasks
- LAMBADA : 문장의 마지막 단어를 예측하는 task
- HellaSwag : 짧은 문장에 대해 마지막 문장으로 알맞는 문장을 고르는 task
- StoryCloze : 5개 문장에 대해 마지막 문장으로 알맞는 문장을 고르는 task
- fine-tuning된 모델보다 좋거나 비슷한 성능을 보여줌
2. Closed Book Question Answering
- 광범위한 사실 기반의 지식에 대한 질문에 답변하는 task
- NaturalQS와 WebQS dataset은 zero-shot에서 few-shot으로 갈 수록 성능 향상
- TriviaQA는 기존 SOTA 모델보다 더 좋은 성능
3. Translation
- GPT-3의 training data는 영어 93%, 다른 언어 7%로 구성
- Translation은 낮은 성능을 보임
- Fr->En, De->En에서는 supervised model보다 좋은 성능을 보임
4. Winograd-Style Tasks
- 대명사가 지칭하는 것을 맞추는 task
- 기존 Fine-tuned SOTA 성능 모델과 비슷한 성능 달성
5. Common Sense Reasoning
- 일반 상식 추론 task
- PhysicalQA(PIQA) : 물리학적으로 세계가 어떻게 작동하는지에 대한 질문
- ARC : 3~9학년 과학 시험에서 수집된 객관식 문제 dataset
- OpenBookQA : 주어진 책의 정보를 바탕으로 질문
- PhysicalQA에서만 높은 성능을 보여줌
6. Reading Comprehension
- 독해 능력을 평가하기 위해 5가지 dataset을 이용
- 자유형식 대화 dataset인 CoQA에서 인간 능력에 가까운 성능(3점 차이)를 보임
- 나머지 dataset에서는 낮은 성능을 보임
7. SuperGLUE
- 문장 간의 관계를 이해하는 WiC, RTE, CB에서 낮은 성능
8. NLI
- 두 문장의 논리적 관계를 이해하는 task로 앞 문장에 따른 뒷 문장이 참인지 모순인지 중립인지 판단
- 좋지 않은 성능을 보여줌
9. Syntetic & Qualitative Tasks
- Arthmetic : 산술 수행 능력 평가
- Word Scrambling and Manipulation Tasks : 단어를 재배열하거나 해독
- SAT Analogies : SAT 문제 해결 능력
- News Article Generation : 생성 언어 모델 능력 평가
- Learning and Using Novel Words : 새로운 단어를 학습하고 사용하는 능력
- Correcting English Grammar : 문법 오류 수정 능력
실험 결과들은 모두 GPT-2와 마찬가지로 모델 크기가 클수록 성능이 좋아지며 자연어 추론, 독해 task에서는 낮은 성능을 보였다.
4. Limitations
1. 성능 : 여전히 일부 NLP task에서 낮은 성능 (자연어 추론, 독해)
2. 알고리즘
- Autoregressive language model로 bidirectional architecture를 포함하지 않음
- 빈칸 채우기, 두 문단을 비교하는 task에서 낮은 성능을 보여줄 수 있음
3. 효율성
- Pre-training 과정에서 sample 효율성 향상 필요
- Pre-training 과정에서 학습한 text는 인간이 평생 볼 데이터보다 많음
4. Few-shot learning의 불확실성 : 새로운 task를 학습 한건지 학습했던 task를 식별해서 추론한건지 모호
5. 비용 : 추론을 할 때 비용과 불편함
6. 해석 가능성 : 모델이 도출한 결과에 대해 쉽게 해석할 수 없음
5. Broader Impacts (다양한 영역에 미칠 수 있는 영향)
1. Misuse of Language Models
- Text 생성 능력을 이용한 잘못된 사용이 생길 수 있음
- 해커들의 사용이 우려됨
2. Fairness, Bias, and Representation
- 성별, 인종, 종교에 대한 편향을 가지고 있음
3. Energy Usage
- 모델 비용에 따른 전력 소모량이 큼
6. Conclusion
- 기존 언어모델과 다르게 fine-tuning을 하지않고 meta learning을 적용
- zero-shot, one-shot, few-shot 세팅에서 강력한 성능을 보여주는 175B 모델을 제시함 (GPT-3)
- 모델 크기의 증가에 따른 성능과 여전히 존재하는 한계, 그리고 다양한 영역에 미칠 수 있는 영향들을 시사함