본문 바로가기

AI

[논문] GPT-2 : Language Models are Unsupervised Multitask Learners

반응형

https://cdn.openai.com/better-language-models/language_models_are_unsupervised_multitask_learners.pdf

 

1. Introduction

The dominant approach to creating ML systems = 기존 ML 시스템 = 지도학습

지도학습은 좁은 전문가(narrow experts)에는 성능이 좋지만 범위를 벗어나면 성능내기 어렵다. 각 task마다 별도의 label dataset을 만들어서 각각의 모델을 지도학습으로 학습시켜왔다.

Multitask training(1997) : 일반적인 성능을 향상시키기 위한 프레임워크를 내놓았지만 지도학습이라 엄청난 훈련 데이터셋이 필요했고 한계를 벗어나지 못했다.

이러한 점들이 GPT-2와 같은 모델이 비지도학습으로써 Zero-shot 학습 연구를 계속 하게된 동기가 되었다.

It will be very difficult to continue to scale the creation of datasets
데이터셋 생성을 계속 확장하는 것은 매우 어려울 것이다.
that may be re-quired to brute force our way there with current techniques.
현재 기술로 무작정 확장하는데 매우 어려울 것이다.
This motivates exploring additional setups for performing multitask learning.
이는 다중 작업 학습을 수행하기 위한 추가적인 설정을 모색해야 하는 동기가 됩니다.

2. Approach (접근방식)

Language Modeling

텍스트 시퀀스 전체의 확률을 계산하는 방법

언어모델의 기본 정의수식 🧮

$$p(x) = \prod_{i=1}^{n} p(s_n | s_1, \ldots, s_{n-1})$$

$p(a,b,c)=p(a)⋅p(b∣a)⋅p(c∣a,b)$ 수식에서 $a=0.5, b=0.6, c=0.2$라고 하면 $(0.5)*(0.6)*(0.2)$
-> “a가 일어나고, 그 다음 b가 일어나고, 그 다음 c가 일어날 확률은 6%”

단방향 모델이며 GPT, n-gram, Transformer, RNN에서 확률론의 기본정리에서 나온 확률의 연쇄법칙(chain rule)을 그대로 사용한다. 

$$ p(\text{"The dog barked loudly."}) = p(\text{"The"}) \cdot p(\text{"dog"}|\text{"The"}) \cdot p(\text{"barked"}|\text{"The dog"}) \cdot p(\text{"loudly"}|\text{"The dog barked"}) $$

$$s_1 = "The", s_2 = "dog", s_3 = "barked", s_4 = "loudly"$$

input but also on the task to be performed.
input뿐만 아니라 수행할 task에 대해서도 조건화해야 한다.
That is, it should model $p(output|input, task)$
즉, $p(output|input, task)$를 모델링해야하는 것.

Q1: What is the capital of France? A: Paris 
Q2: Who painted the Mona Lisa? A: Leonardo da Vinci 

Q1, Q2의 Q: [질문] A: [답변] 텍스트 패턴을 학습 시켜놓으면 “Q: What is the capital of Japan?” 이 질문에 대해 A : Tokyo라고 예측할 가능성이 높아진다.

→ 수식은 모델이 "다음 단어를 예측한다"는 목표를 정의합니다.
→ 이 수식으로 인해 zero-shot 다중작업 학습(multitask learning) 능력의 핵심 원리가 된다.
→ 대규모 모델 + 대규모 고품질 데이터 + 언어 모델링 학습 목표의 시너지 효과로 인해 제로샷 다중학습능력이 가능해지는것.
→ "일본의 수도는 도쿄다"라는 사실을 명시적으로 학습한 적이 없거나, 또는 "질문 답변" 작업을 위해 별도의 지도 학습 데이터로 미세 조정(fine-tuning)을 거치지 않았다는 점

2.1 Training Dataset

A promising source of diverse and nearly unlimited text is web scrapes such as Common Crawl.
다양하고 거의 무제한적인 텍스트를 얻을 수 있는 유망한 소스는 Common Crawl과 같은 웹 스크랩입니다.

Web Scrape → [output] WebText

품질을 강조하는 새로운 웹 스크레이프를 만들었다.
→ Reddit에서 최소 3개의 추천을 받은 모든 링크를 스크랩해서 WebText에 포함.
Wikipedia 문서는 의도적으로 학습데이터에서 제거 : 일반적인 데이터 소스로 훈련데이터와 테스트 평가 작업 간의 잠재적인 중복으로 인해 분석을 복잡하게 만들 수 있다고 판단했기때문에 제거함.

2.2 Input Representation

Byte Pair Encoding (BPE)

