AI

[Paper Review] GPT-1

지구인 ㅣ 2022. 3. 21. 12:31

728x90

Abstract

  • 현실에서, unlabeled text 데이터는 풍부한 데에 비해 labeled text 데이터는 그렇지 못하다.
  • 다양하고 방대한 unlabeled corpus에 대해 generative pre-training한 언어 모델에, 각 task에 맞는 discriminative fine tuning을 가해준다면 자연어 이해와 연관된 다양한 task(textual entailment, question answering, semantic similarity assessment, document classification 등)에서 큰 성과를 가져올 것이다.
  • 더불어 이전의 접근법과는 다르게, fine tuning 시 input을 각 task에 맞게 조정하여 모델 아키텍쳐에는 최대한 변화를 주지 않으면서도 효율적으로 전이학습이 이뤄지도록 했다.
  • general model이 각 task별로 구조를 바꾸어 학습한 모델보다 월등히 앞선 성능을 보였다.
  • 12개 중 9개 부문에서 SOTA 달성
    • 8.9% on commonsense reasoning (Stories Cloze Test), 5.7% on question answering (RACE), 1.5% on textual entailment (MultiNLI)... etc.

1. Introduction

개요

  • 대부분의 딥러닝 방법론은 상당한 양의 labeled data가 필요하지만 그 자원이 매우 부족한 실정이다.
  • 따라서 풍부한 unlabeled text data를 활용한다면 모델은 언어 정보를 최대한으로 습득하면서도 시간과 비용 측면에서의 낭비는 줄일 수 있을 것이다.

문제점

  • 하지만 unlabeled text로부터 word-level 이상을 얻는 것은 2가지 큰 문제가 있다.
    • transfer하기 유용한 text representations를 학습하는 데에 있어, 어떤 목적 함수가 가장 효과적인지 확실하지 않다
    • 학습된 representations를 target task에 효과적으로 transfer하는 방법에 대한 합의점이 없다
    • 이러한 불확실성은 language processing을 위한 효과적 준지도학습 접근법들의 발전을 어렵게 했다.

해결방법

  • unsupervised pre-training + supervised fine-tuning을 결합한 semi-supervised approach 활용한다.
  • 저자의 목표는 광범위한 tasks에 소폭의 변형만으로 transfer할 수 있는 범용 representation을 학습하는 데에 있다.
  • 두가지 학습 과정이 있다.
    • unlabeled data에서 LM(language modeling) objective를 사용하여 모델의 초기 파라미터를 학습한다.
    • 위에서 얻은 파라미터들을 supervised objective에 해당하는 target task에 적용한다.
  • 아키텍쳐로 transformer 사용
    • RNN에 비해 text의 long-term dependencies를 처리하는 구조화된 메모리 제공
  • transfer 과정에서 task-specific하게 input을 조정하는 방식을 채택 ( → 앞서 말했듯이 pre-trained model의 구조에 최소한의 변화만을 통해서 효과적으로 fine tune하기 위함)

성과

  • GPT는 4가지 언어 이해 tasks(natural language inference, question answering, semantic similarity, text classification) 평가에서 매우 높은 성능을 기록했다. 12가지 tasks 중 9가지에서 SOTA를 달성했다.

2. Related Work

Semi-supervised learning for NLP

  • 지난 몇년간, 워드 임베딩과 같이 unlabeled corpora를 학습하여 얻은 word-level information을 활용하여 지도 학습에 사용하는 방식의 준지도학습법이 주를 이루었다.
  • 최근에는 word-level을 넘어 phrase-level, sentence-level 임베딩을 위한 연구가 진행되고 있다.

Unsupervised pre-training

  • Unsupervised pre-training은 위와 같은 semi-supervised learning의 특별 케이스
  • Supervised learning objective를 수정하는 대신, 애초부터 좋은 initialization point를 찾는 것이 목적이다. → 범용적 pretrained model을 만들기 위해
    • pretraining이 딥러닝 모델의 일반화 성능을 향상시킨다는 사실이 밝혀진 바 있다.
  • feature-based 방식 : pretrained model로부터 얻은 hidden representation을 supervised target task에 추가적인 feature로 활용하는 방식이다. 대표적으로 ELMo가 있다. → 반면 GPT는 모델 구조에 약간의 변화를 주어 transfer

Auxiliary training objectives

  • Auxiliary unsupervised training objectives를 supervised learning 단계에서 추가적으로 활용하는 것 역시 Semi-supervised learning의 한 방법론이다.
  • 이미 여러 연구에서 language modeling 같은 task의 objective를 target task에 보조적으로 활용하여 성능 향상을 보인 사례가 있다.
  • GPT-1 역시 Auxiliary objective를 사용하지만, 동시에 Unsupervised pre-training은 이미 target tasks와 관련한 몇 가지 언어적 측면을 학습하고 있게 된다.

