동작이 회귀 타겟이다
LLM을 감싸는 서비스에서 테스트가 확인할 건 'API가 응답했나'(거의 항상 그렇다)가 아니야. '프롬프트에 대해 모델이 우리가 기대하는 종류의 답을 만들어냈나'를 봐야 해. 이게 바로 eval이야. (입력, 기대 동작) 쌍의 구조화된 세트로 모델을 점수화하지.
Eval 구성
- Dataset — 골든 케이스, 엣지 케이스, 고친 회귀를 커버하는 N개 예제. 저장소에서 버전 관리해.
- Scorer — 모델 출력값을 받아 숫자를 반환해 (0-1, pass/fail). 흔한 채점 방식은 정확 매치, contains, regex, semantic similarity, rubric judge (LLM-as-judge), pairwise preference야.
- Threshold — 통과하기 위한 최소 집계 점수.
CI 어디서 돌리나
- 모든 PR — 빠른 스모크 일부 집합 (10-20 예제).
- main 브랜치에 푸시할 때마다 — full eval (모든 예제).
- Nightly — 최신 모델 버전에 full eval — upstream 변경을 잡아내려고.
비용 관리
200 예제 × 3 모델 변형 × 5 PR/일로 eval을 돌리면 API 예산을 태워. (prompt SHA, 모델 버전, 채점기)를 키로 결과를 캐시하고, 그중 하나라도 바뀔 때만 재실행해. Eval Quest에서 깊이 다뤄.