| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- dfs
- NLP
- transformer
- leetcode
- 프로그래머스
- 그래프
- outer join
- GPT
- SQL
- ABAE
- gpt1
- join
- 머신러닝
- LLM
- 가상환경
- 백준
- 알고리즘
- SQL 첫걸음
- 논문리뷰
- 파이썬
- MySQL
- 연구
- 분산
- ChatGPT
- 자연어처리
- Bert
- deepseek
- Aspect
- paper review
- 코딩테스트
- Today
- Total
huginn muninn
[Paper Review] GPT-1 : mproving Language Understanding by Generative Pre-Training (2018) 본문
[Paper Review] GPT-1 : mproving Language Understanding by Generative Pre-Training (2018)
_maddy 2025. 1. 29. 16:13💫 핵심 요약
- GPT-1은 라벨링되지 않은 대규모 텍스트 데이터로 사전학습 후 각 작업에 맞게 미세조정하는 2단계 학습 방식을 제안
- 트랜스포머 디코더 구조를 활용해 이전 단어들로부터 다음 단어를 예측하는 생성 모델
- 작업별 맞춤 구조 대신 간단한 입력 변환만으로 다양한 NLP 작업에 적용 가능
- 12개 NLP 작업 중 9개에서 최고 성능을 달성하며 특히 상식 추론에서 8.9%, 질문 답변에서 5.7% 성능 향상
- 적은 라벨링 데이터로도 높은 성능을 달성할 수 있는 효율적인 학습 방법을 제시
⭐️ Abstract
자연어 이해(NLU, Natural Language Understanding)는 질문 응답, 문서 분류 같은 다양한 작업이 있습니다.
이런 작업들을 수행하려면 라벨링된 데이터가 필요한데, 이런 데이터를 만드는 것이 어렵고 많이 부족한 상황입니다. 반면 라벨이 없는 대규모 텍스트 데이터는 풍부합니다. 그래서 해당 연구에서는 이렇게 라벨링 되어있지 않은 텍스트 데이터를 활용해 언어 모델을 generative pre-training, 즉 생성적으로 학습시키고 이후 각 작업에 맞게 fine-tuning하는 방법을 사용했습니다. 기존 방법과 비교해서 fine-tuning 단계에서 각 작업의 특성에 맞는 입력 방식(task-aware input)을 추가해 모델 구조를 크게 바꾸지 않고도 효율적으로 성능을 높일 수 있었습니다.
쉽게 말하면, 라벨이 없는 텍스트로 기본적인 학습을 먼저 하고, 이후 각 작업에 맞게 조금씩 조정하는 방식이 더 적은 노력으로 더 높은 성능을 낼 수 있다는 것을 보여준 것입니다!
🥰 Introduction
라벨 없는 텍스트 데이터로 모델을 학습시키고, 다양한 작업에 잘 적응하는 방법을 제안합니다.
보통 자연어 처리 모델은 많은 라벨링 데이터가 필요한데, 이런 데이터는 비용과 시간이 많이 듭니다. 이를 해결하기 위해, 라벨 없는 데이터로 모델을 먼저 사전학습하고, 이후 각 작업에 맞게 라벨이 있는 데이터로 파인 튜닝하는 두 단계를 따릅니다.
- 사전학습 : 대량의 텍스트 데이터를 사용해 언어 모델을 학습하며 기본적인 언어 구조를 이해하게 만듭니다.
- 파인튜닝 : 각 작업(QA, 문장 유사도 평가)에 맞게 사전 학습된 모델을 조정합니다.
이 모델은 Transformer 구조를 사용해 긴 텍스트도 잘 다룰 수 있고, 작업별로 모델 구조의 변경 없이도 높은 성능을 보입니다. 실험 결과 모델은 기존 최고 성능을 뛰어넘어,
- 상식 추론에서 8.9% 성능 향상
- 질문 응답에서 5.7% 성능 향상
- 문장 추론에서 1.5% 성능 향상을
보였습니다.
결론적으로 이 접근법은 적은 라벨링 데이터로도 다양한 작업에서 뛰어난 성능을 내는 모델을 제시하며 효율적이고 강력한 자연어 처리 방법을 보여줍니다.
📝 Related work
1. Semi-supervised learning for NLP
기존 연구들은 주로 word embedding을 통해 성능을 향상시켰지만 해당 연구는 더 높은 수준의 의미를 포착하는 것을 목표로 합니다.
2. Unsupervised pre-training
해당 연구는 비지도 사전학습과 Transformer를 활용해 더 긴 문맥을 학습하고 최소한의 모델 구조 변경으로 다양한 작업에 적용 가능한 효과적인 방법을 제안합니다.
기존의 접근 방식은 사전학습된 언어 모델이나 머신러닝 모델의 숨겨진 표현(hidden representation)을 지도 학습에 보조 기능으로 활용했지만, 이는 각 작업마다 추가 매개변수가 필요합니다.
3. Auxiliary training objectives
보조훈련목표를 추가하는 것도 semi-supervised의 또 다른 형태인데요, 주요 학습 목표(target task) 외에 추가적은 비지도 학습 목표를 함께 학습하여 모델의 성능을 향상시키는 방법입니다.
보조 목표는 모델이 더 많은 언어적 정보를 학습하고 주된 목표 작업에서의 성능을 높이는데 도움을 줍니다.
💡 Framework
학습 단계는 두 단계로 구성됩니다. 첫번째 단계는 대량의 텍스트 코퍼스에서 고성능 언어 모델을 학습하는 것입니다. 두번째 단계에서는 라벨이 있는 데이터를 사용해 모델을 판별적 작업에 적응시키는 파인튜닝 단계를 수행합니다.
1. Unsupervised pre-training
✅ 다음에 나올 단어를 예측하는 일을 합니다!
🍎 문장 “I like to eat”이 있으면, 다음에 올 단어가 pizza 인지, apple 인지 예측합니다.
🍕 이렇게 단어가 나올 확률을 학습하는 것이 이 모델의 핵심입니다.
다음과 같은 likelihood를 maximize 하는 것이 모델링의 목표입니다.
$$ L_1(U)=∑_ilogP(u_i∣u_{i−k},...,u_{i−1};Θ) $$
- k : 컨텍스트 윈도우의 크기
- P : 조건부 확률로 이전 k의 단어를 기반으로 $u_i$ 를 예측.
- $Θ$ : 모델 파라미터로 신경망을 사용해 학습됨.
모델은 확률적 경사 하강법(stochastic Gradient Descent)을 통해 학습됩니다.
해당 연구에서는 Transformer의 디코더 구조를 사용했습니다.
$$ h_0=UW_e+W_p $$
$$ h_l=transformer\_block(h_{l-1}) ∀l∈[1,n] $$
$$ P(u)=softmax(h_nW^T_e) $$
- $h_0=UW_e +W_p$ : 단어와 위치 정보를 합쳐서 계산을 시작.
- $h_l=transformer\_block(h{l-1}) ∀l∈[1,n]$ : 문맥을 이해하기 위해 여러 층을 거침. (예 : I like to → 다음 단어 예측을 점점 똑똑하게 만듦)
- $P(u)=softmax(h_nW^T_e)$ : 마지막에 단어별 확률을 계산. (예 : eat일 확률 70% run일 확률 20%)
- 입력 임베딩
- $U$ : 입력 토큰의 컨텍스트 벡터.
- $W_e$ : 토큰 임베딩 행렬.
- $W_p$ : 위치 임베딩 행렬.
- Transformer Block
- n : 레이어 수
- 각 레이어에서 입력 벡터 $h_{l-1}$ 는 transformer block을 거쳐 변환.
- 출력 확률 계산
- $h_n$ : 마지막 레이어의 출력
- $W^T_e$ : 임베딩 행렬의 전치(transpose)
✅ 이 모델은 비지도 학습 방식으로 컨텍스트를 기반으로 다음 단어를 예측하는데 중점을 둠.
✅ transformer 디코더를 활용해 long-term 메모리를 효과적으로 학습할 수 있음.
✅ 수식을 통해 모델이 입력 텍스트를 처리하고 확률 분포를 생성하는 방식을 명확히 설명.
2. Supervised fine-tuning
이전 단계인 unsupervised pre-training은 라벨 없이 많은 데이터를 사용해 모델이 언어의 구조와 패턴을 배우도록 했습니다. 하지만 최종적으로는 구체적인 작업(텍스트 분류, 질문 답변 등)을 잘 수행해야 합니다. 이를 위해 라벨이 있는 데이터로 모델을 추가 학습시켜 특정 작업에 적합하도록 파인튜닝합니다.
우리가 가진 데이터셋 C는 입력 텍스트 $(x_1,x_2,...,x_m)$와 해당 라벨(y)로 구성됩니다. 이 데이터를 사용해 모델이 주어진 텍스트에 대해 올바른 라벨을 예측하도록 학습합니다.
입력 데이터 $(x_1,x_2,...,x_m)$를 사전 학습된 모델에 넣으면, Transformer의 최종 레이어 출력 $(h_m^l)$ 이 나옵니다. 이 출력은 추가된 선형 레이어(linear layer)에 전달되어 최종 예측 확률 $P (y|x_1, . . . , x_m)$이 계산됩니다. 여기서 소프트맥스를 사용해 확률로 변환합니다.
$$ P (y|x_1, . . . , x_m) = softmax(h_m^l W_y). $$
그리고 모델이 레이블 y를 정확히 예측하도록 학습합니다. 이를 위해 모델이 아래 식을 maximize 합니다.
$$ L_2(C) = ∑ _{(x,y)} log P (y|x_1, . . . , x_m) $$
쉽게 말해, 모델이 모든 입력 x에 대해 올바른 레이블 y를 예측하는 확률(P)를 최대화합니다. 이 과정을 반복하면서 모델이 점점 더 정확한 예측을 할 수 있게 됩니다.
Fine-tuning 중 언어 모델링(사전 학습에서 사용된 것)을 추가적으로 활용하면 모델이 다양한 데이터에 일반화를 보일 수 있고, 학습 속도가 더 빨라집니다. 그래서 최종 학습 목표를 아래와 같이 설정합니다.
$$ L_3(C)=L_2(C)+\lambda ∗ L_1(C) $$
- $L_2(C)$ : 레이블 y를 예측하는 목표
- $L_1(C)$: 언어 모델링(사전 학습) 목표
- $λ$ : 두 목표의 중요도를 조절하는 가중치
3. Task-specific input transformations

