记分员和 LLM 评委

评分器是 MLflow GenAI 评估框架的关键组成部分。 它们提供统一接口来定义模型、代理和应用程序的评估条件。 与他们的名字一样,评分员根据评估条件对应用程序的表现进行评分。 这可能是通过/不通过、真/假、数值或分类值。

可以使用同一记分器在开发和监视生产环境中进行评估,使评估在整个应用程序生命周期内保持一致。

根据所需的自定义和控件,选择正确的评分器类型。 每个方法都基于上一种方法,增加了更多的复杂性和控制。

首先,使用内置评审进行快速评估。 随着需求的发展,为特定于域的标准构建 自定义 LLM 法官 ,并为确定性业务逻辑创建自定义 基于代码的评分器

方法 自定义级别 用例
内置评估器 最少 快速尝试 LLM 评估,使用内置评分器,例如 CorrectnessRetrievalGroundedness
指南评委 中等 一个内置检查器,用于验证响应是否符合自定义的自然语言规则,例如风格或事实性准则。
自定义法官 完整 使用详细的评估标准和反馈优化创建完全自定义的 LLM 评委。
能够返回数值分数、类别或布尔值。
基于代码的评分器 完整 用于评估精确匹配、格式验证和性能指标等事物的编程和确定性评分器。

以下屏幕截图显示了内置 LLM 法官 Safety 和自定义评分器 exact_match的结果:

评分器的示例指标

记分器的工作原理

评分程序从任一服务或监控服务接收evaluate()。 然后执行以下操作

  1. 分析 trace 提取用于质量评估的特定字段和数据
  2. 运行记分器以基于提取的字段和数据执行质量评估
  3. 返回以附加到Feedbacktrace的质量评估

评估跟踪

评估用户界面

LLM 作为裁判

LLM 评判器是一种 MLflow Scorer,它使用大型语言模型进行质量评估。

将法官视为专门从事质量评估的 AI 助手。 它可以评估应用的输入、输出,甚至浏览整个执行跟踪,以根据定义的条件进行评估。 例如,法官可以理解 give me healthy food optionsfood to keep me fit 是相似的查询。

注释

评委是一种使用 LLM 进行评估的评分器。 将它们直接用于 mlflow.genai.evaluate(),或将它们包装在 自定义评分器 中以实现高级评分逻辑。

内置 LLM 法官

MLflow 为常见用例提供经研究验证的法官:

法官 Arguments 需要事实依据 它评估的内容
RelevanceToQuery inputsoutputs 响应是否与用户的请求直接相关?
RetrievalRelevance inputsoutputs 检索到的上下文是否与用户的请求直接相关?
Safety inputsoutputs 内容是否不受有害、冒犯性或有毒物质的影响?
RetrievalGroundedness inputsoutputs 响应基于上下文中提供的信息吗? 代理是否幻觉?
Correctness inputsoutputsexpectations 是的 与提供的基础真相相比,响应是否正确?
RetrievalSufficiency inputsoutputsexpectations 是的 上下文是否提供所有必要的信息来生成包含根本事实事实的响应?
Guidelines inputsoutputs 响应是否满足指定的自然语言条件?
ExpectationsGuidelines inputsoutputsexpectations 不(但需要设定期望的准则) 响应是否符合每个示例的自然语言条件?

自定义 LLM 法官

除了内置法官之外,MLflow 还可以轻松地使用自定义提示和说明创建自己的法官。

如果需要定义专用评估任务、对成绩或分数(而不仅仅是通过/失败)进行更多控制,或者需要验证代理是否为特定用例正确做出适当的决策和执行作,请使用自定义 LLM 评委。

请参阅 自定义评审

创建自定义评委后,可以通过将其 与人工反馈保持一致来进一步提高其准确性。

选择赋予法官权力的 LLM

默认情况下,每个法官都使用 Databricks 托管的 LLM 来执行 GenAI 质量评估。 可以通过在法官定义中使用model参数来更改评判模型。 以格式 <provider>:/<model-name>指定模型。 例如:

from mlflow.genai.scorers import Correctness

Correctness(model="databricks:/databricks-gpt-5-mini")

有关支持的模型列表,请参阅 MLflow 文档

为 LLM 判定提供支持的模型相关信息

  • LLM 评审可能会使用第三方服务来评估您的 GenAI 应用程序,包括由 Microsoft 运营的 Azure OpenAI。
  • 对于 Azure OpenAI,Databricks 已选择退出“滥用监视”,因此不会通过 Azure OpenAI 存储任何提示或响应。
  • 对于欧盟 (EU) 工作区,LLM 判定使用托管在 EU 的模型。 所有其他区域使用托管在美国的模型。
  • 禁用 合作伙伴支持的 AI 功能 可防止 LLM 法官调用合作伙伴支持的模型。 你仍然可以通过提供自己的模型来使用 LLM 评估功能。
  • LLM 评审旨在帮助客户评估他们的 GenAI 代理/应用程序,并且不应使用 LLM 评审结果来训练、改进或微调 LLM。

法官准确性

Databricks 通过以下方式持续提高评估质量:

  • 针对人类专家判断的研究验证
  • 指标跟踪:科恩的卡帕,准确性,F1 分数
  • 针对学术和真实数据集的多样化测试

有关详细信息,请参阅 有关 LLM 法官改进的 Databricks 博客

基于代码的评分器

自定义基于代码的评分器提供最终的灵活性,用于准确定义 GenAI 应用程序的质量测量方式。 可以定义针对特定业务用例定制的评估指标,无论是基于简单的启发式、高级逻辑还是编程评估。

对以下方案使用自定义评分器:

  1. 定义自定义启发式或基于代码的评估指标。
  2. 自定义应用程序追踪数据如何映射到内置的 LLM 评审器。
  3. 使用自己的 LLM(而不是 Databricks 托管的 LLM 法官)进行评估。
  4. 任何需要比自定义 LLM 法官提供的更多灵活性和控制的其他用例。

请参阅 创建自定义基于代码的记分器