본문 바로가기
인공지능 개발하기/기술 & 논문 리뷰

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

by 선의공 2024. 5. 29.

 

논문: https://s3-us-west-2.amazonaws.com/openai-assets/research-covers/language-unsupervised/language_understanding_paper.pdf

 

 

 

이번 포스팅은 요즘 사람들이 정말 많이 쓰는

인간의 언어를 자연스럽게 생성해서 답변을 해주는

GPT(Generative Pre-Trained Transformer)의 첫번째 논문인

2018년 OpenAI에서 발표한 GPT-1 Improving Language Understandingby Generative Pre-Training에

대한 논문 리뷰를 진행하겠습니다.

 

 

해당 글을 참조했습니다.

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

 

[논문리뷰] GPT-1(Improving Language Understandingby Generative Pre-Training)의 이해

Abstract https://www.cs.ubc.ca/~amuham01/LING530/papers/radford2018improving.pdf 자연어 분야는 본문 요약, Q & A, 유사성 평가, 문서 분류 등 여러 분야에서 발전해 왔습니다. unlabel 된 text는 아주 많지만, 특정한 task

lcyking.tistory.com

 

https://kikaben.com/gpt-generative-pre-training-transformer-2018/

 

KiKaBeN - GPT: Generative Pre-Trained Transformer (2018)

The First Version

kikaben.com

 

 


Introduction

 

NLP(Netural Language Processing) 분야에서는 Labeling된 데이터가 부족합니다.

논문에서는 unlabel 데이터(raw text)를 최대한 활용해서 지도 학습에 대한 의존성을 완화하려 했습니다.

미리 unlabel 데이터를 이용해서 representation(표현)을 학습해 놓으면 이 후 상대적으로 적은 label 데이터를 학습할 때 

효율이 더 오르는 효과가 있다고 설명합니다.

 

 

해당 방식은 2단계로 구성됩니다.

 

1. Unsupervised Pre-training(비지도 사전 학습)

2. Supervised Fine-tunning(지도 미세 조정)

 

 

모델의 구조 자체는 Transforemer의 decoder 구조를 사용했습니다.

다만 중간의 CrossAttention 층을 제거한 구조입니다.(encoder가 없기 때문)

 


 

Unsupervised Pre-training 

 

해당 단계는 언어의 구조를 파악하고, 텍스트로 구성된 데이터세트의 패턴을 

포착하는 훈련을 합니다.

 

언어 자체의 이해도를 높이는 과정이라고 생각하면 됩니다.

모델은 이전 단어의 context(문맥)를 이용해 다음 Sequence의 단어를 예측합니다.

 이를 Generative pre-training(생산적 사전학습)이라고 합니다.

스마트폰에서 다음 단어를 추천해주는 것과 비슷합니다.

unlabel 데이터(raw text)를 모델을 사전 학습할 때 단어(토큰)를 다음 디코더에 전달해

다음 단어(토큰)에 대한 확률을 예측합니다.  

 

아래의  GPT 구조에서 Text Prediction에 해당합니다. 

 

 

확률을 구하는 과정을 수식으로 표현하면 아래와 같습니다.

u는 토큰들을 나타냅니다. k는 context window(모델이 최대 처리할 수 있는 단어 길이)입니다.

조건부 확률 P는 다음 단어의 확률을 나타내는데 θ를 사용해서 계산합니다.

θ는 W(가중치)와 b(바이어스)를 포함하고 있습니다.

결국에 구해주는 L1(U)는 Likelihood(우도)를 최대화하는 로스로 학습됩니다.

 

여기 필요한 P(u)의 값은 아래의 식으로 구해집니다.

위의 모델 구조를 보면 기존 Transformer와 동일한 구조를 거칩니다.

U는 단어(토큰) 자체,

We는 Word Embedding, Wp는 Positional Encoding을 나타냅니다.

 

transformer_block은 Transformer의 decoder의 구조를 나타냅니다. hl-1은 이전 단어입니다.

 

 

 

 


Supervised Fine-tunning

 

discriminative fine-tuning(차별적 미세조정)이라고 합니다.

 

지도학습(supervised learning)이기 때문에 라벨링된 데이터가 필요합니다.

 

 

 

 

 

 

 

Unsupervised Pre-training을 거치면서 언어에 대한 이해를 하고 있습니다.

그렇기 때문에 적은 데이터로 좋은 효율을 낼 수 있게 됩니다.

 

