Skip to main content
이 문서는 머신러닝 섹션의 일부입니다.

4. MLflow Evaluation — mlflow.genai.evaluate()

4-1. 기본 개념

mlflow.genai.evaluate() 는 LLM 애플리케이션의 출력을 Scorer (평가자) 를 사용하여 자동으로 채점합니다. 평가 결과는 MLflow Experiment 에 기록되어 버전 간 비교가 가능합니다.

4-2. 기본 Scorer 종류

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. 평가 주기 가이드

8-2. Scorer 선택 가이드

8-3. 비용 vs 품질 트레이드오프

LLM-as-a-Judge 방식의 Scorer 는 판단 품질이 높지만 호출 비용이 발생합니다.

8-4. Flywheel (플라이휠) 효과 구축

프로덕션 데이터를 평가에 활용하는 선순환 구조를 만드는 것이 최종 목표입니다.
이 사이클을 자동화하면 시간이 지날수록 GenAI 애플리케이션의 품질이 지속적으로 향상 됩니다.

정리


참고 링크