기존에는 특정 NLP 작업에 맞는 맞춤형 모델 구조(아키텍처)를 따로 만들어야 하는 경우가 많았습니다. 예를 들어 질문 답변 작업에는 질문과 문서를 잘 처리할 수 있는 특별한 레이어를 추가하거나, 텍스트 추론 작업에는 전제와 가설을 비교하는 별도의 구조를 설계하는 방식이었는데요.
이 논문에서는 이런 작업별 맞춤 설계가 필요 없도록 일반화된 모델을 만들고자 했습니다. 즉, 어떤 작업이든 사전 훈련된 언어 모델을 그대로 가져다 쓰면서 간단한 입력 변환 만으로 다양한 작업에 활용할 수 있게 했다는 겁니다.
그래서 구조화된 입력을 단순히 연속된 시퀀스 형태로 변환하는 방법을 사용합니다.
Textual entailment
- 두 문장(전제와 가설)의 관계를 추론하는 작업.
- 전제와 가설을 연결된 하나의 시퀀스로 변환. $는 두 문장을 구분하는 기호.
- 모델은 이 시퀀스를 처리해 두 문장이 서로 관련있는지(참/거짓)을 예측.
Similarity
- 두 문장 간의 유사성을 판단.
- 이 작업에서는 두 문장의 순서가 중요하지 않음.
- 모든 순서 조합을 입력으로 생성:
- 입력 형식 : [문장1; $; 문장2]와 [문장2; $; 문장1]
- 모델은 두 시퀀스를 각각 독립적으로 처리하고 결과를 합산해 최종 예측 수행.
Question Answering and Commonsense Reasoning
- 문서 z, 질문 q, 답변 후보로 구성된 작업.
- 각 답변 후보를 문서와 질문과 결합해 별도의 입력 생성 : [z; q; $; a_k]
- 모델은 각각의 입력을 독립적으로 처리해 답변 후보별 확률을 계산.
- 소프트맥스를 통해 가장 가능성 높은 답변을 선택.
🧪 Experiments

