주제: 4-3 GPT-3 (In-Context Learning 메커니즘)
문제 설정
기존 NLP 모델(BERT 등)은 새로운 작업(task)을 수행하려면 fine-tuning이 필요했습니다.
Pretrain
↓
Fine-tune
↓
Task 수행
하지만 GPT-3는 새로운 작업을 수행할 때 모델 파라미터 업데이트 없이 학습할 수 있습니다.
이 능력을 In-Context Learning (ICL)이라고 합니다.
직관 비유
- 모델에게 몇 개의 예시를 보여줌
- 패턴을 문맥(context)에서 추론
- 같은 패턴으로 답 생성
즉 모델이 프롬프트 안에서 즉석 학습을 수행합니다.
1. GPT-3 구조
GPT-3는 Transformer Decoder 기반 모델입니다.
Input tokens
↓
Masked Self-Attention
↓
Feed Forward Network
↓
Next token prediction
목표:
기호 의미
- x_t : 다음 토큰
- x_1...x_{t-1} : 이전 토큰
왜 필요한가
텍스트 생성 모델로 학습됩니다.
2. Language Modeling Objective
GPT 계열 모델은 다음 목적함수를 사용합니다.
기호 의미
- x_t : target token
- P(x_t | context) : 다음 토큰 확률
왜 중요한가
모델이 문맥 기반으로 텍스트를 생성하도록 학습합니다.
3. In-Context Learning
ICL은 프롬프트에 예제를 포함하여 모델이 패턴을 추론하도록 하는 방법입니다.
예:
Input:
English: dog → French: chien
English: cat → French: chat
English: bird → French:
모델 출력:
oiseau
직관 설명
- 모델은 프롬프트 예시를 통해 task 패턴을 파악
- 새 입력에 대해 동일한 규칙 적용
4. Few-shot / Zero-shot
| 방법 | 설명 |
|---|---|
| Zero-shot | 예시 없이 task 수행 |
| One-shot | 예시 1개 제공 |
| Few-shot | 여러 예시 제공 |
예시
Question: Translate English to French
dog → ?
5. ICL 작동 직관
Transformer는 다음 연산을 수행합니다.
프롬프트 예시 토큰들도 attention 대상이 됩니다.
결과
- 모델이 예시 패턴에 attention
- task 구조를 추론
주의점
모델 파라미터는 업데이트되지 않습니다.
6. ICL을 수식으로 보면
프롬프트:
모델 목표:
기호 의미
- context : prompt 전체
- answer : 모델 출력
왜 중요한가
fine-tuning 없이 task를 수행할 수 있습니다.
7. 왜 GPT-3에서 가능해졌나
- 매우 큰 모델 크기
- 대규모 pretraining 데이터
- Transformer attention 구조
모델이 다양한 task 패턴을 내부적으로 학습합니다.
8. In-Context Learning 한계
| 문제 | 설명 |
|---|---|
| context 길이 제한 | 긴 prompt 불가능 |
| prompt sensitivity | 프롬프트에 따라 성능 변화 |
| 추론 비용 | 큰 모델 연산 비용 |
코드-수식 연결
| 개념 | 코드 | 설명 |
|---|---|---|
| GPT 모델 | transformers.GPT2LMHeadModel |
decoder language model |
| prompt 입력 | tokenizer(prompt) |
프롬프트 토큰화 |
| 텍스트 생성 | model.generate() |
다음 토큰 생성 |
자주 하는 오해 5개
- In-context learning은 실제 파라미터 업데이트라고 생각한다
- few-shot이 항상 fine-tuning보다 좋다고 생각한다
- GPT-3는 task를 명시적으로 학습한다고 생각한다
- ICL은 모든 모델에서 동일하게 작동한다고 생각한다
- 프롬프트는 단순 입력이라고 생각한다
체크리스트 (스스로 설명 가능해야 하는 질문)
- GPT-3의 language modeling objective는 무엇인가?
- In-context learning은 어떤 방식으로 작동하는가?
- few-shot learning과 zero-shot learning의 차이는 무엇인가?
- ICL에서 attention의 역할은 무엇인가?
- 왜 GPT-3 같은 큰 모델에서 ICL이 가능해지는가?