Few-shot Patterns for Output Consistency
이 문서는 CCAF Domain 4를 이해하기 위한 개념 설명용 노트다.
여기서는 few-shot을 단순한 예시 추가 기법이 아니라, 모델이 어떤 출력 패턴을 안정적으로 따르도록 만드는 강한 구조 신호로 이해하는 데 초점을 둔다.
왜 few-shot이 중요한가
모델에게 원하는 출력 형식을 말로 설명하는 것만으로도 어느 정도는 유도할 수 있다. 하지만 형식이 복잡해지거나, 여러 필드의 관계가 중요하거나, 일관된 표현 패턴이 필요해지면 설명만으로는 부족할 수 있다.
예를 들어:
- 같은 필드를 항상 같은 이름으로 써야 하거나
- 특정 enum 값만 써야 하거나
- 설명 필드와 분류 필드의 톤이 섞이지 않아야 하거나
- 리스트 아이템마다 같은 구조를 유지해야 하는 경우
few-shot example은 이런 패턴을 직접 보여준다.
즉 few-shot의 강점은 단순히 “도와주는 예시”가 아니라,
원하는 출력 패턴을 모델 앞에 실제로 펼쳐 보인다는 점
이다.
왜 설명보다 예시가 더 강할 때가 있는가
설명은 규칙을 말해준다.
예시는 그 규칙이 실제로 어떻게 구현된 모습이어야 하는지를 보여준다.
예를 들어 “severity는 low/medium/high 중 하나로 반환하라”는 설명은 이해 가능하다.
하지만 실제 예시가 함께 있으면 모델은 다음까지 같이 배운다.
- 필드 순서
- 값의 표현 방식
- 주변 필드와의 관계
- 설명 문자열의 길이와 톤
- null이나 optional field를 다루는 방식
즉 few-shot은 단순 문장을 보강하는 게 아니라,
출력 형식의 암묵적 규칙까지 함께 전달하는 수단
이다.
output consistency에 왜 특히 강한가
few-shot은 reasoning correctness만이 아니라, 형식 일관성(format consistency) 에 특히 강하다.
왜냐면 모델은 예시를 보고:
- “이런 식으로 쓰는구나”
- “이 값 공간은 이렇게 좁혀야 하는구나”
- “이 필드는 이런 역할이구나”
를 패턴으로 받아들이기 때문이다.
그래서 few-shot은 특히 아래 상황에서 유용하다.
- 출력 형식이 고정돼야 할 때
- 여러 항목이 같은 구조를 반복해야 할 때
- 설명 필드의 톤까지 일관돼야 할 때
- 분류/추출/요약 결과를 동일한 모양으로 맞춰야 할 때
즉 few-shot은 예쁘게 보이게 만드는 장식이 아니라,
일관된 출력 표면을 학습시키는 도구
에 가깝다.
좋은 few-shot 예시는 어떤 예시인가
좋은 예시는 단순히 많이 주는 예시가 아니다.
보통 아래 특징을 가진다.
- 실제로 자주 나오는 입력을 반영한다
- 출력 구조가 명확하다
- 필드 간 관계가 드러난다
- 엣지 케이스를 너무 많이 넣어 핵심 패턴을 흐리지 않는다
- 모델이 일반화할 수 있을 만큼 대표성이 있다
즉 좋은 few-shot은 “모든 경우를 다 보여주기”가 아니라,
출력 패턴의 중심을 선명하게 보여주기
에 가깝다.
언제 few-shot이 특히 필요한가
다음 경우에는 few-shot의 가치가 특히 크다.
1. 형식 설명만으로 자꾸 흔들릴 때
스키마는 맞는데 필드 표현 방식이 들쭉날쭉한 경우
2. 출력 톤이나 밀도가 중요할 때
예:
- rationale은 짧게
- summary는 한 문장
- recommendation은 imperative form
같은 암묵적 스타일이 필요한 경우
3. 복합 구조를 일관되게 유지해야 할 때
예:
- 배열 안 객체 구조
- 중첩 필드
- 다단계 분류 결과
4. optional field 처리 방식이 중요할 때
예:
- 없는 경우 null로 둘지
- 필드를 생략할지
- 기본값으로 채울지
이런 패턴은 설명보다 예시가 더 잘 전달할 수 있다.
few-shot의 한계는 무엇인가
few-shot이 강력하다고 해서 만능은 아니다.
문제가 되는 경우:
- 예시가 너무 많아 핵심 패턴이 흐려짐
- 특정 사례에 과도하게 끌려 일반화가 약해짐
- 예시와 실제 입력 분포가 너무 다름
- outdated example이 잘못된 패턴을 고정함
즉 few-shot은 많이 넣는다고 무조건 좋아지지 않는다.
핵심은:
적은 수의 대표 예시로 원하는 출력 패턴을 선명하게 고정하는 것
이다.
schema와 few-shot은 어떻게 다르게 작동하는가
이 둘은 비슷해 보여도 역할이 다르다.
- schema는 허용 가능한 구조를 정의한다
- few-shot은 그 구조 안에서 어떤 패턴으로 출력해야 하는지 보여준다
즉:
- schema는 경계
- few-shot은 패턴
이다.
둘을 함께 쓰면:
- schema가 형식의 외곽을 잡고
- few-shot이 실제 출력 습관을 잡아준다
이 조합이 특히 강하다.
흔한 오해
“few-shot은 설명을 반복하는 장식이다”
아니다. 예시는 실제 출력 패턴을 직접 보여주는 강한 신호다.
“예시는 많을수록 좋다”
그렇지 않다. 너무 많으면 패턴이 흐려질 수 있다.
“schema가 있으면 few-shot은 필요 없다”
아니다. schema가 구조를 잡아도, 표현 패턴 일관성은 예시가 더 잘 잡아줄 수 있다.
한 문장 요약
Few-shot은 설명을 보강하는 장식이 아니라, 모델이 원하는 출력 패턴을 더 일관되게 따르도록 만드는 강한 구조 신호다.