[Paper Review] GPT-1 : Improving Language Understanding by Generative Pre-Training

2025. 1. 28. 15:27·Paper Review/NLP
GPT-1 : Improving Language Understanding by Generative Pre-Training (2018)
Alec Radford, Karthic Narasimhan, Tim Salimans, Ilya Sutskever(OpenAI)

 

오늘 리뷰할 논문은 2018년 OpenAI에서 GPT라는 이름으로 처음 발표한 논문이자, 트랜스포머의 디코더 구조를 활용하여 획기적인 비지도 사전학습 방법론을 제시한 GPT-1 : Improving Language Understanding by Generative Pre-Training 입니다! 논문 리뷰 시작하겠습니다! 😁

 

📌 Abstract & Introduction

본 논문에서는 기계번역, 텍스트 요약 등에 해당하는 NLP Task들이 아닌, 주로 언어의 맥락 자체를 이해하는 NLU, Natural Language Understanding Task를 다루고 있습니다. 논문에 등장하는 NLU Task는 총 4가지로 Entailment, QA, Semantic Similarity 측정, Classification이 있습니다.

 

 

논문 작성 당시 문제상황은 이러하였습니다. '지도학습을 하기 위해서는 라벨링된 Corpus가 필요하지만 이는 극히 일부이고 그대신 라벨링이 되어있지 않는 비라벨 코퍼스는 대규모로 존재한다.'

 

이 상황 내에서 본 논문의 저자들은 크게 아래의 2단계 단계별 프레임워크를 적용하여 자연어 이해 Task에 적용 가능한 Architecture를 고안하였습니다. 일종의 준지도 학습 방식으로, 다양한 Task에 적용되는 범용적인 언어표현을 생성한 뒤, 효과적으로 다운스트림 Task들에 전이하는 방식이 무엇일지 고민한 결과라고 볼 수 있겠습니다. 

 

(1) 비 라벨 대규모 코퍼스에서 모델을 Generative Pretraining 시키기

(2) 특정 Task에 맞게 Input을 전처리 한 뒤, 보조 모델을 붙여 앞서 Pretrained된 모델을 Task에 맞게 파인튜닝하기

 

Pre-training -> Fine-tuning

 

병렬 처리가 가능하여 계산 효율성이 높고, 장기 의존성을 효과적으로 처리하는 Transformer의 디코더 블록을 변형하여 베이스 Architecture로 활용하였으며, 해당 구조를 통해 위에서 언급한 4가지의 Task에서 눈에 띄는 성능 향상을 얻었습니다.

 

📌 Related Work

[Semi-Supervised Learning]

오늘 리뷰하는 GPT-1의 학습 방식이 일종의 준지도 학습에 해당합니다. 본 논문이 나오기 이전의 초기 접근 방식은 단어 수준의 통계, 어떠한 패턴 계산을 통해 이를 Supervised Learning에 활용하는 방식이었다면, 이 논문을 비롯하여 이후의 접근 방식은 범위를 구문, 문장, 문단 수준으로 확장하여 더 넓은 범위에서 문맥을 포착하고자 하는 목표 아래, 텍스트를 적절한 벡터로 매핑하는 방법론 연구가 주로 진행되었습니다.

 

[Unsupervised Pre-training]

비지도 사전학습은 준지도학습의 특수한 형태로, 비라벨 데이터를 활용하여 문장 구조, 문맥 등을 학습한 범용적인 문장 표현을 만들어 지도학습에 들어가기 이전, 즉 지도학습의 초기화 지점에서 이미 최적화된 표현을 가지고 학습을 시작함으로써 최적점에 더 빠르게 수렴하고 높은 성능을 달성할 수 있게끔 동작합니다.

 

GPT에서는 Autoregressive한 다음 단어 예측을 사전 학습의 목표로 삼고 있다고 봐주시면 되겠습니다.

 

GPT와 유사하게 사전학습을 진행한 연구가 사전에 있었으나, 당시 연구에서는 베이스 구조로 LSTM을 활용하였기 때문에, 장기 의존성 처리에 좋지 않아 넓은 범위의 문맥을 잘 처리하지 못하는 결과를 보였다고 합니다.

 

