用于 LLM 和智能体评估的 LLM-as-a-Judge

LLM-as-a-judge(LLM 作为评判员)可以在正确性、相关性、基础性、安全性和实用性等质量维度上评估 LLM 应用和智能体的输出。任何模型都可以充当评判员(如 OpenAI、Claude、Gemini、开源模型等)。当评判员分析智能体的输出和行为时,会生成一个评分和书面评估理由。

LLM-as-a-judge 为工程团队提供了生产规模的自动化质量评估。传统的指标(如 BLEU 和 ROUGE)衡量的是 Token 重叠度,但无法检测回复是否存在幻觉或违反语气准则。人工评审员可以捕捉这些问题,但每天能评估的数量有限。随着 LLM 应用从原型走向生产,基于评判员的评估对于维护质量和捕捉回归至关重要。

MLflow 的 评估框架通过内置评判员、自定义评判员创建,以及跨模型版本、提示词变体和系统变更的自动评估运行追踪,全面支持 LLM-as-a-judge。MLflow 还支持 将评判员与人工反馈进行对齐,从而使自动化评分始终校准于团队的质量标准。

快速导航

为什么 LLM-as-a-Judge 很重要

智能体、LLM 应用和 RAG 系统引入了传统测试无法解决的评估挑战

人工评估无法扩展

问题:人工评审会产生瓶颈和不一致。不同的评审员对同一输出的评分不同,且覆盖范围始终不完整。

解决方案:LLM 评判员对每个输出应用相同的标准,与人类评估员达成超过 80% 的共识,消除了评审员之间的不一致。

传统指标缺乏细微差别

问题:BLEU 和 ROUGE 衡量 Token 重叠,但无法评估回复是否真正有帮助、得体或对用户安全。

解决方案:LLM 评判员理解上下文和意图。它们评估用户真正关心的特质:准确性、实用性、语气和策略合规性。

生产监控至关重要

问题:生产中的质量回归在用户报告之前无法被发现。人工抽检无法跟上进度。

解决方案:针对生产环境持续运行评判员 追踪记录,在几秒钟内捕捉质量下降。设置阈值,并在评分下降时发送警报。

迭代需要度量

问题:没有量化指标,团队就无法衡量提示词更改或模型升级是否提升了质量。进展全靠猜测。

解决方案:LLM 评判员提供量化评分。(例如:“基准:3.2 正确性。新提示词:3.8”)。MLflow 追踪所有运行以方便比较。

LLM-as-a-Judge 的常见用例

每个生产级 LLM 系统都需要评估。如果检查是确定性的(完全匹配、正则匹配、JSON 架构验证),那么 基于代码的评分器 是正确的工具。但在生产中真正重要的大多数问题(回复是否产生幻觉?是否遵循了品牌指南?是否确实有帮助?)只能由能理解语言的东西来评估。

  • 您的客户支持机器人一直在虚构退货政策。 运行 检索基于性 在每次回复上,以捕获模型编造知识库中不存在的事实的情况。识别问题是检索质量差还是生成质量差。
  • 您重写了提示词,需要知道它是否真的更好。 在 500 个测试输入上用 正确性 (Correctness) 查询相关性 (RelevanceToQuery) 评判员评估两个版本。MLflow 并排追踪两次运行,以便您可以比较评分并放心地部署。
  • 您的智能体消耗了过多 API 额度。 ToolCallEfficiency识别冗余工具调用和不必要的推理循环。团队通常发现,在优化前,智能体的 LLM 调用次数比所需多 3-4 倍。
  • 法务部门需要在您发布到生产环境前进行核准。 使用 准则 评判员定义合规规则:“绝不提供具体的医疗剂量建议”或“始终包含财务建议的免责声明”。自动在每次输出时运行这些规则。
  • 用户在对话中途放弃了您的聊天机器人。 多轮对话评判员如 UserFrustration(用户挫败感)和 KnowledgeRetention(知识留存),揭示智能体是否正在丢失上下文、陷入循环或无法在对话轮次中解决问题。

如何实现 LLM-as-a-Judge

MLflow 的评估框架内置了 内置评判员 用于评估基础性、正确性、安全性、相关性和 自定义指南。对于对话式应用, 多轮对话评判员 评估完整的会话以检查上下文留存和用户满意度。对于智能体系统, 工具调用评判员 评估智能体是否选择了正确的工具并高效使用它们。MLflow 还集成了 DeepEval RAGASArize Phoenix,提供 20 多种额外的评估指标。

当内置评判员无法满足您的需求时,可以通过 自定义评判员 利用 评判员构建器 UI 或代码进行创建。如果评判员不符合团队的质量标准, 使用 MemAlign 优化评判员 (实验性功能)利用人工反馈自动精炼评判员指令,使与人类评估员的一致性提高 30-50%。

查看 评估文档 获取详细指南和 API 参考。

使用内置和自定义评判员进行评估

python
import mlflow
from mlflow.genai.scorers import Correctness, RelevanceToQuery
from mlflow.genai.judges import make_judge
from typing import Literal
# Define a custom judge
domain_accuracy = make_judge(
name="domain_accuracy",
instructions=(
"Evaluate whether the {{ outputs }} provides"
" accurate domain-specific information for"
" the given {{ inputs }}."
),
feedback_value_type=Literal["accurate", "inaccurate"],
model="openai:/gpt-5",
)
# Run evaluation with built-in and custom judges together
results = mlflow.genai.evaluate(
data=eval_data,
scorers=[
Correctness(),
RelevanceToQuery(),
domain_accuracy,
],
)

使用 MemAlign 优化评判员

python
from mlflow.genai.judges.optimizers import MemAlignOptimizer
optimizer = MemAlignOptimizer(reflection_lm="openai:/gpt-5")
aligned_judge = my_judge.align(
traces=labeled_traces,
optimizer=optimizer,
)
results = mlflow.genai.evaluate(
data=eval_data,
scorers=[aligned_judge],
)
在 MLflow UI 中构建和迭代自定义评判员,无需编写代码。

MLflow 是最大的开源 用于智能体、LLM 和机器学习模型的 AI 工程平台,每月下载量超过 3000 万次。数千家组织使用 MLflow 来调试、评估、监控和优化生产级 AI 智能体和 LLM 应用,同时控制成本并管理对模型和数据的访问。MLflow 由 Linux 基金会支持,采用 Apache 2.0 许可,提供内置评判员、自定义评判员创建和评判员优化功能,且无厂商锁定。 立即开始 →

常见问题 (FAQ)

LLM-as-a-judge 是一种评估技术,通过一个 LLM 来评估另一个 LLM 输出的质量。与其依赖人工评审或简单指标,不如使用评判员模型(如 GPT、Claude 或 Gemini)来评估正确性、相关性、安全性和基础性,从而生成评分和理由。

相关资源