동작이 regression 타겟
LLM 감싸는 서비스에서 test 가 확인할 건 'API 응답했나' (거의 항상 그래) 가 아냐. '프롬프트에 모델이 우리가 기대하는 종류의 답을 생산했나'. 그게 eval: (입력, 기대 동작) 쌍의 구조화된 세트, 모델에 대해 점수화.
Eval 모양
- Dataset — 골든 케이스, edge case, 고친 regression 커버하는 N 예제. Repo 에 versioning.
- Scorer — 모델 output 받아 숫자 반환 (0-1, pass/fail). 흔한 scorer: 정확 매치, contains, regex, semantic similarity, rubric judge (LLM-as-judge), pairwise preference.
- Threshold — 통과 최소 집계 점수.
CI 어디서 도는가
- 모든 PR — 빠른 smoke subset (10-20 예제).
- 모든 main push — full eval (모든 예제).
- Nightly — 최신 모델 버전에 full eval — upstream 변경 잡기.
비용 discipline
200 예제 × 3 모델 변형 × 5 PR/일 인 eval 은 API 예산 태움. (prompt SHA, 모델 버전, scorer) 키로 결과 cache; 그 중 하나 바뀔 때만 재실행. Eval Quest 가 깊이 다뤄.