https://cdn.openai.com/research-covers/language-unsupervised/language_understanding_paper.pdf
1. Abstract
기존 NLU(자연어의 이해)에는 문장의 논리적 관계를 분석하는 "문장간의 함의 관계", QA태스크, 의미적 유사성 평가, 문서 분류 등의 다양한 태스크가 포함되는데, 기존 언어모델에서 훈련에 사용되는 라벨이 붙은 데이터는 현실적으로 수집 후 정제하는 과정에 시간과 비용이 많으 들게 되는 단점이 있고, 또한 라벨이 없는 대규모의 텍스트 코퍼스는 많이 존재하는 것이 현재 처해진 상황이라고 표현
그러므로 기존의 지도 학습 방식의 한계를 극복하기 어려운 문제에 봉착하게 되는데,
그에 따라서 제안 된 본 논문에서는 여러 방식의 해결 방법을 제안한다.
- 비지도 학습을 먼저 수행하여, 다양한 논-라벨 데이터를 통해 언어 모델을 학습 시킨 후
- 그 학습 패턴을 통해 지도학습을 특정 태스크에 맞게 미세 조정하는 방안을 제안
- Task-aware input transformation 기법을 사용하여 각 태스크에 맞게 입력을 변환하는 방법을 적용.
그렇게 제안한 방법을 통한 주요 성과에 대해서 정리하자면
- GPT를 사용한 접근법이 기존 각 태스크에 특화된 지도학습 모델보다 더 높은 성능을 보임.
- 12개 태스크 중 9개에서 기존 최고 성능을 능가함.
- 특히 다음과 같은 태스크에서 큰 성능 향상을 달성:
- 상식 추론(Commonsense Reasoning, Stories Cloze Test): +8.9%
- 질문 응답(Question Answering, RACE): +5.7%
- 텍스트 함의(Textual Entailment, MultiNLI): +1.5%
즉 위 논문은 비지도 사전훈련 + 지도 미세조정이라는 GPT 접근법이 자연어 이해(NLU)에서 매우 효과적임을 입증하는 연구라는 것.
2. Introduction
자연어처리의 비지도 학습의 필요성을 강조하면서 기존의 자연어처리 태스크에서는 대량의 라벨링 된 데이터가 필요하지만 대부분의 도메인에서는 라벨이 부족하다는 것을 설명,
기존 방식은 지도학습에 너무 의존하는 것이 가장 큰 문제였음을 언급하면서 대규모 라벨링 데이터를 수집하는 것은 시간과 비용면에 있어 굉장한 비효율이적이라는 것이 큰 문제
비지도 학습 활용의 장점
- 라벨이 없는 데이터 안에서의 언어적 정보를 학습할 수 있는 모델이 필요함
- 이를 통해 추가적인 라벨링 작업 없이도 성능을 높일 수 있음
- 심지어 라벨이 충분한 경우에도 비지도 학습을 활용하면 성능이 향상이 가능하다고 언급
기존 연구의 사례
- 이미 사전 훈련 된 단어 임베딩 NLP 성능 향상에 기여된 바 있음(ELMo 말하는 것 같습니다)
- Word2Vec, Glove, ELMo 같은 기법들은 비지도 학습을 이용해서 단어 표현을 효과적으로 학습한 사례
그렇지만 단어 수준 이상의 정보를 비지도 학습으로 진행하는 것에 어려움이 있는데
- NLP 모델이 단순한 단어 임베딩 이상으로 발전하려면, 더 넓은 범위의 정보를 학습해야 함
- 하지만 이를 효과적으로 학습하는 최적의 방법이 무엇인지 아직 명확하지 않은 상태
주요 도전 과제
- 최적의 학습 목표를 결정하는 것이 어려운 부분
- 언어 모델, 기계 번역, 담화 일관성 등 다양한 학습 목표가 존재하지만, 태스크마다 가장 적합한 목표가 다르기 때문에 어떤 것이 가장 효과적인지 정해지지 않음
- 전이 학습을 효과적으로 수행하는 방법이 불분명함
- 기존 방법들은 다음과 같은 기법을 조합하여 사용했음
- 태스크별 모델 구조 변경
- 복잡한 학습 기법
- 보조 학습 목표 추가
- 하지만 여전히 어떤 방법이 가장 효과적인지에 대한 합의가 없음.
- 기존 방법들은 다음과 같은 기법을 조합하여 사용했음
결과
이러한 불확실성 때문에 반지도 학습을 효과적으로 적용하는 것이 현실적으로 어려운 부분이 있음, 그러므로 위 논문에서는 이러한 문제를 해결하기 위해 비지도 사전훈련(Pre-training) + 지도미세조정(Fine-tuning) 기법을 제안
연구 목표
- 반지도 학습(Semi-Supervised Learning) 접근법을 제안
- 비지도 사전 훈련 + 지도 미세 조정 방식을 결합
- 보편적인 언어 표현을 학습해서, 최소한의 조정으로 다양한 NLP 태스크에 적용하도록 함
훈련 방식
- 사전 훈련
- 라벨이 없는 데이터들을 사용해서 언어 모델 학습
- 신경망의 초기 가중치를 설정하는 단계
- 미세 조정
- 라벨이 있는 지도 학습 데이터를 사용해서 특정 태스크에 맞게 모델을 조정
모델 구조
- 트랜스포머 모델(디코더 부분 같습니다) 사용해서 긴 문맥을 처리하는 능력 향상
- 기존 RNN 기반의 모델보다 더 구조적인 메모리구조를 제공하면서 성능이 뛰어남
- 태스크 별 입력 변환 기법을 적용해서 다양한 NLP 태스크를 효과적으로 적용가능함
실험 결과
- 4가지 주요 NLP 태스크에서 평가:
- 문장 함의(A문장과 B문장 간의 관계성)
- QA 세트
- 의미 유사성 평가
- 문서 분류 등
- 12개 태스크 중 9개 태스크에서 SOTA 모델보다 우수한 결과를 달성 하였다고 합니다.
- Stories Cloze Test (상식 추론): +8.9%
- RACE (질문 응답): +5.7%
- MultiNLI (문장 함의): +1.5%
- GLUE 벤치마크 (다중 태스크 평가): +5.5%
- Zero-shot 학습 성능 분석:
- 특정 태스크에 대해 미세 조정을 수행하지 않고도(Zero-shot) 유용한 언어적 지식을 학습했음을 확인.
결론 요약
비지도 사전 훈련(Pre-training)과 지도 미세 조정(Fine-tuning)을 결합한 반지도 학습(Semi-supervised Learning) 방식으로, 최소한의 조정만으로 다양한 NLP 태스크에서 높은 성능을 달성하는 모델을 제안함.
3. Related Work
Semi-supervised learning for NLP 개요
- 자연어 처리(NLP)에서 반지도 학습은 라벨이 없는 데이터(Unlabeled Data) + 라벨이 있는 데이터(Labeled Data)를 함께 활용하는 학습 방식.
- 대표적인 적용 사례:
- 시퀀스 라벨링(Sequence Labeling) (예: 개체명 인식, 품사 태깅)
- 텍스트 분류(Text Classification)
- 기존 연구 방식
- 초창기 방법 :
- 라벨이 없는 데이터를 활용하여 단어 수준 또는 구절의 통계를 계산
- 이를 지도학습 내의 특징으로 사용.
- 최근 동향:
- 단어 임베딩 활용 → 라벨이 없는 코퍼스로 훈련하여 다양한 NLP 태스크의 성능 향상 (예: Word2Vec, GloVe, ELMo).
- 하지만 기존 단어 임베딩은 단어 수준 정보(Word-Level Information)만 전달.
- 초창기 방법 :
- 새로운 방향: 문장 수준(Sentence-Level) 이상으로 확장
- 단어 수준 정보를 넘어서 구(Phrase-Level), 문장(Sentence-Level) 단위로 학습하는 방법이 연구됨.
- 예를 들어, 라벨이 없는 데이터에서 문장 임베딩(Sentence Embeddings) 학습 후 이를 다양한 태스크에 활용하는 방식.
Unsupervised pre-training
- 비지도 사전훈련(Unsupervised Pre-training)이란?
- 반지도 학습의 한 형태
- 목표 :
- 지도학습의 학습 목표를 변경하지 않고, 좋은 초기 가중치를 찾아주는 것이 핵심
- 초기 연구에서는 이미지 분류, 회귀 등에서 활용됨
- 이후 연구에서 신경망의 일반화의 성능을 높이는 정규화 역할을 한다는 것이 밝혀짐
- 현재는 이미지 분류, 음성 인식, 개체명 식별, 기계 번역 등 다양한 분야에서 활용
- 기존 NLP 연구에서의 차이점
- 기존 연구에서는 LSTM 기반 모델을 사용하여 비지도 사전훈련 + 지도학습(Fine-tuning) 방식을 적용.
- 예) Dai et al. (2015), Howard & Ruder (2018) → 문서 분류(Text Classification) 성능 향상
- 하지만 LSTM은 긴 문맥 처리가 어려움 → 예측 능력에 한계 존재.
- 기존 연구에서는 LSTM 기반 모델을 사용하여 비지도 사전훈련 + 지도학습(Fine-tuning) 방식을 적용.
- 트랜스포머 기반 GPT의 차별점
- 기존 방식과는 달리, 트랜스포머 모델을 사용해서 긴 문맥을 효과적으로 학습
- 다양한 NLP 태스크에서 성능 입증
- 문장 함의(A와 B간의 논리적인 관계)
- 의미 유사성 평가
- 이야기 완성 등
- 기존 방식들은 각 태스크별로 많은 추가 파라미터를 필요로 했지만, GPT는 최소한의 구조 변경만으로도 다양한 태스크에 적용 가능한 것을 확인
Auxiliary training objectives
보조 학습 목표, 보조 학습 목표란?
- 반지도 학습의 또 다른 형태
- 주요 아이디어 : 주 태스크와 함께 추가적인 보조 태스크를 학습하면 모델 성능이 향상될 수 있음
- NLP에서 많이 활용된 보조 태스크 예시:
- 품사 태깅(POS Tagging)
- 구문 분석(Chunking)
- 개체명 인식(Named Entity Recognition, NER)
- 언어 모델링(Language Modeling)
2. 기존 연구 방식
- Collobert & Weston (2008):
- 다양한 NLP 태스크(품사 태깅, 개체명 인식, 구문 분석 등)를 보조 학습 목표로 활용하여 의미역 결정(Semantic Role Labeling) 성능을 개선.
- Rei (2017):
- 주 태스크(Target Task)에 보조 언어 모델링(Language Modeling) 학습 목표를 추가하여 시퀀스 라벨링(Sequence Labeling) 성능 향상.
3. GPT 연구의 차이점
GPT도 보조 학습 목표를 활용하지만, 비지도 사전훈련만으로도 이미 언어적 지식을 충분히 학습할 수 있음을 실험적으로 입증,
즉 기존 연구처럼 다양한 보조 태스크를 추가할 필요 없이, 사전훈련 된 언어 모델만으로도 강력한 성능을 발휘
한 줄 요약
기존 연구에서는 보조 학습 목표(Auxiliary Objectives)를 활용하여 성능을 높였지만, GPT는 비지도 사전훈련(Pre-training)만으로도 강력한 성능을 보이며, 추가적인 보조 태스크 없이도 좋은 결과를 낼 수 있음을 입증

