Few-shot 프롬프팅
Few-shot 프롬프팅은 LLM에게 소수의 입출력 예시를 보여주고 새로운 입력에 대해 동일한 패턴으로 응답하도록 유도하는 기법입니다. 별도의 학습 없이 프롬프트 안의 예시만으로 태스크를 정의할 수 있어, In-Context Learning(문맥 내 학습)의 핵심 메커니즘입니다.학습 목표
이 문서를 완료하면 다음을 수행할 수 있습니다.- Zero-shot, One-shot, Few-shot의 차이를 실습으로 비교할 수 있습니다
- 효과적인 예시를 선택하는 전략을 적용할 수 있습니다
- OpenAI API를 사용하여 Few-shot 프롬프팅을 구현할 수 있습니다
- 각 접근법의 적합한 사용 상황을 판단할 수 있습니다
Zero-shot / One-shot / Few-shot 비교
실습: 감성 분류로 비교하기
Zero-shot: 예시 없이 지시만 제공
예시 없이 지시문만으로 태스크를 수행합니다.Zero-shot의 특징:
- 가장 간단하고 토큰 비용이 적습니다
- 출력 형식이 불안정할 수 있습니다
- 모델의 사전 학습 지식에 의존합니다
One-shot: 예시 1개 제공
1개의 예시를 추가하여 출력 형식과 판단 기준을 보여줍니다.One-shot의 특징:
- 출력 형식이 안정화됩니다
- “혼합” 분류의 기준을 예시로 보여줄 수 있습니다
- 1개 예시만으로 부족한 경우가 있습니다
Few-shot: 예시 3~5개 제공
다양한 패턴의 예시를 포함하여 분류 기준을 명확히 합니다.Few-shot의 특징:
- 출력 형식이 매우 안정적입니다
- 경계 사례(edge case)에 대한 판단 기준을 전달할 수 있습니다
- “그냥 그래요” 같은 애매한 표현의 분류 기준을 학습합니다
예시 선택 전략
Few-shot의 성능은 어떤 예시를 선택하는가에 크게 의존합니다.전략 1: 다양성 확보 (Diversity)
모든 클래스/유형을 균등하게 포함합니다.전략 2: 경계 사례 포함 (Edge Cases)
모델이 혼동하기 쉬운 사례를 포함합니다.전략 3: 유사 예시 선택 (Similarity-based)
테스트 입력과 유사한 예시를 동적으로 선택합니다.전략 4: 순서 효과 고려 (Order Effect)
예시의 순서가 결과에 영향을 줄 수 있습니다.언제 어떤 접근법을 사용할까?
| 상황 | 추천 접근법 | 이유 |
|---|---|---|
| 단순 분류/요약 | Zero-shot | 모델이 이미 잘 아는 태스크 |
| 특정 출력 형식 필요 | One-shot~Few-shot | 형식 안정성 필요 |
| 도메인 특화 분류 | Few-shot (3~5) | 도메인 용어/기준 전달 |
| 복잡한 변환 규칙 | Few-shot (5~10) | 다양한 패턴 학습 필요 |
| 비용 최적화 중요 | Zero-shot + 형식 지정 | 토큰 절약 |
| 최고 품질 필요 | Few-shot + CoT | 예시 + 추론 과정 |
예시를 몇 개까지 넣어야 하나요?
예시를 몇 개까지 넣어야 하나요?
일반적으로 3~5개가 가장 효과적입니다. 연구에 따르면 예시 수를 늘릴수록 성능이 향상되지만, 5개 이후로는 향상 폭이 줄어듭니다. 10개 이상은 입력 토큰 비용 대비 효율이 낮아집니다. 다만 복잡한 패턴을 학습해야 하는 경우(코드 변환 등)에는 더 많은 예시가 도움될 수 있습니다.
Few-shot 예시가 잘못된 답변을 포함하면 어떻게 되나요?
Few-shot 예시가 잘못된 답변을 포함하면 어떻게 되나요?
모델은 예시의 패턴을 그대로 학습하므로, 잘못된 예시는 잘못된 결과를 유도합니다. 예시의 정확성은 반드시 검증하세요. 또한 편향된 예시(특정 클래스만 긍정 예시)는 모델의 판단을 왜곡합니다.
Few-shot이 Fine-tuning을 대체할 수 있나요?
Few-shot이 Fine-tuning을 대체할 수 있나요?
간단한 태스크(분류, 형식 변환)에서는 Few-shot으로 충분한 경우가 많습니다. 그러나 대량 데이터 처리, 매우 높은 정확도 요구, 비용 최적화(API 호출 비용 > 학습 비용)가 필요한 경우에는 Fine-tuning이 더 적합합니다. 일반적으로 Few-shot으로 시작하고, 성능이 부족하면 Fine-tuning을 고려하세요.

