k
korAI
중급 전체
중급2026-04-176분

Few-shot 예시는 몇 개, 어떻게 배치해야 하나

예시 1개 → 3개 → 5개 사이에 성능이 뒤집히는 지점이 있다. 실측과 배치 규칙.

프롬프트few-shot

경험적 곡선

분류/추출 작업에서 예시 개수별 정확도는 대략 이렇게 움직인다.

| 예시 수 | 정확도 변화 | 비고 | |--------|------------|------| | 0개 | 기준선 | zero-shot | | 1개 | +10~15%p | 포맷만 알려줘도 크게 오름 | | 3개 | +5%p 추가 | 가성비 최고 지점 | | 5개 | +2%p 추가 | 여기서부터 수확체감 | | 10개 이상 | 거의 변화 없음 | 토큰 낭비 |

결론: 대부분의 작업은 3~5개가 스위트스팟. 그 이상은 토큰만 먹는다.

배치 규칙

<examples>
  <example>
    <input>주문번호 확인 좀요</input>
    <output>{"intent":"order_lookup","urgency":2}</output>
  </example>
  <example>
    <input>환불 당장 안 해주면 신고합니다</input>
    <output>{"intent":"refund","urgency":5}</output>
  </example>
  <example>
    <input>이 쿠폰 어디서 써요?</input>
    <output>{"intent":"coupon_help","urgency":1}</output>
  </example>
</examples>

<task>
<input>{{actual_user_message}}</input>
<output>

예시 고르는 3가지 기준

  1. 경계 케이스 우선: 헷갈리기 쉬운 쌍을 붙여 제시 (refund vs complaint)
  2. 분포 반영: 실제 트래픽에서 자주 나오는 유형을 1개 이상 포함
  3. 난이도 분산: 쉬운 것 2개 + 어려운 것 1개 배치

흔한 실수

  • 예시가 전부 비슷한 유형 → 모델이 다양성을 학습 못 함
  • 예시를 user/assistant 턴으로 쪼개 넣기 → 대화 흐름이 꼬임. <examples> 블록으로 묶어 system이나 user 첫 턴에 몰아넣는 게 안정적
  • 예시를 10개씩 박아넣기 → 수확체감 구간, 비용만 2배

체크리스트

  • [ ] 3~5개로 시작
  • [ ] 경계 케이스 1개 이상
  • [ ] XML 태그로 명확히 구분
  • [ ] 실제 분포 반영