📌 Framework

GPT-1 Architecture

 

 

[비지도 사전학습]

라벨이 없는 데이터셋에서의 사전 학습을 위해 GPT에서는 다음 토큰 예측이라는 언어 모델링 목표를 활용하였습니다.

Conditional Probability

 

위의 수식에서처럼 특정 대규모 Unlabeled Corpus가 주어졌을 때 특정 시점 이전까지의 토큰들을 활용해서 특정 시점의 토큰을 예측하는데, 토큰이 등장할 log likelihood 조건부확률을 최대화하기 위한 파라미터 ⊖를 Stochastic Gradient Descent를 통해 최적화하여 찾는 과정으로 보시면 되겠습니다. k값의 크기를 조정해서 이전 몇개 시점의 단어를 활용할지 Context window의 크기를 임의로 조정해 줄 수 있습니다.

 

또한, 위의 전체 구조에서 보이시는 것과 같이 GPT-1에서는 12 layer의 트랜스포머 디코더 블록을 활용합니다. 

Decoder

 

초기 입력 문장을 임베딩 가중치행렬 We와 곱해 임베딩한 후, 토큰의 순서 정보를 보전해주는 포지셔널 인코딩 벡터 Wp를 추가해주는 것 까지는 기본 트랜스포머의 입력방식과 동일하고, 디코더 블록도 거의 동일한데 GPT-1에서는 인코더를 활용하지 않기 때문에 중간의 인코더-디코더 Multi-head attention은 삭제하고, 다음 단어 예측 목표에 맞게 앞단의 Masked Multi-head attention만 활용합니다. Feed-Forward 신경망과 정규화, Skip Connection 구조도 마찬가지로 동일합니다. 최종 Output은 12 layer를 모두 거친 후 나온 최종 hidden state에 앞단과 공유하고 있는 입력 임베딩 행렬의 전치 행렬을 곱하여 다시 입력 형태로 역임베딩한 후 Softmax를 취해 다음 단어의 확률 분포로 계산되어집니다.

 

[지도 학습]

데이터셋은 {x1,x2,x3,... xm}과 그에 해당하는 라벨 y로 구성되어 있다고 할 때, 입력 시퀀스를 위처럼 사전학습된 모델에 넣어 최종 hl에 해당하는 Context Vector를 얻습니다. 이를 Task에 맞는 선형층과 곱한 후 Softmax를 취해 아래 수식과 같이 Output y가 나올 확률분포를 얻습니다.

지도학습의 조건부 확률

 

그렇다면 지도학습의 학습 목표는 아래 수식과 같이 m까지의 입력 시퀀스가 들어왔을 때 y라는 정답을 맞출 조건부 확률을 최대화하는 것이 되겠습니다.

지도학습의 학습목표

 

최종적으로는 L2 목표에 위의 L1 언어 모델링 목표를 보조로 추가하는 것이 성능 개선에 도움을 준 것을 확인하여 아래와 같이 최종 지도 학습 목표를 고안하였다고 합니다. 람다는 본 목표와 보조 목표간 중요성의 비중을 조절하며, 학습 가능한 파라미터로도 지정 가능하여 학습을 통해 동적으로 최적화 될 수 있습니다. 

최종 지도학습 목표

cf) 왜 언어 모델링 목표를 뒤에 추가하는 것이 좋은 성능과 연결될까?
찾아보니 L1은 일종의 정규화 Term으로도 작용하여 전체 Architecture가 특정 Task에 너무 편향되는 것을 막고, 언어 모델링 하의 일반적인 문맥, 문법 패턴 등에 대한 Loss term을 추가함으로서 모델의 과적합을 방지하고 일반화 성능을 높이는 효과를 가져온다고 합니다.

 

[입력 형식 변환]

입력 형식 변환

 

