퓨샷 예시 제대로 하기
- 퓨샷 프롬프팅이 무엇이고 왜 예시가 설명을 이기는지
- 모델이 완성하는 깔끔한 퓨샷 프롬프트를 읽는 법
- 예시를 선택·형식화·정렬하는 법(엣지 케이스 포함)
- 제로샷과 퓨샷 중 언제 무엇을 꺼내 쓸지
- 엉성한 예시가 예시가 없는 것보다 나쁜 이유
퓨샷(few-shot) 프롬프팅이란 모델에게 새로운 작업을 요청하기 전에 그 작업을 수행한 예시 몇 개를 보여주는 것을 의미합니다. 잘 활용하면 형식, 스타일, 엣지 케이스 동작을 고정하는 가장 빠른 방법입니다 — 원하는 것을 말로 설명하는 것보다 나은 경우가 많습니다.
왜 예시가 설명을 이기는가
"간결하고 친근하게"는 모호합니다. 간결하고 친근한 출력 두 개를 보여주는 것은 명확합니다. 모델은 예시를 패턴 매칭하여 그 패턴을 이어갑니다.
깔끔한 퓨샷 프롬프트
형태에 주목하세요: 동일한 형식의 Message → Label 쌍 여러 개, 그다음 모델이 채우도록 Label:을 비워둔 마지막 메시지.
퓨샷 분류 프롬프트
Classify each support message as: billing, bug, or feature. Message: "I was charged twice this month." Label: billing Message: "The app crashes when I upload a photo." Label: bug Message: "Can you add dark mode?" Label: feature Message: "My subscription renewed at the wrong price." Label:
모델은 패턴을 갖고 있으므로 마지막 줄을 완성합니다.
예시를 선택하고 형식을 정하는 방법
Guided walkthrough1 of 5
- 당신이 신경 쓰는 엣지 케이스를 포함하세요. 어떤 범주가 드물거나 까다롭다면 포함시키세요.
- 같은 구조, 같은 레이블, 같은 구분자. 비일관성은 비일관성을 가르칩니다.
- 2~5개면 충분한 경우가 많습니다. 더 많이 쓰면 어렵거나 다양한 작업에 도움이 되지만 토큰 비용이 들고 예시의 특이점에 과적합될 수 있습니다.
- 순서가 중요할 수 있습니다 — 가장 명확한 예시를 먼저 두세요. 분류에서는 같은 레이블끼리 모두 몰아두지 마세요.
- 구분자(또는 XML 태그)를 사용해 예시와 실제로 레이블을 붙이려는 입력을 분리하세요.
위의 토큰 비용은 실제입니다 — 토큰 & 컨텍스트를 참고하세요. 구분자 방식으로는 XML 태그가 깔끔하고 안정적인 분리 수단입니다.
제로샷 대 퓨샷
먼저 제로샷(그냥 요청하기)을 시도해보세요 — 최신 모델은 강력합니다. 특정 형식/스타일이 필요하거나 작업이 모호할 때 예시를 추가하세요. 제로샷이 이미 완벽하게 해낸다면, 예시에 비용을 들이지 마세요.
- 예시는 데이터입니다 — 깨끗하게 유지하세요. 잘못되거나 엉성한 예시는 적극적으로 잘못된 것을 가르칩니다. 학습 데이터처럼 큐레이션하세요.
- 설명하지 말고 보여주세요: 작동하는 예시가 모호한 설명을 이깁니다.
- 다양성, 특히 엣지 케이스를 포괄하고, 모든 예시를 동일한 형식으로 유지하세요.
- 2~5개의 예시면 대개 충분합니다. 더 많으면 과적합될 수 있고 토큰이 듭니다.
- 순서가 중요합니다 — 가장 명확한 것을 먼저, 그리고 하나의 레이블을 몰아두지 마세요.
- 제로샷으로 시작하고, 특정 형식/스타일이나 모호함에 대해서만 예시를 추가하세요.