본문 바로가기

AI/Paper - Theory

[GPT-1 논문 리뷰] - Improving Language Understanding by Generative Pre-Training

반응형

*GPT-1를 위한 논문 리뷰 글입니다! 궁금하신 점은 댓글로 남겨주세요!

(학기중이라 블로그를 자주 못 쓰는데.. 나중에 시간되면 ChatGPT도 정리해서 올릴께요. 일단 간단한 GPT부터..ㅎㅎ)

 

GPT-1 paper: https://s3-us-west-2.amazonaws.com/openai-assets/research-covers/language-unsupervised/language_understanding_paper.pdf

 


Contents

1. Simple Introduction

2. Background Knowledge: Transformer

3. Method

    - Unsupervised Stage

    - Supervised Stage

4. Result


Simple Introduction

ChatGPT

최근에 정말로 ChatGPT가 열풍이다. 

어느정도 인기가 있을 것이라고 예상했지만, 이렇게까지 화두가 될 줄은 상상도 하지 못하였다..

ChatGPT는 말 그대로 GPT를 시초로 점점 진화해 온 모델이다.

 

그렇다면 GPT가 무엇일까?

예전의 NLP분야에서 GPT와 BERT가 엄청 유명하였는데 OpenAI가 GPT-1,2,3를 계속 발표하면서 어느순간 BERT가 점점 인기에서 밀려나고(애초에 적용하는 분야가 다르지만..ㅎㅎ) 지금은 ChatGPT로 NLP분야의 시장을 잡아먹어 버렸다.

 

GPT-1의 구조에 대해서 한번 살펴보자!


Background Knowledge: Transformer

Transformer 논문 리뷰: https://kyujinpy.tistory.com/2

 

[Transformer 논문 리뷰] - Attention is All You Need (2017)

*Transformer 논문 리뷰를 위한 글이고, 질문이 있으시다면 언제든지 댓글로 남겨주세요! Transformer paper: https://arxiv.org/abs/1706.03762 Attention Is All You Need The dominant sequence transduction models are based on complex r

kyujinpy.tistory.com

 

Transformer의 등장으로 NLP 분야는 거의 99%(?) Transformer 기반의 network를 가지고 있다.

따라서 반드시 알아야 한다!

 

해당 논문 리뷰는 Transformer를 알고 있다고 가정하고 진행됩니다.


Method

Unsupervised Stage

maximize likelihood

GPT의 첫번째 단계는 Unsupervised pre-training이다.

NLP분야에서는 비지도 학습이 굉장히 중요한 역할을 하는데, 그 이유는 Text를 학습하기 위해서는 많은 양의 데이터가 필요하지만 특정한 라벨이 있는 데이터는 매우 적다.

 

따라서 처음에는 비지도 학습을 통해서 GPT를 사전 훈련시킨다.

 

Unsupervised pre-training을 학습하는 과정과 의미는 다음과 같다.

  • k size context window를 설정한다.
  • 특정한 단어가 만약 i번째라면 i-1 부터 i-k번째까지의 단어를 보고, i번째가 나올 가능성을 최대화하는 방법을 통해 라벨이 없는 데이터에서도 학습이 가능하도록 비지도 학습을 설계한다.
  • 즉, i번째 text가 나올 확률에 대해서 최대화 하는 것이기 때문에 maxmize likelihood(우도 최대화) 기법을 loss function으로 설정하여 학습한다!!!
  • SGD를 활용하여 backpropagation을 한다.

정리하면, Unsupervised learning을 통해서 대용량의 text 데이터를 Transformer decoder에 학습시켜서 LM(Language model)로 사전 학습을 한 것이다!

*GPT-1은 NLP분야에서 pre-trained의 사용에 대한 시작점을 알린 논문이다.


Transformer decoder

그렇다면 GPT는 어떠한 구조일까?

GPT와 같은 Task는 BERT와 다르게 Transformer decoder의 구조를 가지고 있다.

Transformer decoder 구조는 ChatGPT처럼 답변, 응답, 번역, 해석 등등의 분야에서 굉장히 좋다.

Encoder는 단어의 vector로 출력되는 반면, Decoder는 확률값으로 표현되기 때문에 어떤 token이 나와야할지 예측할 수 있다.


https://nlpinkorean.github.io/illustrated-transformer/

+) 위의 예시를 보면 쉽게 이해할 수 있을 것이다.


Supervised Learning

Fine-tuning

GPT는 비지도 학습 후에, supervised learning으로 넘어가는데, 여기서 pre-trained 모델의 장점을 살려서 linear+softmax의 layer만 추가하고 그 이전은 freeze시켜서 학습을 진행하여 fine-tuning으로 모델을 학습한다!

 

Supervised learning
Loss function2

Supervised learning에서는 라벨이 있는 데이터를 활용하여 학습을 진행한다.

매우 간단하게, linear output layer인 Wy를 추가하고 라벨에 대한 예측값을 만들어서 L2를 계산한다.

L2는 GPT-1이 학습하고자 하는 task에 대한 loss function이라고 할 수 있다.

 

Final loss function

최종적으로 Unsupervised learning때 이용했던 L1과 L2를 이용하여서 Fine-tuning을 진행한다.


GPT-1 Fine tuning


Result

- 여러 데이터셋을 이용하여 실험을 하였다.


https://hryang06.github.io/nlp/NLP/

+) 위의 사진을 바탕으로, 각각의 Taks가 무엇을 의미하는지 알 수 있을 것이다.


- 그때 당시에 여러 분야에서 SOTA를 달성했다.


- 2023.03.20 Kyujinpy 작성.

 

반응형