사전 학습 모델의 학습은 연속적인 Sequence, 즉 토큰들이 쭉 나열되어 있는 Corpus에서 텍스트를 학습하는데 반해, 특정 다운스트림 Task들은 구조화된 입력 형식이 필요합니다. QA가 질문-응답 쌍으로 구성되어야 하는 것처럼 말입니다. 이러한 구조화된 입력을 그대로 활용하려면 사전학습 Architecture 역시 그 구조화된 입력을 받기 위해 매 Task마다 조금씩 수정되어야 하는데, 범용성을 목표로한 사전 학습 모델의 설계 철학과는 맞지 않는 부분을 보입니다.

 

따라서, 본 논문에서는 사전학습 모델의 Architecture를 수정하는 대신, 특정 Task의 입력 문장을 연속적인 시퀀스로 변형하는 전처리 과정을 통해 모든 Task에 동일한 사전학습 모델을 그대로 활용할 수 있도록 하는 방식을 제안합니다.

 

예를 들어 위의 그림에서 세번째에 해당하는 문장 간 유사도 측정 Task의 경우, 문장의 앞뒤로 시작, 끝 토큰을 매핑하고, 중간에 구분자 토큰을 두어 하나의 연속적인 시퀀스로 형식 변환 과정을 거친 후에 이를 사전학습 디코더 블록에 투입합니다.

 

📌 Experiments

[Dataset]

데이터셋으로는 7000개 이상의 다양한 장르의 책에 해당하는 BookCorpus 데이터셋을 활용하며, 이는 긴 연속적인 텍스트를 포함하고 있어 장기 의존성 학습에 좋다고 합니다.

- 단어 사전 구성 : Byte-Pair 인코딩 활용

- FtFy 라이브러리로 Raw text data 클렌징 진행

- Spacy 토크나이저 활용 토큰화 진행

 

[Model]

- 12 layer의 Transformer 디코더 블록 활용

- Attention head = 12

- hidden state dimension = 768

- Feed Forward Neural Network dimension = 3072

- 학습된 포지셔널 인코딩 사용

 

[Pre-Training]

 - Adam Optimizer 활용, 2000 step까지 선형 증가 시킨 후 Cosine Annealing

- Epoch = 100, Batch size = 64

- Sequence Length = 512

- N(0, 0.02)로 가중치 초기

- w=0.01의 L2 정규화

- GELU 활성화 함수 사용

- Residual Connection, Embedding, Attention 드롭아웃 0.1

 

[Classification & Semantic Similarity]

Classification은 말그대로 텍스트를 분류하는 Task로, CoLA 데이터셋은 문장의 문법 오류를 구분하는 Task에 활용되며, SST2 데이터셋은 감성분석에 활용됩니다. Semantic Similarity 역시 말 그대로 두 입력 문장이 의미론적으로 유사한가를 정량적으로 측정하는 Task입니다. SST2와 MRPC 데이터셋을 제외하고 전 벤치마크에서 SOTA를 달성하였습니다.

Classification & Semantic Similarity

 

[NLI]

Natural Language Inference의 약자로, 주로 전제와 가설을 기반으로 그 관계를 Entailment(참), Contradiction(거짓), Neutral(중립)으로 추론하는 영역입니다. 아래 그림의 예시를 참고하시면 좋을것 같습니다.

 

NLI Benchmark

 

NLI 벤치마크 테스트에서도 파인튜닝된 GPT가 5가지 테스트에서 SOTA를 달성한 모습을 볼 수 있습니다.

 

[Question Answering]

질문에 대한 응답을 생성하는 Task이며 데이터셋은 주로 중고등학교 영어 시험에서 발췌했다고 합니다.

Question Answering Benchmark

 

Question Answering Task에서는 모든 데이터셋에서 SOTA를 달성하였습니다. 장기 의존성을 잘 처리하는 모습이 잘 관찰 되었다고 합니다.

 

📌 Analysis

 

왼쪽의 그래프를 보면, RACE 데이터셋과 MultiNLI 데이터셋에 대해서 사전 학습 모델의 레이어를 깊게 쌓을수록 다운스트림 Task 성능이 좋아지는 모습을 관찰 할 수 있지만, 12 레이어 언저리에서 성능이 어느정도 수렴하는 것으로 보입니다. 따라서, 본 논문에서도 계산량과 성능의 최적점인 12레이어의 디코더 구조를 기본 구조로 채택하지 않았나 추측해볼 수 있었습니다.

 

