117 lines
4.5 KiB
Markdown
117 lines
4.5 KiB
Markdown
[[In-Context Learning (ICL, 문맥 내 학습)|In-Context Learning (ICL, 문맥 내 학습)]]
|
|
|
|
📌 Brief Summary
|
|
|
|
In-Context Learning(ICL)은 LLM의 파라미터를 업데이트(학습)하지 않고, 입력 프롬프트 안에 예제(Few-Shot Examples)를 포함시키는 것만으로 모델이 새로운 태스크를 즉석에서 수행하는 능력이다. "학습 없는 학습"으로 불리며, 대형 LLM에서 창발(Emergent)하는 대표적 능력 중 하나다.
|
|
|
|
---
|
|
|
|
📖 Core Content
|
|
|
|
## 1. ICL의 종류
|
|
|
|
| 유형 | 프롬프트 예시 | 특징 |
|
|
|------|------------|------|
|
|
| **Zero-Shot** | 예제 없이 지시만 | 모델 사전 지식에 완전 의존 |
|
|
| **One-Shot** | 예제 1개 | 형식 힌트 제공 |
|
|
| **Few-Shot** | 예제 2~8개 | 가장 일반적, 성능 안정 |
|
|
| **Many-Shot** | 수십~수백 개 | 긴 컨텍스트 모델에서 강력 |
|
|
|
|
---
|
|
|
|
## 2. Few-Shot ICL 프롬프트 구조
|
|
|
|
```
|
|
[시스템 지시]
|
|
"다음은 감정 분류 예제입니다."
|
|
|
|
[예제 1]
|
|
입력: "오늘 정말 기분이 좋아!"
|
|
출력: 긍정
|
|
|
|
[예제 2]
|
|
입력: "서비스가 최악이에요."
|
|
출력: 부정
|
|
|
|
[예제 3]
|
|
입력: "그냥 그저 그래요."
|
|
출력: 중립
|
|
|
|
[실제 질의]
|
|
입력: "이 제품 꽤 마음에 드네요."
|
|
출력: ???
|
|
```
|
|
|
|
→ 모델이 패턴을 파악하여 **파인튜닝 없이** "긍정" 출력.
|
|
|
|
---
|
|
|
|
## 3. ICL 능력이 창발하는 메커니즘 (추정)
|
|
|
|
```
|
|
[현재 학계 주요 가설]
|
|
|
|
가설 1: Induction Head 메커니즘
|
|
특정 Attention Head가 "[입력 X → 출력 Y] 패턴"을 파악
|
|
→ 새 입력 X'에서 Y'를 유추 (패턴 복사)
|
|
|
|
가설 2: 사전학습 데이터 도움
|
|
학습 데이터에 (입력, 출력) 쌍이 많이 포함
|
|
→ 유사한 패턴 매칭 시 자동 활성화
|
|
|
|
가설 3: 메타러닝 (Learning to Learn)
|
|
사전학습이 "태스크 패턴 인식" 자체를 학습
|
|
→ 프롬프트의 구조만 보고 태스크 종류 파악
|
|
```
|
|
|
|
---
|
|
|
|
## 4. ICL vs Fine-Tuning 비교
|
|
|
|
| 구분 | ICL (In-Context Learning) | Fine-Tuning (SFT/LoRA) |
|
|
|------|--------------------------|----------------------|
|
|
| **파라미터 업데이트** | ❌ 없음 | ✅ 있음 |
|
|
| **속도** | 즉시 (프롬프트만) | 학습 시간 필요 |
|
|
| **비용** | 토큰 비용만 | GPU 비용 |
|
|
| **성능** | 모델 용량에 제한 | Fine-tuning 후 더 높음 |
|
|
| **지식 유지** | 컨텍스트 창 제한 | 파라미터에 영구 저장 |
|
|
| **적합 사용** | 빠른 프로토타입 | 정밀 도메인 특화 |
|
|
|
|
---
|
|
|
|
## 5. 성능에 영향을 주는 요소
|
|
|
|
| 요소 | 효과 |
|
|
|------|------|
|
|
| **예제 수(N)** | N↑ → 성능↑ (단, 컨텍스트 한계 존재) |
|
|
| **예제 품질** | 관련성 높은 예제 > 무작위 예제 |
|
|
| **예제 순서** | 순서가 성능에 영향 (최근 예제 더 강한 영향) |
|
|
| **형식 일관성** | 입출력 형식이 일관적일수록 성능 향상 |
|
|
| **모델 크기** | 대형 모델(>7B)에서 ICL 능력 비약적 향상 |
|
|
|
|
---
|
|
|
|
## 6. RAG와의 결합 (Dynamic Few-Shot)
|
|
|
|
```
|
|
[정적 Few-Shot]
|
|
사람이 미리 선정한 예제 → 프롬프트에 고정 포함
|
|
문제: 새 질의와 무관한 예제 포함 가능
|
|
|
|
[Dynamic Few-Shot (RAG + ICL 결합)]
|
|
질의 → 임베딩 → 벡터 DB에서 유사 예제 검색
|
|
→ 가장 관련된 例 N개 동적으로 선택 → 프롬프트 구성
|
|
→ 태스크 특화 ICL 자동화
|
|
```
|
|
|
|
---
|
|
|
|
🔗 Knowledge Connections
|
|
|
|
- **Related Topics:** [[Chain-of-Thought (CoT, 사고 사슬)|Chain-of-Thought (CoT, 사고 사슬)]], [[RAG (검색 증강 생성)|RAG (검색 증강 생성)]], [[SFT (Supervised Fine-Tuning)|SFT (Supervised Fine-Tuning)]], [[LoRA (Low-Rank Adaptation)|LoRA (Low-Rank Adaptation)]], [[임베딩 (Embedding)|임베딩 (Embedding)]], [[벡터 데이터베이스 (Vector Database)|벡터 데이터베이스 (Vector Database)]], [[Mechanistic Interpretability (기계적 해석 가능성)|Mechanistic Interpretability (기계적 해석 가능성)]]
|
|
- **Projects/Contexts:** AI 추론 시스템
|
|
- **Contradictions/Notes:**
|
|
- ICL의 창발 메커니즘은 아직 완전히 해명되지 않음 → Induction Head 가설이 가장 유력하나 전부가 아닐 수 있음.
|
|
- 예제 순서 효과 (Recency Bias): 마지막 예제에 과도하게 의존하는 경향 → 예제 순서 주의 필요.
|
|
- **신규 키워드**: `Dynamic Few-Shot`, `메타러닝 (Meta-Learning)`, `Recency Bias` → 탐색 큐 추가.
|