본문 바로가기
논문 리뷰/NLP

[X:AI] GPT-1 논문 리뷰

by hyeon827 2024. 2. 11.

Improving Language Understanding by Generative Pre-Training

논문 원본 : https://www.cs.ubc.ca/~amuham01/LING530/papers/radford2018improving.pdf

 

Abstract

  • 자연어 이해(NLU)는 텍스트 함의(textual entailment), 질문 응답(question answering), 의미 유사도 평가(semantic similarity assessment), 문서 분류(document classification) 등 다양한 작업을 포함
  • 기존에는 이런 작업을 수행하려면, 각 작업마다 특별히 설계된 모델이 필요
  • 하지만 문제는, 그런 모델을 훈련하려면 라벨이 있는 데이터가 필요한데, 이런 데이터가 부족하다는 점
  • 그래서 본 연구팀은 두 가지 방법을 결합한 새로운 접근법 제안
    • generative pre-training : 많은 양의 레이블 없는 텍스트 데이터를 사용해 언어 모델을 먼저 훈련. 이때는 단순히 텍스트를 이해하고 생성하는 모델을 만듦
    • discriminative fine-tuning : task를 인식하는 입력 변환(input transformations)을 사용하여 모델 아키텍처를 최소한으로 변경하면서도 효과적인 전이를 달성

 

1. Introduction

  • 현재 NLP에서 딥러닝 모델은  많은 양의 labeled data가 필요
  • 하지만 라벨 작업은 시간과 비용이 많이 들어 raw data(원시 텍스트)로부터 효과적으로 학습할 수 있는 능력이 필요
  • 또한, 충분한 지도 학습 데이터가 있는 경우에도 비지도 방식으로 좋은 representation을 학습하면 성능을 크게 향상시킬 수 있음
  • 그러나 unlabeled data를 사용해 단어 수준을 넘는 유용한 텍스트 표현을 학습하는 데 크게 2가지 어려움을 가짐
    • 첫 번째는 target task를 모르기 때문에 어떤 유형의 optimization objectives(목적 함수)가 효과적인지 알 수 없음
    • 두 번째는 학습된 representations을 target task에 가장 효과적으로 transfer하는 정해진 방법이 없음 
  • 이러한 불확실성으로 언어 처리를 위한 효과적인  semi-supervised 학습 개발을 어렵게 함
  • 본 논문에서는 unsupervised pre-training과 supervised fine-tuning을 조합하여 언어 이해 작업에 대한 semi-supervised  접근 방식을 탐구
    •  unsupervised pre-training : 라벨이 없는 대규모 텍스트 데이터를 사용해서, 모델이 텍스트의 기본 구조와 언어적 패턴을 학습
    • supervised fine-tuning : 목표 작업(예: 질문 응답, 문서 분류)에 맞춘 라벨 데이터로, 사전 학습된 모델을 조금 조정
  • 목표는 다양한 task에 적응할 수 있는 보편적인(universal) 표현을 학습
  • 목표 작업(예: 질문 응답)에 맞게 입력 데이터를 변형하는 방식도 도입
    • 이를 통해 모델 구조를 복잡하게 바꾸지 않아도, 효과적으로 작업에 적응할 수 있도록 
  • 본 연구에서는 Transformer 모델 구조 사용
    • Transformer는 텍스트의 긴 맥락도 잘 이해할 수 있어, 기계 번역, 문서 생성, 구문 분석 등에서 뛰어난 성과를 냄
    • 기존의 순환 신경망(RNN)보다 더 효과적으로 텍스트를 처리
  • 또한, 사전 학습된 모델의 zero-shot 행동(사전 학습만으로 목표 작업에 적용)을 4가지 설정에서 분석한 결과, 목표 작업에 유용한 언어적 지식을 습득했음을 확인

 

 

