4. MLflow Evaluation — mlflow.genai.evaluate()
4-1. 기본 개념
mlflow.genai.evaluate() 는 LLM 애플리케이션의 출력을 Scorer (평가자) 를 사용하여 자동으로 채점합니다. 평가 결과는 MLflow Experiment 에 기록되어 버전 간 비교가 가능합니다.
4-2. 기본 Scorer 종류
| Scorer | 설명 | 주요 판정 기준 |
|---|---|---|
| Guidelines | 사용자 정의 지침 준수 여부 | 프롬프트 기반 LLM-as-a-judge |
| Correctness | 예상 정답과의 일치도 | 의미적 동등성 (Semantic Equivalence) |
| Safety | 유해 콘텐츠 포함 여부 | 폭력, 혐오, 개인정보 등 |
| RetrievalGroundedness | 검색 결과에 근거한 답변인지 | 환각 (Hallucination) 감지 |
4-3. mlflow.genai.evaluate() 사용 예시
참고:mlflow.genai.evaluate()는 MLflow 2.14 이상에서 지원합니다. 기존mlflow.evaluate()와 API 구조가 다릅니다.
5. 커스텀 Scorer 작성
기본 Scorer 로 커버되지 않는 도메인 특화 평가 기준은@scorer 데코레이터를 사용하여 직접 정의합니다.
5-1. @scorer 데코레이터 기본 구조
5-2. LLM-as-a-Judge 패턴 커스텀 Scorer
5-3. 커스텀 Scorer 등록 및 실행
6. 평가 데이터셋 구축
좋은 평가는 좋은 데이터셋에서 시작합니다. 평가 데이터셋은 크게 세 가지 방법으로 구축합니다.6-1. Trace에서 데이터셋 추출
프로덕션 Trace 에서 고품질 사례를 자동으로 수집합니다.6-2. 수동 레이블링 워크플로우
자동 수집만으로는 엣지 케이스를 충분히 커버하기 어렵습니다. 도메인 전문가가 직접 레이블링하는 과정이 필요합니다.6-3. Gold Set 관리
Gold Set 은 정확성이 검증된 핵심 평가 데이터셋입니다. Spark DataFrame 또는 Delta Table 로 관리하면 버전 관리와 공유가 용이합니다.7. 프로덕션 모니터링
7-1. Trace 기반 품질 대시보드
Unity Catalog 시스템 테이블 (system.mlflow.traces) 을 Databricks SQL 로 쿼리하여 품질 대시보드를 구축합니다.
7-2. 드리프트 감지
이동 평균 (Moving Average) 비교로 품질 드리프트를 조기에 감지합니다.7-3. 알림 설정 (Databricks Workflow 활용)
Databricks Workflow (Jobs) 를 사용하여 주기적으로 품질 지표를 체크하고 임계값 초과 시 알림을 전송합니다.8. 베스트 프랙티스
8-1. 평가 주기 가이드
| 상황 | 권장 평가 주기 | 비고 |
|---|---|---|
| 모델 버전 업데이트 | 배포 전 반드시 실행 | Gold Set 전체 평가 |
| 프롬프트 변경 | 변경 전후 비교 평가 | A/B 테스트와 병행 |
| 프로덕션 정기 평가 | 주 1회 | 샘플링된 Trace 활용 |
| 드리프트 의심 시 | 즉시 | 최근 Trace 기반 |
8-2. Scorer 선택 가이드
8-3. 비용 vs 품질 트레이드오프
LLM-as-a-Judge 방식의 Scorer 는 판단 품질이 높지만 호출 비용이 발생합니다.8-4. Flywheel (플라이휠) 효과 구축
프로덕션 데이터를 평가에 활용하는 선순환 구조를 만드는 것이 최종 목표입니다.정리
| 핵심 개념 | 설명 |
|---|---|
| Trace 분석 | 블랙박스 LLM 앱의 실행 흔적을 기록하고 Latency, 토큰, 에러 패턴을 분석합니다 |
| search_traces() | 태그, 상태, 시간 조건으로 Trace 를 Python DataFrame 으로 조회합니다 |
| genai.evaluate() | 평가 데이터셋과 Scorer 를 조합하여 LLM 앱을 자동 채점합니다 |
| 기본 Scorer | Guidelines, Correctness, Safety, RetrievalGroundedness 등을 제공합니다 |
| 커스텀 Scorer | @scorer 데코레이터로 도메인 특화 평가 기준을 직접 정의합니다 |
| Gold Set | 검증된 평가 데이터를 Delta Table 로 버전 관리하고 CI/CD 에 통합합니다 |
| 프로덕션 모니터링 | 시스템 테이블 + Workflow Job 으로 드리프트를 자동 감지하고 알림을 전송합니다 |
| Flywheel 효과 | 프로덕션 트레이스 → 평가 데이터 → 모델 개선의 선순환을 구축합니다 |