4. Framework
Unsupervised pre-training
- 대량의 비 라벨링 된 텍스트 데이터로 언어 모델 학습
- 목표 : 주어진 컨텍스트에서 다음 단어를 예측하는 확률(Likehood) 최대화
- 사용 된 손실 함수
$$
L_1(U) = \sum_i \log P(u_i | u_{i-k}, ..., u_{i-1}; \Theta)
$$
- \( k \) = 컨텍스트 윈도우 크기- \( \Theta \) = 모델의 학습 파라미터
- \( P(u_i | 이전 단어들) \) = 뉴럴 네트워크를 통해 예측되는 확률
- \(\Theta\) = 모델의 학습 가능한 파라미터
- 모델 구조 : 트랜스포머의 디코더 아키텍처 사용
- 다중 멀티 헤드 어텐션 적용
- 포지션-와이즈 피드포워드 포함
- 목표 : 입력 토큰으로부터 다음 단어 확률 분포 출력
- 수식 :
$$
h_0 = U W_e + W_p
$$
\( U \) = 입력 토큰 시퀀스
\( W_e \) = 토큰 임베딩 행렬 (Token Embedding Matrix)
\( W_p \) = 위치 임베딩 행렬 (Position Embedding Matrix)
트랜스포머 블록을 거쳐 문맥 정보를 점진적으로 학습
$$
h_l = \text{transformer_block}(h_{l-1}), \forall i \in [1, n]
$$
여러 층의 Transformer 블록을 거쳐 표현 학습
\( h_l \) = l번째 Transformer 블록의 출력
\( h_{l-1} \) = 이전 층의 출력
\(Softmax\) 적용한 최종 출력 계산
$$
P(u) = \text{softmax}(h_n W_e^T)
$$
\( h_n \) = 최종 Transformer 블록의 출력
\( W_e^T \) = 토큰 임베딩 행렬의 전치 행렬 (Transpose)
최종 트랜스포머 출력을 소프트맥스를 적용 하여 다음 단어 예측 확률 분포 생성
Supervised Fine-tuning(GPT-1 미세조정)
1.지도 미세 조정 개요
사전 훈련된 모델을 특정 태스크에 맞게 지도학습(Supervised Learning) 으로 최적화.
라벨이 있는 데이터셋 \( C \) 사용.
각 입력 데이터는 토큰 시퀀스 \( x_1, ..., x_m \) 와 라벨 \( y \) 로 구성
입력을 사전 훈련된 모델에 전달하여 최종 Transformer 블록의 활성화 값 \( h_m^l \) 을 얻음.
2. 예측 확률 계산 (Softmax 적용)
$$
P(y | x_1, ..., x_m) = \text{softmax}(h_m^l W_y)
$$
- \( h_m^l \) = 최종 Transformer 블록의 출력
- \( W_y \) = 추가된 선형 출력 레이어(Linear Output Layer)의 파라미터
- Softmax 함수를 사용하여 예측 확률 계산
3. 지도학습 목표 함수 (Supervised Learning Objective)
$$
L_2(C) = \sum_{(x, y)} \log P(y | x_1, ..., x_m)
$$
- 목표 : 주어진 입력 데이터 \( x_1, ..., x_m \) 에 대해 **실제 라벨 \( y \) 를 예측하는 확률을 최대화
- 라벨링된 데이터셋 \( C \) 의 모든 샘플에 대해 로그 확률의 합을 최대화
4. 보조 학습 목표 추가 (Auxiliary Language Modeling Objective)
- 추가적으로 언어 모델링(Language Modeling) 목적 함수 \( L_1(C) \) 을 함께 최적화하면 성능 향상 가능
- (a) 모델의 일반화 성능 향상
- (b) 학습 수렴 속도 가속화
- 최종 최적화 함수:
$$
L_3(C) = L_2(C) + \lambda \cdot L_1(C)
$$
- \( \lambda \) = 언어 모델링 목표의 가중치 (Weight for Auxiliary Objective)
5. 추가 파라미터 (Extra Parameters)
- 지도 미세 조정 단계에서 추가되는 파라미터는 거의 없음
- 새로 학습되는 항목:
- 출력 가중치 \( W_y \)
- 구분자 토큰(Delimiter Token) 임베딩