- 12개의 NLP 작업 중 9개에서 최고 성능 달성
- 질문 응답, 의미 유사도 평가, 텍스트 함의 판단, 텍스트 분류 등 다양한 작업에서 최고 성능(state-of-the-art)을 기록했습니다.
- 예를 들어, RACE 데이터셋(질문 응답)에서 기존 모델 대비 5.7% 개선, Story Cloze Test에서는 8.9% 성능 향상을 달성했습니다.
- 비지도 학습의 새로운 가능성 제시사전 훈련(unsupervised pre-training)이 지도 학습 성능을 크게 향상시킬 수 있음을 증명하며, 비지도 학습의 효용성을 다시 한 번 강조했습니다.
✅ Conclusion
이 연구는 Transformer 모델의 효과를 강조하며, 긴 문맥을 처리하는 데 있어 기존 LSTM 기반 모델보다 뛰어난 성능을 발휘한다는 점을 증명했습니다. 특히 비지도 학습을 통해 사전 훈련된 모델이 지도 학습 작업에 얼마나 효과적으로 적용될 수 있는지 보여주며, NLP 뿐만 아니라 아니라 다양한 도메인에서도 비지도 학습이 활용될 가능성을 제시했습니다.
결론적으로, 이 연구는 비지도 학습과 생성적 사전 훈련의 잠재력을 입증하며, 자연어 이해의 새로운 패러다임을 열었습니다. 이러한 접근 방식은 NLP 뿐 아니라 다른 분야에서도 더 많은 연구와 응용으로 이어질 수 있는 기반을 마련했습니다.