2. Related Work

 

   Semi-supervised learning for NLP

  • 초기 연구들은 레이블이 없는 데이터를 활용해 단어 수준이나 구 수준의 통계를 계산하고 이를 지도 학습 모델의 특징(feature)으로 사용
  • 최근에는 레이블이 없는 데이터로 학습한 단어 임베딩이 다양한 작업에서 성능을 개선하는 데 도움
    • 하지만 이런 접근은 주로 단어 수준 정보만 전달하며, 우리가 목표로 하는 고차원적인 의미(Higher-level semantics)를 포착하지는 못함
  • 더 최근의 연구들은 레이블이 없는 데이터로부터 단어 수준을 넘어선 의미(Phrase-level 또는 Sentence-level Embeddings)를 학습하고 활용하는 데 중점을 둠

   Unsupervised pre-training

  • 지도 학습 목표를 수정하는 대신 모델의 좋은 초기화 지점을 찾는 데 초점이 맞춰져 있음
  • 본 연구와 가장 밀접한 접근은 언어 모델링(Language Modeling) 목표로 신경망을 사전 학습(Pre-training)한 후, 지도 학습 데이터를 사용해 파인튜닝(Fine-tuning)하는 것
  • 과거 연구들은 LSTM 같은 모델을 사용했는데, 이는 짧은 문맥만 이해할 수 있음
  • 반면, 본 연구에서 사용된 Transformer 모델은 더 긴 문맥을 이해할 수 있어서, 문장의 복잡한 구조까지 잘 학습

   Auxiliary training objectives

  • 주된 task(예: 텍스트 분류, 시퀀스 태깅)의 성능을 향상시키기 위해, 관련된 작은 추가 task(예: 품사 태깅, 개체명 인식, 언어 모델링 등)을 함께 학습시킴
  • 보조 학습 목표가 성능 향상에 도움을 줄 수 있지만, 비지도 사전 학습(Unsupervised Pre-training)만으로도 충분한 언어적 정보를 학습하고 목표 작업을 효과적으로 수행할 수 있음을 입증

 

 

3. Framework

 

   3.1 Unsupervised pre-training

  • unsupervised 말뭉치 U = {u1, . . . , un}가 주지면 standard LM 목표를 사용하여 아래와 같은 likelihood 최대화
  • k는 context window 사이즈
    • 즉, 현재 단어를 예측하기 위해 이전 k개의 단어를 참고한다는 의미
  • P는 조건부 확률, Θ는 neural network의 파라미터
  • 모델 학습은 SGD 사용 

 

  • 본 논문에서는 Transformer의 Decoder 구조를 변형하여 언어 모델에 사용(multi-layer Transformer decoder)
    • encoder layer가 없기 때문에 encoder-decoder attention 제외
  • 첫 번째 hidden state는 입력 컨텍스트 토큰에 token embedding matrix(We)를 곱한 후 positional embedding matirx를 (Wp)를 더하여 생성
  • 해당 첫 번째 hidden state에 대해 Masked Multi-Head Self-Attention 연산을 적용한 후, 위치별 Feed Forward Layer를 통해 다음 hidden state를 생성 
  • 그 다음 decoder block 수만큼 통과하고 position-wise feed-forward layers(WeT)를 거쳐 sofmax로 확률값 구함