Unsupervised learning의 로스인 L1은 확률을 높이는 로스이므로

로스가 높아질수록 모델의 성능이 좋고,

L2는 지도학습에 대한 로스이므로 로스가 낮아질수록 모델 성능이 좋습니다.

여기서 람다값을 줌으로서 두 로스 사이의 성능 조절을 하면서(모델 표현에 대한성능은 좀 높이고, 예측에 대한 성능은 좀 줄인다..등등)

일반화를 향상(모델이 데이터 세트를 더 잘 학습)시키고 수렴을 가속화(손실을 빠르게 감소)하는 이점을 얻습니다.

 

 


 

input transformations(입력 변환)

 

GPT는 최소한의 변화로 여러 task를 다룹니다.

 아래와 같은 구조화된 input 구조로 변경해 여러 task에 대한 fine tuning을 가능하게 합니다.

 

 

모델 자체에서 Linear는 선형 레이어를 나타냅니다. 그림에는 나와있지 않지만

마지막 레이어 이후에 소프트맥스가 붙어 출력됩니다.

 

Classification(분류) : 입력 데이터는 기존의 Transformer 입력과 동일하게 Start token(시작을 알리는 토큰), End(Extract) Token(끝을 알려주는 토큰), text로 구성됩니다.

 

Textual Entailment(포함관계) : 포함관계를 나타냅니다. (불독은 동물이다.)

입력 데이터는 Start token, Premise(a text),  Delimeter token($ - 구분 토큰), Hypothesis(a text), End(Extract) Token로 구성됩니다.

Premise(전제)와 Hypothesis(가정) 두 시퀀스 토큰을 Delimeter token($)으로 나눠줍니다.

모델은 두 시퀀스 토큰이 포함관계인지 판단합니다.

 

Similarity(유사성) : 유사성을 구분합니다. ("고양이는 소파 위에 있다" , "고양이는 소파 위에 앉아있다"간의 유사성)

입력 데이터는 Start token, Text1(비교할 Text1), Text2(비교할 Text2), Delimeter token($ - 구분 토큰), End(Extract) Token로 구성됩니다.

각 Text1, Text2가 Transformer를 거친 결과를 Concat해서 선형레이어에 전달합니다.

 

Multiple Choice(다중 선택) : 문제 문맥와 여러개의 답변 후보 중 가장 적절한 답변을 선택합니다.

Start token, Context(문제 문맥 텍스트), Answer1, Answer2, Answer..n(여러개의 답변 선택지) , Delimeter token($ - 구분 토큰), End(Extract) Token로 구성됩니다.

모든 레이어를 거친 후 가장 높은 점수의 답변이 선택됩니다.

 


 

Experimental Results

 

논문에서는 12개의 트랜스포머 디코더 레이어를 사용했다고 합니다.

Unsupervised pre-training에 7000개의 미출판 도서가 포함된 BookCorpus dataset을 사용했습니다.

 

fine-tuning 을 위해

Natural Language Inference: SNLI, MultiNLI, Question NLI, RTE, SciTail

Question Answering: RACE, Story Close

Sentence Similarity: MSR Paraphrase Corpus, Quora Question Pairs, STS Benchmark 

Classification: Stanford Sentiment Treebank-2, CoLA 

데이터 셋을 사용했습니다.

 

 

natural language inference task에 대한 결과입니다.

 

question answering and commonsense reasoning에 대한 결과입니다.

다른 모델보다 뛰어난 성능을 자랑한다고 논문에서는 설명합니다.

 

 


Analytics

 

왼쪽 차트는 

RACE Dev, RACE Train, MultiNLI Dev, MultiNLI Train 데이터셋을 사용했을 때의

Transformer의 decoder 레이어 수에 따른 정확도를 차이를 보여줍니다.

최대 레이어가 12개이고, 더 많은 레이어가 추가될 수록 정확도가 올라가는 것을 볼 수 있습니다.

 

오른쪽 차트는 fine-tuning없이 모델을 사용했을 경우의 Performance를 0~1 사이 치수로 나타내

fine-tuning으로 훈련 없이 새로운 데이터를 잘 추론하는 제로샷에 대한 성능을 판단합니다.

generative unsupervised pre-training을 적용한 해당 모델의 성능이 그래프의 실선이며

LSTM 모델의 성능이 그래프의 점선입니다.

 

generative unsupervised pre-training을 적용한 해당 모델이

제로샷에서 훨씬 좋은 Performance를 보여줌을 나타내고 있습니다.