본문 바로가기

딥러닝

GPT1 | Improving Language Understandingby Generative Pre-Training

원래 NLP 모델들은 task-specific하게 학습되고 있었음

근데 얘네는 일단 지도학습이고, generalize performance가 낮았음

→ GPT는 unlabeled data로 pretraining을 조진 다음에 downstream task에 맞게 fine-tuning하는 방법을 제시함

GPT1 학습의 3단계

  1. Unsupervised Language Modeling 
    • 일반적으로 LM의 Objective처럼, 단어 사이의 조건부 확률을 예측함
  2. Supervised Fine-Tuning
    • token을 받고 원하는 답을 얻도록 튜닝함
    • Transformer model 끝에 Linear, Softmax layer 추가해서 학습시켰음
    • auxiliary learning objective ( regularizer같은 역할이라고 보면 됨 ) 도 추가함
  3. Task Specific Input Transformation
    • finetuning할 때 모델을 너무 바꾸지 않기 위해서, fine-tuning할 때 input을 ordered sequences로 바꿔서 넣음
      • Start , end token, delimiter token 넣음

Dataset

Model

  • 12-layer decoder-only transformer architecture

Details

Unsupervised Language Modeling

  • Byte Pair Encoding (BPE)
  • 768-dimension word embedding
  • 12 layer, 각 layer 당 12 attention heads
  • Adam optimizer
  • 100 epochs, batch size 64, sequence length 512, 117M parameters

Supervised Fine-Tuning

  • downstream task 하나 당 3 epochs

의의

여러 task에 대해 zero-shot performance가 좋았다

LM이 generalizable한 좋은 pre-training objective라는 걸 알려줌