Human Evaluation vs LLM-as-Judge 비교
| 항목 | Human Evaluation | LLM-as-Judge |
|---|---|---|
| 비용 | 높음 (평가자 인건비) | 낮음 (API 호출 비용) |
| 속도 | 느림 (시간~일 단위) | 빠름 (초~분 단위) |
| 확장성 | 제한적 (수백 건) | 높음 (수만 건 가능) |
| 일관성 | 평가자 간 편차 있음 | 동일 기준으로 일관 평가 |
| 뉘앙스 파악 | 우수 (문화적 맥락 이해) | 제한적 (미묘한 뉘앙스 놓칠 수 있음) |
| 도메인 전문성 | 전문가 투입 시 높음 | 일반적 기준만 평가 가능 |
| 적합 시기 | 최종 검증, 엣지 케이스 | 일상적 모니터링, 대량 평가 |
성공 권장 조합: LLM-as-Judge로 대량 자동 평가 → 낮은 점수의 응답만 Human Evaluation으로 정밀 검토. 이 조합이 비용 대비 가장 효과적입니다.
LLM-as-Judge 패턴
사람 대신 다른 LLM을 평가자로 활용 하는 패턴입니다. 대량 평가를 자동화할 수 있어 실무에서 가장 많이 사용됩니다.동작 원리
| 단계 | 설명 |
|---|---|
| 1. 평가 기준 정의 | ”1~5점 척도로 관련성을 평가하세요” |
| 2. 평가 프롬프트 작성 | 질문, 응답, 컨텍스트를 Judge 모델에 전달 |
| 3. Judge 모델 실행 | GPT-4, Claude 등 강력한 모델이 점수와 이유 생성 |
| 4. 결과 집계 | 메트릭별 평균 점수, 분포 분석 |
참고 팁: Judge 모델은 평가 대상 모델보다 같거나 더 강력한 모델 을 사용하세요. 약한 모델이 강한 모델을 평가하면 신뢰도가 낮습니다.
LLM-as-Judge의 한계
- Judge 모델 자체의 편향이 평가에 영향
- 위치 편향(Position Bias): 먼저 제시된 응답에 높은 점수 경향
- 장문 편향: 긴 응답에 높은 점수를 주는 경향
- 해결책: 여러 Judge를 사용하거나, 인간 평가와 병행
Databricks MLflow Evaluate
MLflow Evaluate는 Databricks에서 제공하는 LLM 평가 통합 도구입니다.| 기능 | 설명 |
|---|---|
| 내장 메트릭 | Faithfulness, Relevance, Toxicity 등 사전 정의 |
| 커스텀 메트릭 | 비즈니스 요구에 맞는 평가 기준 추가 |
| LLM-as-Judge | GPT-4 등을 Judge로 자동 평가 |
| 비교 평가 | 여러 모델/프롬프트 버전 간 성능 비교 |
| 시각화 | MLflow UI에서 결과 대시보드 확인 |
기본 사용 예시
커스텀 메트릭 추가 예시
최신 API: MLflow 3 Scorer 패턴
MLflow 3에서는Scorer API를 통해 더 직관적으로 평가를 구성할 수 있습니다. 내장 scorer와 커스텀 scorer를 조합하여 사용합니다.
참고 MLflow 3 변경사항: 기존mlflow.evaluate()의model_type="databricks-agent"방식은 계속 사용 가능하지만, 새 프로젝트에서는mlflow.genai.evaluate()+ Scorer 패턴을 권장합니다.@scorer데코레이터로 비즈니스 로직에 맞는 평가 기준을 자유롭게 정의할 수 있습니다.