📌 SFT에서 보조 학습 목표(Language Modeling)를 추가하는 이유
- 원래 지도 미세 조정(SFT)은 특정 태스크의 정답(라벨)을 예측하는 것이 목적
- 즉, 입력 문장 \(x_1, ...., x_m\) 을 받아서 라벨 \(y\) 를 예측하는 것이 기본 목표:
$$
L_2(C) = \sum_{(x, y)} \log P(y | x_1, ..., x_m)
$$
여기서 \(L_2(C)\) 는 지도학습(Supervised Learning) 손실 함수
언어 모델링(Language Modeling) 보조 학습 목표 추가
- 하지만 라벨 예측뿐만 아니라, 단어 예측(Language Modeling)도 함께 수행하면 학습이 더 잘됨
- 그래서 기존의 지도 학습 목표 \(L_3(C)\) 에 비지도 언어 모델링 목표 \(L_1(C)\)를 추가
$$
L_3(C) = L_2(C) + \lambda \cdot L_1(C)
$$
- \(L_1(C)\) = 다음 단어 예측이 목표
- \(\lambda\) = 보조 학습 목표의 중요도를 조절하는 가중치
GPT-1의 SFT 과정에서 Linear Layer와 \(W_y\) 의 추가 개념
Transformer의 기본적인 출력 구조
- GPT-1의 Transformer 디코더는 Position-wise Feedforward Layer를 거쳐 최종 출력 벡터를 생성함.
- 하지만, 이 출력 벡터만으로는 태스크별 예측을 하기 어려움 → 추가적인 Linear Layer 필요!
Linear Layer \(W_y\) 를 추가하는 이유
- 트랜스포머의 출력 벡터 \( h_m^l \) 은 고차원 표현 벡터 이므로, 이를 최종 태스크(예: 분류, QA세트)에 맞게 변환 할 필요가 있음
- 따라서, 추가적인 선형 변환을 수행하는 레이어를 삽입
$$
P(y | x_1, ..., x_m) = \text{softmax}(h_m^l W_y)
$$
- 여기서 \(W_y\) 는 태스크 별 가중치
- \(Softmax\) 를 적용해서 최종 에측 확률을 계산
요약
1️⃣ Pre-training (비지도 학습)
- 대량의 비라벨 텍스트로 언어 모델 훈련 (다음 단어 예측)
- Transformer 디코더 사용하여 확률 \( P(u_i | u_{i-k}, ..., u_{i-1}) \) 최적화
2️⃣ Fine-tuning (지도 학습)
- 라벨링된 데이터로 모델을 특정 태스크에 맞게 조정
- Transformer 출력 → Linear Layer \( W_y \) 추가 → Softmax 적용
- 태스크 정답 예측 손실 \( L_2(C) \) 최적화 + 보조 학습 목표 \( L_1(C) \) 추가
Task-specific input transformations
GPT는 원래 연속적인 텍스트를 학습 하도록 사전 훈련 되었으나, 하지만 일부 태스크에서는 구조화 된 입력이 필요하므로, 기존 모델 구조를 크게 변경하지 않고도 이를 처리할 수 있도록 입력 변환(Input Transformation) 을 전환 함
📌 GPT-1 태스크별 입력 변환 (Input Transformations)
1️⃣ 텍스트 분류 (Text Classification)
- 특별한 입력 변환 필요 없음 → 기존의 Fine-tuning 방식 그대로 적용 가능.
2️⃣ 문장 함의 (Textual Entailment)
- 입력: 전제(Premise, \( p \)) + 가설(Hypothesis, \( h \))
- 변환 방식: 두 문장을 이어 붙이고 구분자 토큰(Delimiter Token, "$") 추가
$$
[p; $; h]
$$
3️⃣ 의미적 유사성 (Semantic Similarity)
- 입력: 비교할 두 개의 문장 (\( s_1 \), \( s_2 \))
- 변환 방식: 문장 순서가 중요하지 않기 때문에 두 가지 순서로 변환하여 처리
$$
[s_1; $; s_2], [s_2; $; s_1]
$$
- 각각을 독립적으로 처리한 후 두 개의 시퀀스 표현을 element-wise sum 후 Linear Layer로 출력 계산
4️⃣ 질문 응답 & 상식 추론 (Question Answering & Commonsense Reasoning)
- 입력: 문맥(Context, \( z \)) + 질문(Question, \( q \)) + 정답 후보들(\( a_k \))
- 변환 방식: 각 정답 후보를 문맥 및 질문과 결합한 후 독립적으로 처리
$$
[z; q; $; a_k]
$$
- 모델이 각 변형된 입력을 독립적으로 처리한 후, Softmax를 적용하여 정답 확률 분포를 생성
🚀 결론
✅ 기존 연구처럼 태스크별 새로운 아키텍처를 추가하지 않고도 입력 변환만으로 다양한 태스크 적용 가능
✅ 구조화된 입력을 단순한 시퀀스로 변환하는 traversal-style 방식 사용
✅ 트랜스포머 모델을 최소한의 수정으로 여러 NLP 태스크에 적용 가능
5.Experiments
1️⃣ 비지도 사전훈련 (Unsupervised Pre-training)
목표: 대량의 비라벨링 데이터(Unlabeled Data) 를 사용하여 언어 모델(Language Model) 학습
🔹 1.1 데이터셋 (Dataset)
- BooksCorpus (7,000권의 미출판 도서 포함) 사용
- 긴 연속적인 문맥(Long-range dependencies) 학습 가능
- 기존 ELMo가 사용한 1B Word Benchmark는 문장 단위로 셔플되어 있어 문맥 학습이 어려움
🔹 1.2 모델 구조 (Model Specifications)
- 12-layer Transformer 디코더(Decoder-Only Transformer) 사용
- Hidden size: 768
- Attention heads: 12
- Feedforward layer dimension: 3072
- 최대 시퀀스 길이: 512 tokens
- 토큰화: Byte-Pair Encoding (BPE) 사용 (40,000개 서브워드)
- 위치 임베딩(Position Embeddings): 학습 가능한 벡터 사용 (sinusoidal 방식 X)
🔹 1.3 학습 설정 (Training Configuration)
- 최적화 알고리즘: Adam
- 학습률(Learning Rate):
- 초반 2,000 스텝까지 선형 증가 후, Cosine Decay로 감소
- 최대 학습률: 2.5e-4
- Mini-batch 크기: 64 (각 배치는 512개의 연속된 토큰)
- Epochs: 100
- Dropout: 0.1
- 활성화 함수: GELU (Gaussian Error Linear Unit)
- 정규화: LayerNorm 사용, L2 정규화 적용
2️⃣ 지도 미세 조정 (Supervised Fine-tuning)
💡 목표: 사전 훈련된 모델을 특정 태스크(NLU, QA, 텍스트 분류 등)에 맞게 조정
🔹 2.1 학습 설정 (Fine-tuning Configuration)
- 학습률: 6.25e-5
- 배치 크기: 32
- Epochs: 대부분의 태스크에서 3 에포크면 충분
- Dropout: 0.1
- 학습률 스케줄: 0.2%의 학습량에서 Linear Warmup 적용
- 보조 학습 목표:
$$
L_3(C) = L_2(C) + \lambda \cdot L_1(C), \quad (\lambda = 0.5)
$$
아래는 task 12개 중에 9개의 dataset에서 state of the art(SOTA)를 달성한 테이블입니다.