자연어 처리(NLP) 분야에서 텍스트를 처리할 때 사용되는 토큰화 기법 중 하나.

Byte Pair Encoding (BPE) (Sennrich et al., 2015) is a practical middle ground between character and word level language modeling
여기서 BPE가 "character level"과 "word level"의 중간 지점이라고 설명하며, 이것이 바로 서브워드 단위를 의미합니다.
byte-level BPE이기 때문에 기본 256개(모든 byte)를 포함.
  • character level 토큰화 방식 : middle = m,i,d,d,l,e
    → 어휘 크기가 작지만, 시퀀스가 길어져 문맥 학습이 어렵다.
  • word level 토큰화 방식 : middle = middle
    → 단어 의미가 명확하지만, 미등록 단어(OOV) 문제나 어휘 크기 폭발 문제가 발생할 수 있다.
  • Subword-level (BPE) 토큰화 방식 : middle = "mid", "##dle"
    -> 본적도 없는 단어를 서브워드 조합으로 처리 가능하다.
    -> 공통 서브워드를 재활용해서 어휘 크기 감소. run, runs, running -> "run", "##s", "##ing"

2.3 Model

Transformer Decoder : GPT-2는 Transformer Decoder 블록만을 쌓은 구조입니다.

  • Encoder와 연결되는 cross-attention를 제거한 변형 구조 사용
  • Layer Normalization 위치 변경
    -> LayerNorm은 한 토큰의 모든 차원을 기준으로 정규화를 진행함.
    -> Pre-LN 구조는 겹겹이 층이 쌓인 네트워크 구조인 Transformer 학습 안정성을 크게 향상시킨다.
# Transformer
# LayerNorm이 출력 뒤에 있음 → Post-LN
x = LayerNorm(x + (Self-Attention(x)))
x = LayerNorm(x + (FFN(x)))

# GPT-2
# LayerNorm이 앞에 있음 → Pre-LN
x = x + SelfAttention(LayerNorm(x))
x = x + FFN(LayerNorm(x))


GPT-2에선 but still underfits WebText. 라며 추가적인 모델 확장과 더 많은 학습 데이터의 필요성을 강조한다.

3. Experiments (실험)

3.1. Language Modeling

주어진 텍스트 시퀀스를 기반으로 다음에 올 단어(또는 글자)가 무엇일지 예측하는 작업

WebText 매우 거대하고 다양한 텍스트 데이터셋을 사용해서 훈련 진행.
→ 따로 학습 시키지 않고 각 태스크에 맞는 프롬프트(자연어 지시)를 주입
→ 이때 모델의 가중치는 전혀 업데이트되지 않는다.
→ 따로 fine-tuning하지 않음

4. Generalization vs Memorization

WebText를 통째로 외워서 성능이 나오는 것아니냐 하는 의문에 Bloom Filter를 이용해서 8-gram 중복 여부를 체크했다.
결과적으로, GPT-2는 일부 암기(memorization)도 하지만, 상당 부분에서 일반화된 생성 능력을 보인다는 것을 보여줬다.

6. Discussion

one of these pre-training techniques begins to learn to perform tasks
directly without the need for supervised adaption or modification.
이러한 사전 훈련 기술 중 하나는 지도 적응이나 수정 없이도 작업을
직접 수행하는 방법을 학습하기 시작한다는 것을 보여주기 때문에.
→ 지도학습은 학습 데이터의 한계를 가지고 있고, 비지도학습 방법은 한계를 깰 수 있기때문에 계속 연구를 할 것이다.
Given the prior success of fine-tuning GPT,
we plan to in- vestigate fine-tuning on benchmarks such as decaNLP and GLUE,
기존의 GPT fine-tuning 성공 사례를 바탕으로 decaNLP 및 GLUE와 같은 benchmark에 대한
fine-tuning을 조사할 계획입니다.
→ BERT에 의해 입증된 단방향 표현의 비효율성을 극복하기엔 아직 부족하기 때문에! → BERT 논문에서는 양방향 표현이 훨씬 효과적임을 입증하면서 단방향 표현의 한계를 보여준다.
→ BERT 논문에서는 양방향 표현이 훨씬 효과적임을 입증하면서 단방향 표현의 한계를 보여준다.

 

 

The Illustrated GPT-2 (Visualizing Transformer Language Models)

Discussions: Hacker News (64 points, 3 comments), Reddit r/MachineLearning (219 points, 18 comments) Translations: Simplified Chinese, French, Korean, Russian, Turkish This year, we saw a dazzling application of machine learning. The OpenAI GPT-2 exhibited

jalammar.github.io

 

반응형