본문 바로가기
Paper Review/Natural Language Processing

[Paper Review] GPT-2, GPT-3

by BangGeuk 2024. 3. 26.

본 글은 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)

- 모델 크기의 증가에 따른 성능과 여전히 존재하는 한계, 그리고 다양한 영역에 미칠 수 있는 영향들을 시사함