전이 학습(Transfer Learning)에서 층 수가 성능에 미치는 영향

👉 왼쪽 그래프:
- MultiNLI와 RACE 태스크에서 전이된 Transformer 레이어 수에 따른 성능 변화
- 더 많은 레이어를 전이할수록 성능이 점진적으로 향상됨
- 특히 MultiNLI에서는 전체 모델을 전이하면 성능이 9%까지 증가
👉 오른쪽 그래프:
- 다양한 태스크(감성 분석, 질문 응답 등)에서 사전훈련 단계의 업데이트 수에 따른 성능 변화
- Transformer(실선)가 LSTM(점선)보다 훨씬 빠르게 성능이 향상됨
- 사전훈련 업데이트가 많을수록 모든 태스크에서 성능이 꾸준히 증가
5. Conclusion
✅ 1. 연구 요약
- 단일 모델(Single Task-Agnostic Model) 로 다양한 자연어 이해(NLU) 태스크를 해결하는 프레임워크 제안
- 비지도 사전훈련(Pre-training) + 지도 미세 조정(Fine-tuning) 방식 적용
- 긴 문맥을 포함한 다양한 코퍼스에서 사전 훈련 → 전이 학습(Transfer Learning)으로 지도 학습 태스크 성능 향상
✅ 2. 주요 성과
- 질문 응답(QA), 의미적 유사성 평가(Semantic Similarity), 문장 함의(Entailment), 텍스트 분류(Text Classification) 등 다양한 태스크에서 SOTA(State-of-the-Art) 성능 달성
- 12개 데이터셋 중 9개에서 기존 최고 성능을 초월
✅ 3. 기계 학습(Machine Learning) 관점에서의 시사점
- 비지도 사전훈련(Unsupervised Pre-training)이 지도 학습 태스크 성능을 높이는 데 중요한 역할을 할 수 있음
- Transformer 아키텍처와 긴 문맥(Long-range dependencies)을 포함한 데이터셋이 효과적임을 시사
✅ 4. 향후 연구 방향
- 비지도 학습(Unsupervised Learning) 연구 확장 가능성
- 자연어 이해(NLU)뿐만 아니라 다른 도메인에서도 적용 가능성 탐색 필요
- 비지도 학습이 어떻게, 언제 효과적인지에 대한 추가 연구 필요