GPT-2 : Language Models are Unsupervised Multitask Learners
원문 : 원문 보기
개요
이번 포스팅에서는 GPT-2 : Language Models are Unsupervised Multitask Learners 논문을 공부합니다
나는 사용했다. 구글 번역기 번역을 위해서
Reference
들어가기 전
Zero shot Learning
- train dataset에 없는 class를 예측하는 것
결합 확률(joint probabilities)
- 2개 사건이 동시에 일어날 확률
조건부 확률(conditional probabilities)
- 사건 X가 발생했다는 가정에서 사건 Y가 발생할 확률
Code point
- 특정 문자에 매핑되는 숫자 값
TITLE : Language Models are Unsupervised Multitask Learners
Abstract
- 우리는 수백만 개의 웹페이지 데이터셋인 WebText를 사용해서 학습한 언어 모델로, QA와 기계번역/독해, 요약 같은 NLP문제를 해결함
- Zero shot task와 모델 성능을 향상하는 데는 언어 모델의 capacity는 필수적임
- 우리의 largest 모델인 GPT-2는 15억 개의 파라미터를 가진 Transformer 모델이며, 8개 중 7개 언어 모델링 데이터셋에서 Sota를 달성했지만 WebText에서는 여전히 좋은 성능을 내지 못함
Introduction
- 성능이 좋은 NLP 모델은 pre-training과 fine-tuning의 결합으로 만들어지고 발전됨
- 본 논문에서는 두 방식의 연구를 결합해 transfer-leraning의 일반적인 방법의 흐름을 이어감
- 본 논문에서는 언어 모델이 파라미터와 아키텍처 변형 없이 zero-shot setting에서 downstream task를 수행하는 것을 증명
- 이러한 접근법이 zero-shot setting에서 광범위한 task를 언어 모델이 수행할 수 있는 가능성을 보여준다는 것을 보여줌
Approach
- 접근 방식의 핵심은 언어 모델링(language modeling)
- 언어 모델링이란 보통 symbol(s1, s2,... sn)으로 구성된 set(x1, x2... xn)에서 unsupervised 분포를 추정하는 데 사용됨
- 자연스러운 문장 순서가 있는 언어의 특성 때문에, 조건부 확률의 곱을 사용해 symbol에 대한 joint probabilities(결합 확률)을 인수 분해하는 것이 일반적임
- 이 접근법은 샘플링을 간단하게 할 수 있게 하며, 최근 Transformer는 이러한 조건부 확률을 잘 계산함
- 여러 Task에서도 시스템이 일반적으로 동작하려면, 입력단계에서는 단순 입력뿐만 아니라 Task정보도 들어가야 함
- 즉, p(output|Input, task)을 가지고 모델링해야 하며 이것은 이미 공식화된 이론임
- 이것을 실제 데이터셋을 사용해 적용할 때는 유연하게 적용이 가능함
- 또한 대화 데이터셋의 사용은 매우 제한적이고 상호작용이 필요 없는 인터넷상의 방대한 양의 데이터가 더 나음
접근법 1 - Training Datasets
- 선행 연구에서는 단일 domain에서 가져온 데이터셋을 사용했지만, 우리는 large 한 데이터셋을 만들기 위해 다양한 domain을 사용함
- 하지만 크기만 큰 데이터셋이 아니라 양질의 데이터셋을 구축하기 위해, 사람에 의해 필터링되고 조직화된 글만 사용했고 크기는 40G
- 해당 데이터셋 이름은 WebText
접근법 2 - Input Representation
- WebText에서 Byte Pair Encoding(BPE)를 했을 때 좋은 성능을 발견함
Byte Pair Encoding
- 빈번한 Symbol Sequence와 빈번하지 않은 Symbol Sequence 입력을 적절히 조정하는 방법
- 기존 BPE 구현은 Byte가 아닌 Unicode에 매핑되어서 13만 개의 Token vocabulary를 사용해야 했지만, 우리는 Byte-level BPE 방식을 사용해서 256개의 Token Vocabulary만을 필요로 함
- 하지만 Byte-level BPE를 사용하면 최적의 병합이 이루어지지 않았음. 예를 들어 'dog' 단어가 있으면 'dog1' , ' dog.'과 같은 변형이 발생함. 이는 'dog'라는 일반적인 단어만을 의미함
- 따라서 문자의 범주를 넘어가는 병합하는 것을 막아버림
기존 자연어 처리에서 BPE(Byte Pair Encoding)
글자(charcter) -> 단어 집합(vocabulary)을 만들어내는 Bottom up 방식
1. 훈련 데이터셋에 있는 모든 단어 들을 Char or Unicode로 단위로 Vocabulary 생성
2. 가장 많이 등장하는 unigram을 하나의 unigram으로 통합
접근법 3 - Model(아키텍처 이미지는 논문에 없음... )
- Transformer 기반 아키텍처이며 GPT-1에서 조금 수정함
- Norm Layer를 각 sub-block의 입력으로 옮김
- Norm Layer를 추가적으로 사용해서 마지막 self-attention 블록 뒤에 추가함
- 모델 depth에 따른 residual path누적에 관한 부분의 초기화 방법 변경함. residual layer 가중치에 1/sqrt(N)을 곱함(N은 residual layer 수)
- Context size : 512 Token -> 1024 Token
- batch size : 512
Experiments
- 4개 모델 사용함 (모두 underfit 상태이며, 더 많이 훈련하면 좋아졌음)
- 117M은 기존 GPT,
- 345M은 BERT의 largest model
- 1542M은 GPT-2
Language Modeling
- Zero-shot 학습 결과로써 SOTA
Children's Bookt Test
- 카테고리 별 언어 모델의 성능을 측정
- 10개 보기 중 생략된 단어를 선택하는 task
- 매개변수(parameter) 수에 비례한 성능 증가
- 가장 큰 모델은 마치 인간에 필적함
LAMBADA
- 장거리 의존성(long-range dependency) 역량 평가에서도 성능이 향상
Winograd Schema Challenge
- 텍스트 속의 모호함을 푸는 Task
- SOTA 달성
Reading Comprehension
- QA 형태의 데이터셋으로 문서 이해능력과 QA능력을 동시에 평가함
- BERT 성능보다는 낮지만 fine-tuning 없어도 좋은 성능을 보여줌
Summarization
- 텍스트 요약 능력
- 기존 SOTA 모델 대비 성능 낮음
Translation
- WMT-14 영어-프랑스어 데이터셋 사용
- 기존 SOTA 모델 대비 성능 낮음
Conclusion
zero-shot learning 한 성능 좋은 GPT-2 잘 봤지?
지도 학습(supervised learning) 없이도 대용량 학습 데이터셋만 잘 학습한다면 zero-shot learning을 통해서 좋은 모델 성능을 낼 수 있다는 거 알겠지?
'논문' 카테고리의 다른 글
[논문 공부] ELMO : Deep contextualized word representations (0) | 2022.09.14 |
---|---|
[논문 공부] RoBERTa : A Robustly Optimized BERT Pretraining Approach (2) | 2022.09.03 |
[논문 구현] Transformer : Attention IS All YOU NEED (0) | 2022.08.20 |
[논문 공부] BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding (0) | 2022.08.08 |
[논문 구현] Sequence to Sequence Learning with Neural Networks (0) | 2022.08.02 |