https://github.com/pilsung-kang/text-analytics?tab=readme-ov-file

 

   

   3.2  Supervised fine-tuning

  • pre-trained model에 linear layer추가하여 각 task 별 fine-tuning 진행
  • 데이터셋 C은 입력 x1,x2, ... , xm과 label y로 구성
  • 입력 데이터를 사전 학습된 모델에 전달하여 최종 Transformer 블록의 hidden state hlm을 얻은 다음, 추가된 linear layer (파라미터 Wy) 를 사용하여 를 예측
    • Transformer의 마지막 레이어에서 입력 시퀀스 마지막 토큰 m에 대한 hidden state 값

 

  • 위의 식에 따라서 아래의 목표함수를 최대화

 

  • 추가적으로 auxiliary objective를 추가
  • 구체적으로 labeled 데이터셋에 대한 language model의 fine-tuning과 supervised model의 목적함수가 같이 극대화하면 크게 2가지 이점을 볼 수 있음
  • 1) supervised model에 일반화 성능 향상
  • 2) 수렴 속도를 가속
  • 최종적으로 아래의 objective를 optimize를 함(가중치 λ 사용)

 

   

   3.3 Task-specific input transformations

  • GPT-1의 traversal-style approach은 복잡한 구조를 가진 input(문장 쌍, 문서-질문-답변 등)을 단순한 텍스트 시퀀스로 변환하여 transfer learning을 최소한의 변화로 가능하게 함

 

 

   Textual entailment

  • 전제 p와 가설 h 토큰 시퀀스를 delimiter token($)로 연결

   Similarity

  • 비교 대상인 두 문장의 고유한 순서가 없으므로 Text 1, Text2의 순서를 바꿔가며 Transformer로 전달
  • 두 문장은 delimiter token($)으로 연결
  • 두 입력의 representation hlm을 생성하기 위해 각각을 독립적으로 처리한 후 linear layer에 들어가기 전에 더함

   Question Answering and Commonsense Reasoning

  • context document z와 question q, 가능한 답변 집합 {ak}가 주어짐
  • z,q, ak를 하나로 연결하고, 그 사이에 delimiter token($)을 추가하여 입력 시퀀스를 만듦
  • 이러한 각 입력 시퀀스를 모델이 독립적으로 처리
  • 마지막으로, softmax 레이어를 통해 가능한 답변에 대한 확률 분포를 생성하여 가장 적합한 답을 선택

 

 

4. Experiments

 

   4.1 Setup

  • 12-layer decoder-only transformer 사용
  • Hidden size : 768
  • Attention heads : 12
  • Feed-forward inner size : 3072 
  • Activiation : GeLU
  • 학습 데이터 : 512 token씩 잘라 64개의 mini-batch로 100 epcoh 학습

 

   4.2 Supervised fine-tuning

  • 대부분의 경우 3 epoch만에 학습 완료
  • Natural Language Inference

  • Question & Answering

 

  • Semantic Similarity & Classification 

 

 

5. Analysis

  

  Impact of number of layers transferred

  • Decoding block의 layer 수의 증가에 따른 성능 향상 

   Zero-shot Behaviors

  • pre-training이 진행됨에 따라 각 tasks의 성능이 향상

 

   Ablation studies

  • auxiliary object가 큰 데이터 셋에서는 성능 향상에 도움이 되지만 작은 데이터 셋에서는 아님
  • 추가로, transformer 구조 대신 LSTM 모델을 사용했을 때 MRPC 데이터 셋을 제외하고는 모두 transformer보다 낮은 성능 기록
  • 또한, pre-training을 했을 때 보다 하지 않았을 때 전체적으로 성능이 감소

 

 

6. Conclusion

  • 본 연구는 generative pre-training과 discriminative fine-tuning을 통해 단일 task에 종속되지 않은 모델(task-agnostic model)로 강력한 NLU를 달성할 수 있는 프레임워크 소개 
  • 문서 분류, 문장 간 유사성 평가, 질의 응답, 문맥적 함의 추론 등 다양한 분야에서 성공적으로 fine-tuning이 이루어졌으며 12개 중 9개 task에서 SOTA 달성

 

 

7. Reference

https://lcyking.tistory.com/entry/%EB%85%BC%EB%AC%B8%EB%A6%AC%EB%B7%B0-GPT-1Improving-Language-Understandingby-Generative-Pre-Training%EC%9D%98-%EC%9D%B4%ED%95%B4

https://www.youtube.com/watch?v=o_Wl29aW5XM

'논문 리뷰 > NLP' 카테고리의 다른 글

[X:AI] ELMo 논문 리뷰  (0) 2024.03.25
[X:AI] BERT 논문 리뷰  (0) 2024.02.15
[X:AI] Transformer 논문 리뷰  (0) 2024.02.10
[X:AI] Attention 논문 리뷰  (0) 2024.02.04
[X:AI] Seq2Seq 논문 리뷰  (0) 2024.02.02