3. Framework

  • 학습은 2 단계로 이뤄짐
    • 모델에 대규모의 corpus를 학습
    • fine tuning(labeled data를 가지고 개별 task에 모델을 적용하는 파트)

3.1 Unsupervised pre-training

LM으로 pretraining 한다.

  • n개의 unsupervised 토큰이 주어졌을 때, 표준의 LM objective를 사용하여 다음의 likelyhood를 최대화한다.
    • 아래 식은 $u_{i}$ 이전 단어들을 가지고 $u_{i}$ 단어를 예측하는 것을 최대화하는 것이다.
    • k는 context window 이고, θ는 모델의 파라미터들이다. 이 파라미터들은 SGD를 활용해 학습된다.
  • 구조는 transformer decoder 구조를 사용한다.
  • $h_{0}$ : 0번째 hidden state. 첫 입력이 됨. 전체 토큰 * 토큰 임베딩 행렬 + 포지션 임베딩 행렬.
  • $h_{l}$ : transformer_block(transformer의 decoder block. Masked Multi Self Attention + Feed Forward)에 $h_{l-1}$를 통과시킨 결과 → n번 만큼 반복!
  • $P(u)$ = softmax($h_{n}{W_{e}}^T$) : 최종 output에 대해서 softmax를 통과시켜 그 다음 토큰을 예측한다.

3.2 Supervised fine-tuning

pre-trained model을 fine-tuning한다.

  • 입력들이 pre-trained model을 통해서 final transformer block의 활성화 ${h_{l}}^{m}$를 만들고, 이 ${h_{l}}^{m}$을 새로운 linear output layer에 입력으로 전달한다.
  • m개의 시퀀스로 이뤄진 토큰 x가 주어졌고, 정답 레이블 y가 주어졌을 때, 마지막 transformer block(decoder block임), 즉 pre-trained model의 마지막 hidden state의 m번째 단어에 해당하는 hidden state block을 가져다가 다시 linear layer를 씌운 후 softmax를 통과시켜 확률값을 얻는다.
  • supervised fine-tuning의 목적 함수를 최대화하는 식
  • pre-trained model 또한 fine-tuning task에 맞게 보조 목적으로서 포함시키면 좋은 효과를 낸다는 것을 알아냈다.
    • 지도 학습된 모델의 일반화 성능을 높임
    • convergence(수렴)를 가속화

3.3 Task-specific input transformations

pre-trained model이 처리 가능하도록 각 tasks에 맞게 다양한 방식으로 input을 변환한다.

4. Experiment

4.1 Setup

unsupervised pre-training

  • BookCorpus, 1Billion Word Benchmark(ELMo에서도 사용)로 pre-training
  • 다음은 supervised learning한 dataset
  • 4개 task 총 12개 dataset 중에서 9개 dataset에 대해 SOTA 달성
    • SOTA달성 X : RTE, MSR Paraphrase Corpus, Stanford Sentiment Treebank-2

5. Analysis

  • (왼)GPT에서 transformer의 decoder block을 몇 개나 쌓아야할까? → 최대 12개까지 쌓은 결과, 쌓을수록 성능이 향상된다는 것을 확인했다.
  • (오)pre-training update 횟수에 따른 성능 비교 : 모든 부분에서 Transformer가 LSTM을 앞선다. → attentional memory가 LSTM보다 구조적으로 잘 조직됨

Ablation

  1. pre-training 안 한 것 → 제일 낮은 성능
  2. fine-tuning 시 LM object 제외한 것
    1. 큰 dataset의 성능을 떨어지고 적은 dataset의 성능은 올라감
    2. 즉, 적은 dataset을 사용하면 LM의 성능이 발휘되지 않음
  3. LSTM(LM object 사용)

6. Conclusion

  • 광범위한 unlabeled corpus를 이용한 unsupervised pre-training, 그리고 labeled data로 개별 task에 대한 fine-tuning을 진행하여 범용적 단일 모델로 강력한 자연어 이해가 가능함을 알 수 있었다.
  • 특히 pre-train 시 길게 연속된 text를 학습시키는 것은 현실 세계에 대한 지식, 또는 long-range dependencies를 잘 처리하는 능력을 얻을 수 있었다. 이러한 성과는 추후 개별 task에 대한 transfer learning을 진행할 때 이를 더욱 성공적으로 만들어주는 효과가 있다.
  • 이에 어떤 모델(transformers)이, 또 어떤 data sets(text with long range dependencies)이 본 논문의 접근법에서 가장 좋은 성능을 냈는지 알 수 있었다.
728x90