[[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, 사고 사슬)]], [[RAG (검색 증강 생성)]], [[SFT (Supervised Fine-Tuning)]], [[LoRA (Low-Rank Adaptation)]], [[임베딩 (Embedding)]], [[벡터 데이터베이스 (Vector Database)]], [[Mechanistic Interpretability (기계적 해석 가능성)]]
- **Projects/Contexts:** [[AI 추론 시스템]]
- **Contradictions/Notes:**
  - ICL의 창발 메커니즘은 아직 완전히 해명되지 않음 → Induction Head 가설이 가장 유력하나 전부가 아닐 수 있음.
  - 예제 순서 효과 (Recency Bias): 마지막 예제에 과도하게 의존하는 경향 → 예제 순서 주의 필요.
  - **신규 키워드**: `Dynamic Few-Shot`, `메타러닝 (Meta-Learning)`, `Recency Bias` → 탐색 큐 추가.
