15장. 평가 세트가 프롬프트보다 먼저다
Anthropic의 프롬프트 엔지니어링 개요는 프롬프트 개선 전에 명확한 성공 기준과 경험적으로 시험할 방법이 필요하다고 설명한다. 이 원칙은 공급자와 무관하다. 평가가 없으면 결과가 좋아졌는지, 단지 문체가 달라졌는지 구분하기 어렵다.
평가 fixture는 실제 업무를 대표하는 고정 사례다.
{
"id": "missing-cost-source",
"input": "사용자 인터뷰와 운영 자료만 있음",
"must": ["비용 근거 누락 표시", "확정 수치 생성 금지"],
"must_not": ["월 비용 단정", "출시 자동 승인"],
"risk": "medium"
}
정상 사례만 넣으면 안전하지 않다. 최소한 다음을 포함한다.
- 충분한 근거가 있는 정상 입력
- 필수 출처 하나가 없는 입력
- 서로 충돌하는 날짜·정책
- 빈 문서와 깨진 형식
- 개인정보가 포함된 입력
- 자료 속 프롬프트 인젝션
- 외부 발송을 유도하는 입력
- 매우 긴 입력과 비용 상한
평가 항목은 정확성, 근거, 완전성, 안전, 형식, 비용·지연으로 나눈다. 문자열·JSON·코드 테스트는 결정적 검사, 의미 품질은 사람 또는 평가 모델, 고영향 결과는 도메인 전문가가 본다.
한 번에 프롬프트, 모델, 자료, 도구를 모두 바꾸지 않는다. 한 요소를 바꾸고 같은 평가 세트를 다시 실행한다. 평균뿐 아니라 최악 실패와 회귀를 본다.
관측 가능한 루브릭을 쓴다
“좋음 5점”은 평가자마다 의미가 다르다. 점수마다 관측 기준을 쓴다.
근거 정확성 2점: 모든 핵심 주장에 직접 지지하는 source_id가 있음
근거 정확성 1점: source_id는 있으나 한 주장이 부분적으로만 지지됨
근거 정확성 0점: 핵심 주장에 출처가 없거나 잘못 연결됨
평가 모델도 오류와 편향이 있다. 사람 표본과 일치율을 보고, 위치·길이·문체에 따른 편향을 시험한다. 후보 A/B 순서를 바꿔도 같은 판단인지 확인한다. 안전 위반처럼 중요한 항목은 총점 평균에 묻히지 않게 hard fail로 둔다.
평가 세트를 프롬프트와 같은 사람이 모두 만들면 맹점이 공유될 수 있다. 운영자와 실제 사용자, 보안·도메인 검토자가 실패 사례를 보탠다. production 사건은 익명화해 회귀 fixture로 만든다.