[[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` → 탐색 큐 추가.