본문 바로가기
Deep Learning/NLP

GPT-1 (Improving Language Understanding by Generative Pre-Training)

BigJoo 2024. 3. 16.

논문 링크 - https://openai.com/research/language-unsupervised

 

Improving language understanding with unsupervised learning

We’ve obtained state-of-the-art results on a suite of diverse language tasks with a scalable, task-agnostic system, which we’re also releasing. Our approach is a combination of two existing ideas: transformers and unsupervised pre-training. These re

openai.com


 

 

0. Abstract

  • Natural Language Understanding은 다양한 task로 구성되어 있지만, 대부분의 데이터셋은 Unlabeled text corpus로 구성 되어있고, Labeled 데이터는 부족하여 train 모델이 적절한 성능을 발휘하기 어렵습니다.
  • 본 논문에서는 위와같은 Label 데이터의 부족을 해결하기 위해 Unlabeled text corpus에 대한 LM을 Unsupervised 방식으로 pre-training을 진행하고,각 task에 맞게 Fine-tuning하는 방식으로 성능 향상을 이루었습니다.
  • Fine-tuning중에 task-aware input transformation을 사용하여 model 구조를 최소한으로 변경하며 효과적인 Transfer-learning을 진행하였습니다.
  • 결과적으로, 특정 task에 구애받지 않고, 각각의 task를 위해 만들어진 모델들보다 뛰어난 결과를 얻었습니다.

 

 

 

 

 

1. Introduction

Unlabeled text에서 word-level 이상의 정보를 활용하는 것은 2가지 이유로 어렵습니다.

  1. transfer에 유용한 text representation을 학습하는데 어떤 optimization objective가 효과적인지 불분명
  2. 학습된 representation을 원하는 task에 효과적으로 전달하는 의견의 불일치

이러한 불확실성으로 NLP를 위한 효과적인 Semi-Supervised learning 접근법의 발전이 어려웠습니다.

 

 

본 논문에서는 다양한 task에 대해 변형없이 적용 가능한 보편적인 representation을 학습하는 것을 목표로 Unsupervised pre-training과 Supervised fine-tuning을 조합하여 Language Understanding에 대한 Semi-supervised learning 접근방식을 제시하였습니다.

  • Unlabeled data에 LM objective를 사용하여 모델의 초기 파라미터를 학습
  • 이후 task에 맞는 supervised objective를 사용하여 파라미터를 목표 task에 맞게 fine-tuning
  • 모델 architecture는 transformer decoder 구조를 사용 

 

 

 

 

 

3. Framework

3-1. Unsupervised Pre-training

대용량의 Unlabelled text 데이터를 Transformer의 decoder구조에 LM으로 Pre-trianing을 진행하는 과정입니다.

우선 size = k인 context window를 설정합니다. 예측하고 싶은 단어가 i번째에 있다면, i-1부터 i-k번째까지의 단어를 보고 i번째에 나올 가능성을 maximize하는 방법을 사용하여 Unlabeled 데이터를 학습할 수 있도록 설계합니다. i번째 text가 나올 확률을 최대화하는 것이기에 maximize likelihood 기법을 Loss Function으로 설정하여 학습을 진행합니다.

 

 

 

 

3-2. Supervised fine-tuning 

Unsupervised Pre-training을 통해 얻은 모델에서 Linear + Softmax Layer를 추가하여 fine-tuning을 진행합니다.

이번에는 Label Y가 있는 데이터를 사용하여 학습을 진행하고, Linear ouput layer인 Wy를 추가하여 Label에 대한 예측값을 계산하여 L2를 계산합니다.  L2를 maximaize하는 것이 원하는 task에 대한 Loss function입니다. 최종적으로는 L1과 L2를 결합하여 fine-tuning을 진행합니다.

 

 

 

 

 

4. Experiments

Natural Language Inference, Question Answering and Commonsense Reasoning, Semantic Similarity, Classification등 다양한 Task에서 SoTA를 달성하였습니다.

 

 

 

 

 

5. Analysis

5-1. Impact of number of layers transferred

왼쪽 그래프는 Transfer에 사용한 Layer개수에 따른 성능을 보여줍니다. Layer의 갯수가 증가할수록 성능이 좋아지는 것을 볼 수 있고, 이는 Pre-trained Information을 많이 사용할수록 Fine-tuning 성능이 좋다는 것을 의미합니다.

 

 

5-2. Zero-shot Behaviors

오른쪽 그래프는 Zero-shot 성능을 보여주는 그래프입니다. Pre-training을 많이 진행할수록 성능이 좋아지는 것을 확인할 수 있고, 이는 Pre-training과정이 대부분의 DownStream Task에 적합하다는 것을 의미합니다.

 

 

 

6. Conclusion

최근이 Posting했던 BERT는 Transformer의 Encoder구조만을 사용하여 성능 향상을 달성하였는데, 이번 GPT-1는 Transfomer의 Decoder구조만을 사용하여 성능 향상을 이루어냈다. 이는 Transformer가 엄청나다는 것을 대변하는 것 같다. 결국 Transformer구조를 사용해야 한다는 것은 높은 계산 Cost가 발생한다는 것ㅠ

댓글