Files
2nd/01_Archive/2026-04-20/In-Context Learning (ICL, 문맥 내 학습).md
T

4.5 KiB

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