使用 MLflow 评估 LLM/Agent
现代 GenAI 评估
本文档介绍使用
mlflow.genai.evaluate()进行评估的 MLflow GenAI 评估系统- 用于指标的
Scorer对象 - 内置和自定义的 LLM 裁判
注意:此系统与使用 mlflow.evaluate() 和 EvaluationMetric 的经典 ML 评估系统是分开的。这两个系统用于不同的目的,并且不具有互操作性。
MLflow 的评估和监控功能可帮助您在整个生命周期中(从开发到生产)系统地衡量、改进和维护 GenAI 应用程序的质量。
MLflow 评估能力的一个核心原则是评估驱动开发。这是一种新兴实践,旨在应对构建高质量 LLM/Agentic 应用程序的挑战。MLflow 是一个端到端平台,旨在支持这种实践并帮助您自信地部署 AI 应用程序。

主要功能
- 数据集管理
- 人工反馈
- LLM 即裁判 (LLM-as-a-Judge)
- 系统化评估
- 生产监控
运行评估
每次评估由三个组件定义
| 组件 | 示例 |
|---|---|
| 数据集 输入和期望(以及可选的预生成输出和跟踪记录) | |
| 评分器 评估标准 | |
| 预测函数 为数据集生成输出 | |
以下示例展示了对包含问题和预期答案的数据集的简单评估。
python
import os
import openai
import mlflow
from mlflow.genai.scorers import Correctness, Guidelines
client = openai.OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
# 1. Define a simple QA dataset
dataset = [
{
"inputs": {"question": "Can MLflow manage prompts?"},
"expectations": {"expected_response": "Yes!"},
},
{
"inputs": {"question": "Can MLflow create a taco for my lunch?"},
"expectations": {
"expected_response": "No, unfortunately, MLflow is not a taco maker."
},
},
]
# 2. Define a prediction function to generate responses
def predict_fn(question: str) -> str:
response = client.chat.completions.create(
model="gpt-4o-mini", messages=[{"role": "user", "content": question}]
)
return response.choices[0].message.content
# 3.Run the evaluation
results = mlflow.genai.evaluate(
data=dataset,
predict_fn=predict_fn,
scorers=[
# Built-in LLM judge
Correctness(),
# Custom criteria using LLM judge
Guidelines(name="is_english", guidelines="The answer must be in English"),
],
)
查看结果
打开 MLflow UI 查看评估结果。如果您使用的是 OSS MLflow,您可以使用以下命令启动 UI
bash
mlflow server --port 5000
如果您使用的是基于云的 MLflow,请在平台中打开实验页面。您应该会在“Runs”选项卡下看到一个新的评估运行已创建。单击运行名称以查看评估结果。





