CI에 LLM regression 게이트 거는 법, 비결정성을 통계로 길들이기
프롬프트·모델·툴 정의를 바꿀 때마다 품질이 조용히 떨어지는 걸 막으려고, eval을 CI 게이트로 넣는 패턴이 자리잡고 있다. 어려운 점은 LLM 출력이 비결정적이라 단일 실행 통과/실패가 흔들린다는 것이다. 그래서 게이트는 단일 점수가 아니라 골든셋 N회 반복의 평균과 분산, 그리고 기준선 대비 차이의 신뢰구간으로 건다. promptfoo·OpenAI Evals·braintrust 같은 하니스가 PR마다 케이스를 돌리고, 핵심은 절대 임계값보다 baseline 대비 회귀 폭으로 막는 것이다. temperature를 0으로 낮춰도 완전 재현은 안 되니, flaky 케이스는 격리하고 'p95가 기준 이하로 떨어지면 차단' 식의 비대칭 게이트를 쓴다. LLM-judge를 채점기로 쓸 땐 judge 버전을 함께 고정해야 judge 자체의 드리프트가 회귀로 오인되지 않는다.
실무에선 프롬프트 한 줄 수정이 특정 케이스를 깨도 배포 전까지 모른다. 골든셋 eval을 PR CI에 붙이고 baseline 대비 회귀 폭으로 머지를 막으면 이 사각지대가 사라진다.
원문 출처
promptfoo