自定义 LLM 法官允许你使用自然语言为 GenAI 应用程序定义复杂和细微的评分准则。
虽然 MLflow 内置的 LLM 评判标准为常见质量维度提供了出色的起点,但使用make_judge()自定义的评判标准可以完全控制评估标准。
提示信息和模板变量
为了创建评委,您需要提供用自然语言编写的说明来评估代理的质量。
make_judge() 接受模板变量以访问代理的输入、输出、预期输出或行为,甚至完成跟踪。
说明必须至少包含一个模板变量,但不需要使用所有这些模板变量。
-
{{ inputs }}- 向代理提供的输入数据 -
{{ outputs }}- 输出代理生成的数据 -
{{ expectations }}- 实际数据或预期结果 -
{{ trace }}- 代理的完整的运行轨迹
这是唯一允许的变量。 自定义变量(例如 {{ question }} 将引发验证错误)以确保一致的行为并防止模板注入问题。
基于跟踪的评审员
基于轨迹的审查员分析执行轨迹,以便了解代理执行期间发生的情况。 它们使用模型上下文协议 (MCP) 工具自主探索跟踪,并且可以:
- 验证工具使用模式
- 查明性能瓶颈
- 调查执行失败
- 验证多步骤工作流
以下示例定义一个评估器,通过分析记录来评估工具调用的正确性。
from mlflow.genai.judges import make_judge
# Agent judge for tool calling correctness
tool_usage_judge = make_judge(
name="tool_usage_validator",
instructions=(
"Analyze the {{ trace }} to verify correct tool usage.\n\n"
"Check that the agent selected appropriate tools for the user's request "
"and called them with correct parameters.\n"
"Rate as: 'correct' or 'incorrect'"
),
model="databricks:/databricks-gpt-5-mini" # Required for trace-based judges
)
要使基于跟踪的分析员分析完整的跟踪,必须在 model 中指定 make_judge() 参数。
有关完整教程,请参阅创建自定义评审,使用make_judge()。
基于跟踪的法官的模型要求
基于跟踪的法官需要一个能够进行跟踪分析的模型。 模型可通过以下方式提供:
建议的模型:
databricks:/databricks-gpt-5-minidatabricks:/databricks-gpt-5databricks:/databricks-gpt-oss-120bdatabricks:/databricks-claude-opus-4-1
编写法官说明的最佳做法
特定于预期的输出格式。 说明应明确指定评判者应返回的格式。
- 分类响应:列出特定值(例如,“fully_resolved”、“partially_resolved”、“needs_follow_up”)
-
布尔响应:明确声明法官应返回
true或false - 数值分数:指定评分范围以及每个分数的含义
分解复杂的评估。 对于复杂的评估任务,请将说明结构化为明确的部分:
- 要评估的内容
- 要审查的信息
- 如何做出判断
- 要返回的格式
使法官与人类专家保持一致
基础评判标准是一个起点。 收集有关应用程序输出的专家反馈时,可以将 LLM 评委与反馈保持一致,以进一步提高法官的准确性。 请参阅 与人类对齐的评委。
后续步骤
有关基于标准和跟踪的评测器的实践教程,请参阅 创建自定义评测器。