네이버 부스트캠프 AI Tech 2기

논문 리뷰 - Improving Language Understanding by Generative Pre-Training(GPT-1)

Jay x 2 2021. 8. 30. 01:37
728x90
반응형

Improving Language Understanding By GPT-1

Intro

자연어 처리같은 경우, 질의 응답이나,의미 유사성 파악 등등 다양한 과제가 있다.

데이터 뭉치(Corpus)는 많은데, Labeled된 데이터는 많이 부족하다는 것. 그래서 적절히 모델에 적용하기 어렵다.

그래서 Unlabeled 된 다양한 Corpus 에 대해 GPT라는 작업(Generative Pre-Training)을 수행한 후에 어떤 특정 작업에 대해 차별적인 모델을 제시함으로써 해결하려고 한다.

⇒ Unlabeled 된 데이터를 이용해 다양한 특성들을 학습할 수 있다. 그리고 이런 학습된 결과를 추가적인 Supervision(Fine-Tuning)을 통해서 성능 향상도 가능하다.

(Pre-Trained Word Embedding : Word2Vec, GloVE 등등)

이전 접근들과는 다르게, 모델에 최소한의 변경을 요구하면서 효율적인 transfer를 수행하기 위해 fine-tuning 하는 동안 task-aware input Transformation들을 사용한다.

이런 접근은 자연어 이해를 위한 광범위한 벤치마크의 접근법에 효과가 있다고 설명한다.

🤔 제안 : unsupervised pre-training과 supervised fine-tuning을 합친 semi-supervised 방식을 제안했다.

🤩 목표 : 다양한 Task 마다 작은 변화만으로 적용시킬 수 있는 Representation을 학습하는 것.

🏃 과정

  1. Unlabeled Dataset → 모델 초기 Parameter 학습
  2. 초기 Parameter를 통해 → 알맞는 Target(Objective)에 맞게 추가로 학습

🤖 모델 구조

: Transformer 사용.

Transformer 구조를 사용하는 이유. 기존 RNN 과 비교했을 때, 멀리 떨어진 요소들 사이의 의존성을 학습한다. 그리고 Transfer해서 사용한다는 것의 큰 장점은 Task에 특정한 입력을 생성해서 사용한다는 것이다. 그래서 다양한 Task에 해당 모델을 가지고 조금만의 변화로 Fine-Tuning을 할 수 있다.


Related Works

  1. 이번 논문도 Semi-Supervised Learning의 일종이다. 이전에 Unlabeled 된 데이터로 학습한 word-level, pharase-level statistics로 Supervised Model에 사용하는 방식이 있었으며, Unlabeled 데이터로 학습한 Word2Vec, GloVe 같은 워드 임베딩 방식이 있었다. 하지만, 이번 논문에서는 더 높은 수준으로 학습을 진행한다.
  2. Unsupervised Pre-Training은 Semi-Supervised Learning 한 종류이고, Unsupervised Pre-Training 의 목적은 좋은 초기 환경을 제공하는 것이다. 이전에 Language Modeling Objective로 Pre-Training을 진행하고 Target Task로 Fine-Tuning하는 방식이 있었는데, 해당 논문은 LSTM을 사용했고 성능에 제한이 된다. 그래서 본 논문에서는 Transformer를 사용해 긴 의존성을 학습한다.
  3. 보조적인 training objective를 추가하는 것도 사용한다. (L1, L2)

Framework(학습)

1. Unsupervised Pre-Training

Unlabeled된 데이터에 대해서 이 likelihood를 최대화 하는 방향으로 학습이 진행 된다.

(여기서 k는 NLP에서 window size이고, condidional probability 는 파라미터 θ에 의해 계산이 된다. 파라미터는 SGD 방식으로 계산 된다.)

transformer의 변형 중 하나인 multi-layer transformer decoder를 사용한다.

Multi-headed Self-Attention 연산을 모든 입력 토큰들에 대해 수행한 다음, 해당 결과를 position-Wise Feedforward layer의 입력으로 들어간다.

  • U : 토큰의 context vector
  • We : 토큰 임베딩하는 metrix
  • Wp : Position Embedding Matrix
  • transformer : Decoder 부분만 사용(Decoder만 12개로 구성)

요약 : 문장 단위로 토근화 → Unsupervised Pre-Training을 거쳐 Token Embedding Matrix 생성

2. Supervised Fine-Tuning

이전 Pre-Training 작업을 완료했다면, Token Embedding Matrix가 생성이 되었을 것이다. 그리고 이 파라미터들은 목적 Task에 맞게 Fine-Tuning 하게 된다.

본 논문에서는 Labeling Dataset을 C라고 가정한다.

입력 X 값들은 Pre-Trained 된 모델의 입력으로 들어가서 Transformer의 마지막 불록의 h로 나오게 된다.

그리고 해당 출력은 Wy를 파라미터로 하는 linear output layer의 입력으로 제공이 되면서 레이블 Y를 예측하게 된다.

이것은 또한 Objective를 maximize 하도록 따르게 된다.

LM을 Fine-Tuning 하는 과정에서 보조 Objective Funciton을 사용했을 때, Supervised Model의 Generalization을 향상시키고 빠르게 수렴할 수 있도록 하는 장점이 있다고 한다. 그래서 아래와 같은 Auxiliary Objective를 사용한다.

