Abstract
- 자연어 이해는 다양한 task를 포함한다.
- 라벨링되지 않은 데이터는 충분한 반면, 특정 task에 맞게 라벨링된 데이터는 매우 부족하다.
- 그래서 이를 모델이 충분히 성능이 나오도록 학습하는 것이 어렵다.
- 라벨링 되지 않은 corpus에 대한 언어 모델의 생성적(generative) 사전 훈련과 fine-tuning을 통해 큰 이득을 얻는다.
- 이전 접근법과 달리, fine-tuning에서 task에 맞는 input으로 변환을 한다.
- 모델 구조를 최소한으로 변경하고 효과적인 전이학습을 위해
- 12 task 중 9 task개에서 SOTA 달성
Introduction
- raw text로 부터 효율적으로 학습하는 능력은 NLP에서 지도 학습에 대한 의존성을 낮추기 위해 매우 중요하다.
- 대부분의 딥러닝 방법은 충분한 양의 라벨링된 데이터가 필요해서 많은 도메인에서 그 능력을 제한한다.
- 라벨링되지 않은 데이터로부터 언어 정보를 활용할 수 있는 모델은 라벨링된 데이터를 수집하는 것의 대안이 된다.
- 지도학습이 가능한 상황에는 비지도 학습을 통해 좋은 표현법을 학습하는 것은 상당한 성능 향상을 일으킨다.
- 사전학습된 단어 임베딩을 사용하는 것은 NLP task의 성능을 향상시키기 때문
- 라벨링되지 않은 텍스트로 부터 단어 수준 정보 이상으로 영향적을 미치는 것은 두 가지 이유로 인해 어렵다.
- 전이학습에 효과적인 text 표현을 더욱 유용하게 학습하는 것에 어떤 최적화 목적이 효과적인지는 모른다.
- 다양한 목적함수(언어 모델, 기계 번역, 단어 유사성 검사 등)가 다른 연구들에서도 좋은 성능을 낸다.
- 목적 task의 표현법을 전이 학습하는 효과적인 합의점이 없다.
- 기존 기술은 task 별로 모델의 구조를 바꾸는 등을 포함한다.
- 이러한 명확하지 않음은 반지도 학습의 효율적인 발전에 어려움을 준다.
- 해당 연구에서는 자연어 이해 task에서 비지도 사전학습과 지도 학습 fine-tuning을 조합한 반지도 학습을 탐색한다.
- 넓은 범위의 적용을 위해 보편적인 표현법을 학습하는 것이 목표이다.
- 이러한 설정은 같은 도메인에 대한 target task를 필요로 하지 않는다.
- 많은 양의 라벨링 되지 않은 corpus와 많지 않은 target task의 데이터로 학습
- 두 단계 학습 진행
- 라벨링 되지 않은 데이터로 신경망의 초기 파라미터 설정
- 지도 학습을 통해 파라미터 학습
- 모델 구조로 Transformer 사용
- 장기 의존성 기억 → 강건한 모델 생성
- 전이 학습 중에는 task에 맞는 input을 구조화된 text 단일 연속 토큰 시퀀스로 처리하는 순회 스타일 접근 방식 사용
- 이를 통해 최소한의 사전 학습된 모델 구조 변화로 효과적으로 fine-tuning 가능
- 12개 task 중에 9개가 SOTA
- 사전 학습 모델의 zero-shot behaviors을 분석, 설명
- zero-shot: train set에 포함 되지 않은 unseen class 예측
Semi-supervised learning for NLP
- 자연어에 대한 준지도학습에 속함
- 초기에는 라벨링되지 앟은 데이터를 단어 수준 또는 구문 수준의 통계량을 계산하는 데에 사용했다.
- 라벨링 되지 않은 corpus로 학습된 단어 임베딩을 사용하는 것은 매우 성능에 도움이 된다.
- 하지만 더 고차원적인 의미를 포착하는 것에 초점을 맞추고 싶어도 단어 수준 정보에 주로 전이 학습된다.
- 최근에는 단어 수준 정보 이상의 의미를 학습시키기 위해 연구중이다.
- 구문 단위 또는 문장 단위 임베딩을 라벨링 되지 않은 corpus로 학습시키고 다양한 target task로 적절한 벡터로 단어를 인코딩한다.
Unsupervised pre-training
- 비지도 사전 학습은 반지도 학습의 특별한 경우이다.
- 지도 학습 목적 함수를 수정하는 대신에 좋은 초기점을 찾는 것을 목표로 함
- 이후 연구는 사전 학습은 규제 효과를 갖고 있어 일반화를 잘 할수 있다고 주장하였다.
- 해당 방법은 여러 task에서 깊은 신경망을 학습하는 것을 돕기 위해 사용되었다.
- 해당 연구와 가장 가까운 연구는 언어 모형 목적 함수를 사용해 신경망을 사전학습하고 지도 학습으로 target task를 학습
- 사전 학습은 언어 정보를 포착하는 것을 돕는다.
- 하지만 LSTM이 장기 정보 기억을 제한한다.
- 하지만 해당 연구는 transformer를 선택하였고 장기 언어 구조를 포착할 수 있게 한다.
- 다른 연구는 target task를 지도학습 하는 동안 보조 feature로써 사전학습된다.
- 이것은 target task마다 상당한 양의 새로운 파라미터를 보유한다.
- 하지만 해당 연구의 모델은 전이 학습동안 모델 구조를 최소한으로 바꾼다.
Auxiliary training objectives
- 보조 비지도 학습 목적 함수를 추가하는 것은 반지도학습의 대안이다.
- 초기 연구는 의미론적 역할 라벨링을 향상시키기 위해 NLP task에 품사 태깅, chunking, 객체 인식, 언어 모델링 등을 다양한 보조 NLP task로 활용한다.
- 최근 연구에서는 보조 언어 모델 목적함수를 target task 목적 함수에 추가하였다.
- 해당 연구 역시 보조 정보를 사용하지만 비지도 사전학습이 이미 다양한 언어 양상을 학습했다.
Framework
- 커다란 corpus에서 고용량 언어 모델을 학습
- 라벨링된 데이터를 다른 task에 학습(fine-tuning)
Unsupervised pre-training
- 비지도학습 corpus의 토큰(u=u1,…,un)이 주어지면, 표준 언어 모델의 목적함수를 아래 우도를 최대화하기 위해 사용한다.
L1(u)=ΣilogP(ui∣ui−k,…,ui−1);Θ
- k는 context window의 크기이며 조건부 확률 P는 파라미터 Θ로 신경망을 사용해 모델링된다.
- 모델로는 Transformer decoder 사용
- input context token에 position-wise feedforward layer를 통과시킨 다음 멀티 헤드 셀프 어텐션 사용
h0=UWe+Wphl=transformer_block(hl−1)∀i∈[1,n]P(u)=softmax(hnWeT)
- U=(u−k,…,u−1)는 토큰의 문맥 벡터, n은 레이어 수, We는 embedding matrix, Wp는 position embedding matrix
Supervised fine-tuning
- 사전 학습 후, 지도학습 target task에 알맞게 파라미터를 조정한다.
- 라벨링된 데이터셋 C, input token의 순서를 포함한 인스턴스 x1,…,xm, 라벨 y
- input은 마지막 transformer의 block의 상태 hlm을 얻기 위해 사전 학습된 모델을 지난다.
- 그 후, y를 예측하기 위해 Wy가 포함된 선형 output layer에 추가
P(y∣x1,…,xm)=softmax(hlmWy)
- 이것은 아래 목적함수를 최대화 시키기 위해 주어진다.
L2(C)=Σ(x,y)logP(y∣x1,…,xm)
- fine-tuning의 보조 목표로 언어 모델링 포함
L3(C)=L2(C)+λL1(C)
- fine-tuning 동안 필요한 추가적인 파라미터는 Wy와 구분자 토큰의 임베딩 값이다.
- text 분류와 같은 task들은 직접적으로 모델을 수정하지 않고 fine-tuning이 가능하다.
- 하지만 QA나 textual entailment 같은 task는 문장 쌍, 또는 문서, 질문, 정답과 같은 형태로 변환해주어야 한다.
- 사전 학습된 모델이 text의 지속적인 순서로 학습되었고, 우리는 해당 task에 적용하기 위해 수정을 해야한다.
- 이전 연구에서는 전이학습 된 표현을 input으로 학습 작업별 구조를 제안했다.
- 이러한 접근 방식은 상당한 양의 작업별 customization을 다시 도입하고 추가적인 구조의 요소에 전이 학습을 사용하지 않는다.
- 대신 우리는 사전 학습된 모델이 처리할 수 있도록 구조화된 input을 정렬된 순서로 변환하는 순회 방식 접근법을 사용한다.
- 이러한 input의 변환은 task에 따른 구조 변화를 피하도록 한다.
- 무작위로 초기화된 시작 및 종료 토큰(<s>, <e>) 포함
⇒ GPT-1은 사전학습된 decoder에서 나온 값들을 각 task에 알맞게 변형하였지만, GPT-2는 input의 형태를 변환하였다.
Experiments
Setup
- Unsupervised pre-training: BookCorpus 데이터셋을 언어 모델에 사용
- 다양한 장르의 7000권의 책 포함
- 생성 모델이 긴 정보를 학습할 수 있도록 text의 길이가 길다.
- 대안으로 1B Word Benchmark, ELMo 사용
- Model specifications: transformer 구조 사용
- 12층의 디코더만 사용(masked self attention head 보유)
- 768차원의 상태와 12개의 attention head
- position wise feed-forward 신경망으로 3072 차원의 상태 사용
- 최대 학습률 2.5e-4의 Adam 사용
- 학습률은 처음 2000번의 업데이트 동안 0에서 선형으로 증가하였으며 cosine schedule을 사용해 0으로 천천히 감소
- 100 에폭, 배치 사이즈 64, 512개의 sequence
- Layer Normalization 사용, N(0,0.02)에서 가중치 초기화
- BPE를 사용해 40000번 merge하는 방식으로 tokenization
- 0.1의 dropout 적용(residual, embedding, attention)
- 수정된 L2 정규화 사용(w=0.01, 편향, 가중치 증가 없이)
- GELU를 활성화 함수로 사용
- Positional Embedding은 sinusoidal 대신 학습하여 사용
- Fine-tuning details: 비지도사전학습의 하이퍼파라미터 재사용
- classifier에 드롭아웃 추가(0.1)
- batch size 32와 학습률 6.25e-5 사용
- 대부분 3에폭 학습하면 적당했다.
- 선형 학습률 감소 사용
- λ=0.5
Supervised fine-tuning
Analysis
Impact of number of layers transferred
- 비지도 사전학습을 한 후에 target task를 수행하면 하지 않았을 때보다 성능 상승
- 사전 훈련된 모델의 각 계층에 task 수행에 유용한 기능 포함
Zero-shot Behaviors
- 기본적인 생성 모델은 언어 모델의 수용량을 향상하고 어텐션 메모리를 구조화하기 위해 사용됨
- fine tuning 시 성능이 안정적이고 꾸준히 증가
- LSTM이 transformer보다 zero-shot 성능에서 더욱 높은 분산을 가짐
Ablation studies
- fine-tuning 도중 보조 LM 여부: NLI와 QQP에서 도움이 됨. 데이터셋이 작으면 이득이 없지만 클수록 이득이 있음
- Transformer vs LSTM: LSTM 사용 시, 평균 5.6% 하락(오직 MRPC에서만 더 높음)
- 사전학습 여부: 사전학습 미수행 시 14.8% 감소
Conclusion
- 생성 사전 학습을 통한 task 불가지론 모델과 task에 따라 다른 fine-tuning 모델 제안
- 다양한 corpus로 사전학습 하는 것은 다양한 task 수행에 도움이 된다.
- 12개의 dataset 중 9개에서 SOTA 달성