LLM 기능의 품질을 어떻게 측정할 것인가 — 평가 파이프라인 구축기
프롬프트를 고칠 때마다 “좋아진 것 같은데?”라는 감상평만 오가는 상태를 벗어나고 싶었다.
골든 데이터셋부터
실제 사용자 입력에서 대표 케이스 200개를 뽑아 기대 출력을 사람이 직접 작성했다. 지루한 작업이지만 이게 없으면 아무것도 시작되지 않는다.
| 케이스 유형 | 개수 | 통과 기준 |
|---|---|---|
| 일반 요약 | 120 | 핵심 사실 포함 여부 |
| 엣지 케이스 | 50 | 오류 없이 처리 |
| 거부해야 할 입력 | 30 | 정중한 거부 |
LLM-as-judge의 함정
평가를 LLM에 맡기면 편하지만, 그대로 믿으면 안 된다.
심판 모델은 길고 자신감 있는 답변에 후한 점수를 주는 경향이 있다.
우리는 심판 프롬프트에 채점 기준을 항목별로 명시하고, 사람 평가 50건과의 일치율(85% 이상)을 먼저 검증한 뒤에야 자동 평가를 신뢰하기로 했다.
CI에 넣기
- name: Run LLM evals
run: python -m evals run --dataset golden-v3 --threshold 0.9
프롬프트 변경 PR마다 평가가 돌고, 점수가 기준 밑으로 떨어지면 머지가 막힌다. 이제 “좋아진 것 같은데?”가 아니라 “92점에서 95점이 됐다”라고 말한다.

남은 고민
골든 데이터셋도 낡는다. 분기마다 실제 트래픽에서 새 케이스를 샘플링해 갱신하는 프로세스를 이제 막 시작했다.