(Fine-Tuning 에 필요한 파라미터는 Wy와 Delimiter token들을 위한 임베딩 뿐이다.)

3. Task-Specific Input Transformations

task 들 마다, 구조화된 입력을 해야하는 경우가 있다.

Task 입력 구조 ≠ Pre-Trained 입력 구조와는 다르다. → Task-Specific 한 Customization을 해야한다.

각각 Task 마다 구조화하는 방법들

  1. Textual Entailment Task : Premise (p) 와 Hypothesis (h) 를 delimiter token($)로 구분한다.
  2. Similarity Task : similarity task 같은 경우는, 문장 순서와는 상관 없기 때문에 모든 경우를 고렿나다. 그래서 A$B, B$A의 입력으로 독립적인 h를 생성한다.(linear output layer에 들어가기 전에 element-wise로 add 된다.)
  3. Question Answering and Commonsense Reasoning Task : context document(Z), question(Q), set of possible answer{ak} 가 주어진다. 모든 가능한 ak(답변)을 본문, 질문과 함께 하나씩 연결해서 [z;q;ak] 의 representation을 생성한다. 각 representation은 독립적이기 때문에 모델의 입력으로 들어가고 Softmax에서 결과를 예측한다.

Model 설명

GPT 모델은 Transformer 구조를 따른다.

12-layer 의 Decoder - Only Transformer를 Masked self-attention head를 이용해서 구현

Optimizer : Adam

Max Learning Rate : 2.5e-4(처음 2000 update동안 증가시키다, cosine schedule에 따라 서서히 0으로 수렴하도록 함)

Epoch : 1000

Mini-Batch : Random 64개 samples

Ecoding : Byte Parir Encoding

Regularization : L2

Activation Function : GELU


Experiments

Dataset

  1. 'BooksCorpus Dataset'을 사용해서 LM을 학습했다. 7000개가 넘는 발행하지 않은 책들이 있고, 긴 문장들이 포함되어 long-range information 학습에 적합했다.
  2. '1B Word Benchmar'를 사용해서 대안적인 데이터셋을 구축했다.

Fine Tuning

동일한 하이퍼 파라미터로 진행했다.

dropout : 0.1

Learning rate : 6.25e-5

BatchSize : 32

Epoch : 3

실험들

NLI (Natural Language Inference)

: 두 쌍의 문장에 대해서, 두 문장의 관계가 entailment, contradiction, neutral 인지 판단하는 Task. (lexical entailment, coreference, lexial/semantic ambiguity 것들 때문에 해결하기 어려운 요소들이 있어 어려운 문제이다.)

5개의 Dataset으로 측정했다.

Question answering and commonsense reasoning

: RACE dataset을 사용했다. 이유는 다른 것들에 비해 reasoning 유형의 질문들이 더 많이 있을 것으로 판단했다고 한다. 또한, Long-Range Context를 필요로 하는데 더 적합하다고 판단했다고 한다. Story Cloze Test로 검증을 진행했다.

Semantic similarity

: 두 문장이 얼마나 유사한지 판단하는 Task. 이 Task는 rephrasing, negation, syntatic ambiguity 등을 인지하는 능력을 필요로 한다. 데이터 셋으로는 MRPC, QQP, STS-B 를 사용했다고한다.(모두 최고의 성능을 제공했다고 함.)

Classification

: 두 종류의 Dataset으로 판단하였으며 CoLA에 대해서 이전 모델들에 비해 최고의 성능을 제공했다고 하며, SST-2 같은 경우는 최고 성능에 가까웠다고 한다.

결론 : 다양한 크기의 데이터 셋과 Task에 대해 대체적으로 좋은 성능을 제공할 수 있었다고 한다. 그래서 "Generative" 라는 의미가 담겨있다.

Number of Transfer Layer & Pre-Training Updates

왼쪽 표 : 다양한 갯수의 Transfer Layer를 통해서 성능을 확인했다. (Unsupervised Pre-Training → Supervised Target Task 로 Transfer 할 때 성능을 분석) 이로써 Transfer 하는 층의 개수가 늘어나면 성능이 좋아진다는 것이 결론이다. 또한 이를 보아 Pre-Trained Model의 각각의 Layer에서는 Target Task와 관련된 다양한 특성을 각각에 맞게 학습한다는 것을 의미한다.

오른쪽 표 : Pre-Training 만의 성능을 확인한다. Pre-Training을 많이 하면 할 수록 즉, Update를 할 수록 Task의 성능이 좋아진다는 것을 볼 수 있다. → 다양한 NLP Task를 위한 특성을 학습한다는 것을 의미한다.

  1. Transformer w/aux LM(full) vs Transformer w/o aux LM
  2. → 데이터 셋이 큰 경우 보조적 Objective의 영향을 많이 받지만, 작은 데이터 셋의 경우는 영향을 적게 받는다.
  3. Transformer w/aux LM vs Transformer w/o pre-training
  4. → 기존 모델을 바로 Supervised Model에 학습한 것과 비교했을때, Pre-Training을 진행하지 않는 경우는 성능이 떨어지는 것을 볼 수 있다.
  5. Transformer w/aux LM vs LSTM w/ aux LM
  6. → LSTM(2048 unit)을 쓴 경우 평균적으로 성능 점수가 하락한 것을 볼 수 있다.
반응형