22. 일관성과 재현성 높이기
- 출력이 들쭉날쭉한 이유(확률성)와 그 대응을 안다
- 일관성을 높이는 프롬프트·설정 기법을 익힌다
- "완전한 재현"이 어려운 이유와 현실적 목표를 이해한다
같은 입력, 다른 출력
2장에서 모델 출력이 확률적이라 같은 프롬프트도 답이 달라질 수 있다고 했습니다. 이는 창작에는 장점이지만, 일관된 처리가 필요한 작업(분류, 추출, 정형 응답)에는 골칫거리입니다. 같은 후기를 어제는 "긍정", 오늘은 "중립"으로 분류하면 신뢰하기 어렵습니다.
이 장은 그 들쭉날쭉함을 다스리는 법입니다.
일관성을 높이는 기법
기법 1: 모호함을 없앤다 (가장 효과적)
들쭉날쭉함의 큰 원인은 모델의 무작위성만이 아니라, 프롬프트의 모호함입니다(19장). 해석의 여지가 넓으면, 모델이 매번 다른 갈래를 고릅니다. 5장의 명확화·8장의 형식 고정·7장의 예시가 모두 일관성을 높입니다.
일관성 낮음 ❌ 일관성 높음 ✅
"이 후기 평가해줘" → "이 후기를 정확히 [긍정/부정/중립] 중
하나로만 분류해. 다른 말 없이 라벨만."
출력의 가능한 형태를 좁힐수록 일관성이 오릅니다. "라벨만"처럼 답의 모양을 못박으면 변동이 줄어듭니다.
기법 2: 기준을 명시한다
분류·평가 작업에서 판단 기준을 명시하면, 경계선상의 입력에서 흔들림이 줍니다.
✅ "별점 기준: 5=강한 만족 표현, 4=대체로 만족, 3=중립/혼재, 2=대체로 불만, 1=강한 불만. 이 기준에 따라 분류해."
기준이 없으면 "괜찮아요"가 3이 됐다 4가 됐다 합니다. 기준이 있으면 경계가 안정됩니다.
기법 3: 예시로 경계를 고정한다
7장 few-shot의 핵심 용도 중 하나가 일관성입니다. 까다로운 경계 사례를 예시로 보여주면, 모델이 그 경계를 일관되게 적용합니다. 단, 예시의 형식과 라벨 분포를 일관되게 유지해야 합니다(7장).
기법 4: 출력 형태를 좁힌다
8장의 구조화 출력은 일관성에도 기여합니다. 자유 서술은 변동이 크지만, "라벨 하나" 또는 "정해진 스키마의 JSON"은 변동 여지가 작습니다.
설정으로 다스리기 — temperature
2장에서 본 temperature(무작위성 손잡이)도 일관성에 직접 관여합니다. 낮추면 가장 확률 높은 토큰에 집중해 더 일관적·결정적이 됩니다.
⚠️ 흔한 실수·미신: "일관성이 필요하면 무조건 temperature를 0으로"는 단순화입니다. 두 가지 주의가 있습니다. 첫째, 2장에서 봤듯 일부 최신 추론 모델은 temperature를 기본값에서 바꾸지 말라고 권하며, 낮추면 복잡한 추론에서 오히려 문제가 생길 수 있습니다. 둘째, temperature 0이라도 완전한 재현을 보장하지 않는 경우가 있습니다. 일관성은 프롬프트(기법 1~4)로 먼저 잡고, 설정은 모델 가이드를 확인해 보조적으로 쓰세요.
🔧 개발자 노트: 재현성에 영향을 주는 요소는 temperature 외에도 여럿입니다 — 모델 버전, 시스템 상태, 일부 구현의 비결정성 등. 그래서 프로덕션에서는 ① 특정 모델 스냅샷에 고정(같은 모델군이라도 버전이 바뀌면 동작이 달라질 수 있음), ② 프롬프트를 버전 관리, ③ seed 파라미터 제공 시 활용, ④ 그래도 남는 변동은 후처리·검증으로 흡수, 같은 방어를 겹칩니다. "완벽한 재현"보다 "허용 범위 내 일관성"을 현실적 목표로 삼으세요.
재현성의 현실적 목표
완전히 똑같은 출력을 매번 얻는 것은, 확률적 시스템에서 항상 보장되지는 않습니다. 그러니 목표를 현실적으로 잡으세요.
| 비현실적 목표 | 현실적 목표 |
|---|---|
| "매번 글자 하나까지 동일" | "핵심 판단(라벨·결론)이 일관" |
| "100% 결정적" | "허용 오차 내에서 안정적" |
📌 핵심: 일관성의 목표는 "동일한 출력"이 아니라 "신뢰할 수 있는 일관된 판단"입니다. 분류가 매번 같은 라벨을 주면, 표현이 조금 달라도 충분합니다.
🧪 직접 검증법: 일관성을 측정하려면, 같은 입력을 10번 돌려 결과가 갈리는 비율을 보세요. 분류 작업이라면 "10번 중 같은 라벨이 몇 번"인지. 이 변동률이 높으면 기법 1~4로 프롬프트를 조이고, 다시 측정합니다. 측정 없이 "일관적인 것 같다"는 느낌은 믿기 어렵습니다. 이 측정이 곧 다음 장(평가)의 출발입니다.
일관성과 다양성은 트레이드오프
마지막 균형. 일관성을 극단으로 높이면 다양성·창의성을 잃습니다. 브레인스토밍·창작에서는 오히려 변동이 자산입니다. 작업 성격에 맞게 조절하세요.
일관성 우선 작업 다양성 우선 작업 ───────────── ───────────── 분류·추출·정형 응답 브레인스토밍·창작·아이디어 → 모호함 제거, 형식 고정 → 여지를 열어두고 여러 번 생성
이 장에서 배운 것
- 출력이 들쭉날쭉한 원인은 모델의 확률성과 프롬프트의 모호함 둘 다이며, 후자를 줄이는 것이 가장 효과적이다.
- 일관성 기법: 모호함 제거, 판단 기준 명시, 예시로 경계 고정, 출력 형태 좁히기.
- temperature를 낮추면 일관성이 오르지만, 최신 추론 모델은 기본값 유지를 권하기도 하고 0이라도 완전 재현은 보장되지 않는다. 프롬프트로 먼저 잡는다.
- 프로덕션 재현성은 모델 스냅샷 고정·프롬프트 버전 관리·검증을 겹쳐 다룬다. 목표는 "동일 출력"이 아니라 "허용 범위 내 일관성"이다.
- 일관성과 다양성은 트레이드오프다. 분류·추출엔 일관성을, 창작엔 다양성을 우선한다.
✍️ 확인 문제
- 같은 후기에 대한 분류가 매번 달라집니다. temperature를 건드리기 전에 프롬프트에서 시도할 수 있는 기법 두 가지를 적어보세요.
- "temperature를 0으로 하면 항상 똑같은 답이 나온다"는 주장의 어디가 단순화인지, 2장과 이 장의 내용으로 설명해보세요.
- (실습) 고객 문의를 4개 범주로 분류하는 작업의 일관성을 높이려 합니다. 기준 명시·형식 고정·예시 세 기법을 모두 적용한 프롬프트를 작성하고, 일관성을 어떻게 측정할지도 적어보세요.
다음 → 23. 평가(eval)의 기초
이전 ← 21. 거절과 실패 다루기 · 목차