왜 평가가 중요한가요?
AI 에이전트는 비결정적(같은 입력에 매번 다른 출력)이므로, “잘 동작하는 것 같다”라는 주관적 판단만으로는 품질을 보장할 수 없습니다. 프로덕션 배포 전에 체계적인 평가가 필수적이며, 배포 후에도 지속적인 모니터링이 필요합니다. 전통적인 소프트웨어는 유닛 테스트로 정확한 출력을 검증할 수 있지만, AI 에이전트의 출력은 자연어 이므로 문자열 일치로는 판단할 수 없습니다. 예를 들어, “구매 후 30일 이내 반품 가능합니다”와 “30일 이내에 무료로 반품하실 수 있습니다”는 같은 의미이지만 다른 문자열입니다. 이런 이유로 LLM을 심판(Judge)으로 사용 하여 의미적 평가를 수행하는 방식이 표준으로 자리잡았습니다.💡 LLM-as-Judge란? 다른 LLM을 사용하여 에이전트의 답변을 평가하는 방식입니다. 사람이 직접 평가하는 것보다 훨씬 빠르고 일관적이며, 대규모 평가 데이터셋에서도 효율적으로 작동합니다. Databricks는 MLflow의 내장 Scorer를 통해 이 방식을 자동화합니다.
평가 워크플로우
에이전트 평가는 단발성 작업이 아니라, 개발-배포-운영 전체 주기에 걸쳐 반복되는 지속적인 프로세스 입니다. 아래 워크플로우를 따라 체계적으로 에이전트 품질을 관리할 수 있습니다.| 단계 | 작업 | 설명 |
|---|---|---|
| 1 | 평가 데이터셋 준비 | 질문과 기대 답변을 구성합니다 |
| 2 | 평가 실행 | mlflow.genai.evaluate()로 자동 평가합니다 |
| 3 | 결과 분석 | 메트릭, 개별 점수를 확인합니다 |
| 4 | 품질 기준 통과 여부 | 기준 충족 시 배포, 미충족 시 개선 단계로 이동합니다 |
| 5a | 배포 | 품질 기준 통과 시 프로덕션에 배포합니다 |
| 5b | 개선 | 프롬프트, RAG, Tool을 수정하고 다시 평가를 실행합니다 |
워크플로우 단계 설명
- 평가 데이터셋 준비: 에이전트가 답변해야 할 질문과 기대 답변을 구성합니다. 수동 작성, 프로덕션 트레이스 수집, FAQ 변환 등 다양한 방법으로 데이터를 확보합니다.
- 평가 실행:
mlflow.genai.evaluate()를 호출하여 에이전트가 각 질문에 대해 생성한 답변을 자동으로 평가합니다. 내장 Scorer와 커스텀 Scorer를 조합하여 다양한 관점에서 품질을 측정합니다. - 결과 분석: 전체 메트릭 요약과 개별 질문별 점수를 MLflow UI에서 확인합니다. 어떤 유형의 질문에서 점수가 낮은지 패턴을 파악합니다.
- 판단: 사전에 정의한 품질 기준(예: Correctness >= 0.85, Safety >= 0.95)과 비교하여 배포 여부를 결정합니다.
- 개선 또는 배포: 기준을 통과하면 배포하고, 그렇지 않으면 프롬프트 수정, RAG 청크 전략 변경, Tool 로직 개선 등을 통해 에이전트를 개선한 후 다시 평가합니다.
평가 실행
기본 평가
predict_fn 없이 사전 생성된 응답으로 평가
에이전트를 실시간으로 호출하지 않고, 이미 수집한 응답 데이터로도 평가할 수 있습니다. 이 방식은 비용을 절약하고 재현성을 보장합니다.내장 Scorer 상세
Databricks는 MLflow를 통해 여러 가지 사전 구축된 Scorer를 제공합니다. 각 Scorer는 LLM Judge를 사용하여 에이전트 응답의 다양한 품질 측면을 평가합니다.| Scorer | 평가 내용 | 기대답변 필요 | 점수 범위 | 상세 설명 |
|---|---|---|---|---|
| Correctness | 답변이 기대 답변과 의미적으로 일치하는지 | ✅ | 0~1 | 기대 답변과 에이전트 답변을 LLM이 비교하여 의미적 일치 여부를 판단합니다. 단어 수준이 아닌 의미 수준 비교입니다 |
| Safety | 유해/부적절한 내용이 없는지 | ❌ | 0~1 | 폭력, 혐오, 편향, 개인정보 노출 등 유해 콘텐츠 포함 여부를 검사합니다. 프로덕션 배포 전 필수 Scorer입니다 |
| RetrievalGroundedness | 검색 문서에 근거한 답변인지 (환각 여부) | ❌ | 0~1 | 에이전트가 검색한 문서의 내용에 기반하여 답변했는지 검증합니다. 환각(Hallucination)을 탐지하는 핵심 Scorer입니다 |
| RetrievalRelevance | 검색 문서가 질문과 관련있는지 | ❌ | 0~1 | RAG 파이프라인에서 검색 단계의 품질 을 평가합니다. 관련 없는 문서가 검색되면 낮은 점수를 받습니다 |
| Guidelines | 사용자 정의 가이드라인 준수 여부 | ❌ | 0~1 | 자유 형식 텍스트로 작성한 가이드라인을 LLM이 해석하여 준수 여부를 판단합니다. 비즈니스별 규칙을 평가할 때 유용합니다 |
Guidelines Scorer 활용 예시
Guidelines Scorer는 비즈니스 도메인에 맞는 맞춤형 규칙 을 평가할 때 매우 유용합니다. 아래 예시처럼 다양한 가이드라인을 정의할 수 있습니다.커스텀 Scorer 작성
내장 Scorer로 커버되지 않는 평가 기준이 있다면,@mlflow.genai.scorer 데코레이터를 사용하여 커스텀 Scorer를 작성할 수 있습니다. 커스텀 Scorer는 Python 함수로 구현하며, 프로그래밍적 검증과 LLM 기반 검증 모두 가능합니다.
프로그래밍 기반 커스텀 Scorer
LLM 기반 커스텀 Scorer
커스텀 Scorer를 평가에 적용
평가 데이터셋 구축
좋은 평가 데이터셋은 에이전트 품질 보장의 핵심입니다. 다양한 소스에서 평가 데이터를 확보하고, 지속적으로 보강하는 것이 중요합니다.| 소스 | 방법 | 장점 | 주의점 |
|---|---|---|---|
| 수동 작성 | 핵심 Q&A를 전문가가 직접 작성합니다 | 고품질, 정확한 기대 답변 | 시간 소요, 규모 한계 |
| 프로덕션 트레이스 | MLflow Tracing에서 실제 사용자 질문을 추출합니다 | 실제 사용 패턴 반영 | 기대 답변 수동 추가 필요 |
| Review App | 팀원들의 피드백에서 평가 데이터를 생성합니다 | 다양한 관점, 실제 피드백 | 리뷰어 확보 필요 |
| 기존 FAQ | 고객 지원 FAQ를 평가 데이터셋으로 변환합니다 | 빠른 구축, 검증된 답변 | FAQ 범위로 한정 |
| 합성 데이터 | LLM으로 질문-답변 쌍을 자동 생성합니다 | 대량 생성 가능 | 품질 검수 필요 |
평가 데이터셋 구성 모범 사례
프로덕션 모니터링
배포 후에도 Inference Table + MLflow Tracing 으로 에이전트 품질을 지속 모니터링합니다. 프로덕션 환경에서는 사전 평가 때와 다른 질문 패턴이 등장할 수 있으므로, 실시간 모니터링은 필수적입니다.핵심 모니터링 지표
| 지표 | 설명 | 경고 기준 (예시) |
|---|---|---|
| 응답 지연시간 | 요청부터 응답까지 걸리는 시간입니다 | P95 > 5초 |
| 토큰 사용량 | 입력/출력 토큰 수입니다. 비용과 직결됩니다 | 평균 > 2000 토큰/요청 |
| 오류율 | 에이전트가 오류를 반환하는 비율입니다 | > 2% |
| 사용자 피드백 | 👍/👎 비율 또는 CSAT 점수입니다 | 부정 피드백 > 15% |
| 환각율 | 검색 문서에 근거하지 않은 답변 비율입니다 | > 10% |
SQL로 모니터링 대시보드 구축
자동 재평가 파이프라인
프로덕션 트레이스를 주기적으로 수집하여 자동 재평가를 수행하면, 에이전트 품질 저하를 조기에 발견할 수 있습니다.CI/CD 파이프라인에서의 평가 자동화
에이전트를 코드로 관리할 때, CI/CD 파이프라인에 평가를 포함시키면 품질 게이트를 자동화할 수 있습니다. 프롬프트 변경이나 Tool 수정 시 자동으로 평가가 실행되어, 품질 저하를 사전에 방지합니다.정리
| 핵심 개념 | 설명 |
|---|---|
| mlflow.genai.evaluate() | 에이전트 품질을 자동으로 평가하는 핵심 함수입니다. 평가 데이터와 Scorer를 인수로 받아 체계적인 평가를 수행합니다 |
| 내장 Scorer | Correctness, Safety, RetrievalGroundedness, RetrievalRelevance, Guidelines 5종의 사전 구축 평가 기준을 제공합니다 |
| 커스텀 Scorer | @scorer 데코레이터로 비즈니스 맞춤형 평가 기준을 Python 함수로 구현할 수 있습니다 |
| LLM Judge | LLM을 심판으로 사용하여 자연어 답변의 의미적 품질을 자동 판단합니다 |
| 평가 데이터셋 | 수동 작성, 프로덕션 트레이스, FAQ, 합성 데이터 등 다양한 소스로 구축합니다 |
| 프로덕션 모니터링 | Inference Table + Tracing으로 배포 후에도 지속적으로 품질을 모니터링합니다 |
| CI/CD 통합 | 평가를 배포 파이프라인에 포함시켜 품질 게이트를 자동화할 수 있습니다 |