또한, 우측 그림을 통해 Transformer의 활용했을 때의 성능이 기본적으로 LSTM을 활용했을 때보다 모든 Task에서 좋았음을 파악할 수 있습니다.

 

[Ablation Studies]

Ablation Study 결과

 

언어모델링 보조 목표와 파인튜닝을 모두 진행한 맨 위의 모델을 베이스로 개별 요소들을 변형해가며 추가 실험을 진행하였습니다.

 

사전학습을 제거한 트랜스포머의 경우, 평균 Score가 15정도 하락할 정도로 사전학습의 중요성이 두드러졌으며, 또한 보조 목표를 제거했을때는 특정 QQP 데이터셋과 NLI Task에서는 약간 성능이 하락했지만, Classification과 전반적인 QA Task에서는 성능이 소폭 상승하였습니다. Task 자체 특성에 따라 일반화 필요 정도가 다르며, 전반적으로 큰 데이터셋에서 보조 목표 추가의 효과가 있음이 관찰되었습니다. 

 

📌 Conclusion

GPT에서는 Generative Pretraining과 Discriminative Fine-tuning을 통해, 비지도학습 결합 준지도 학습 방법론의 성공 가능성을 확인하였습니다. 또한, Transformer와 장기 의존성이 있는 텍스트 데이터셋을 학습 베이스로 활용하여 넓은 범위의 문맥 정보를 사전 학습하고 이를 NLI Task들에 범용적으로 적용함으로써 12개의 벤치마크 중 9개 영역에서 SOTA를 달성하였는데 큰 의의가 있는 연구였습니다.

 

📌 느낀점(논문을 읽으면서..)

직전에 트랜스포머를 딥하게 봤어서 그런가,, 생각보다 최근에 읽었던 논문중에 상대적으로 수월하게 읽혔던 것 같습니다..! 그만큼 조금씩이나마 베이스 지식이 늘고 있는 것 같다는 생각이 들어 나름 뿌듯하기도 하고.. 앞으로 또 새로운 내용들을 배워나가기 위해노력해보도록 하겠습니다..!

 

📌References

https://na0dev.tistory.com/44  

https://www.youtube.com/watch?v=4qv_ofZN5_U  

 

'Paper Review > NLP' 카테고리의 다른 글

[Paper Review] RoBERTa : A Robustly Optimized BERT Pretraining Approach  (0) 2025.02.03
[Paper Review] BERT : Pre-training of Deep Bidirectional Transformers for Language Understanding  (0) 2025.01.31
[Paper Review] Transformer : Attention Is All You Need  (0) 2025.01.28
[Paper Review] Attention : Neural Machine Translation By Jointly Learning To Align and Translate  (0) 2025.01.16
[Paper Review] Seq2Seq : Sequence to Sequence with Neural Networks  (0) 2025.01.10
'Paper Review/NLP' 카테고리의 다른 글
  • [Paper Review] RoBERTa : A Robustly Optimized BERT Pretraining Approach
  • [Paper Review] BERT : Pre-training of Deep Bidirectional Transformers for Language Understanding
  • [Paper Review] Transformer : Attention Is All You Need
  • [Paper Review] Attention : Neural Machine Translation By Jointly Learning To Align and Translate
gaegulcode
gaegulcode
무지한 올챙이가 성숙한 개구리 AI 리서처가 되는 과정
  • gaegulcode
    개굴코드
    gaegulcode
  • 전체
    오늘
    어제
    • 전체 (49) N
      • Paper Review (32) N
        • NLP (7)
        • CV (10)
        • LLM (4)
        • Multimodal (8)
        • Synthetic Data Generation (2) N
        • Etc. (1)
      • Coding Test (11)
      • ML & DL (5)
        • 패턴인식과 머신러닝 (3)
        • HuggingFace (1)
        • Reinforcement Learning (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 관리
    • 글쓰기
  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
gaegulcode
[Paper Review] GPT-1 : Improving Language Understanding by Generative Pre-Training
상단으로

티스토리툴바