跳到主要内容

什么是 Scorer?

Scorer 是 MLflow GenAI 评估框架的关键组件。它们提供了一个统一的接口,用于定义模型、代理和应用程序的评估标准。

Scorer 可以被视为传统 ML 意义上的指标。然而,它们更灵活,并且可以返回更结构化的质量反馈,而不仅仅是通常由指标表示的标量值。

Scorer 如何工作

Scorer 会分析 GenAI 应用程序的输入、输出和追踪,并生成质量评估。流程如下:

  1. 您提供一个数据集,其中包含
    inputs
    (以及可选的其他列,例如
    预期结果
    )
  2. MLflow 运行您的 predict_fn 以生成
    输出
    追踪
    对于数据集中的每一行。或者,您可以直接在数据集中提供输出和追踪,并省略 predict 函数。
  3. Scorer 接收
    inputs
    ,
    输出
    ,
    预期结果
    追踪
    (或其中的子集),并生成分数和元数据,例如解释和来源信息。
  4. MLflow 会聚合 Scorer 的结果并将其保存。您可以在 UI 中分析结果。

您应该使用哪些 Scorer?

MLflow 提供不同类型的 Scorer 来满足不同的评估需求:

我想快速尝试评估并快速获得一些结果。

 → 使用 预定义 Scorer 开始。

我想用简单的自然语言标准来评估我的应用程序,例如“响应必须礼貌”。

 → 使用 基于指南的 Scorer

我想使用更高级的提示来评估我的应用程序。

 → 使用 基于提示的 Scorer

我想将整个追踪转储到 Scorer 中,并从中获得详细的见解。

 → 使用 Agent-as-a-Judge Scorer

我想编写自己的代码来评估我的应用程序。其他 Scorer 不适合我的高级需求。

 → 使用 基于代码的 Scorer,使用 Python 实现您自己的评估逻辑。

如果您仍不确定使用哪个 Scorer,可以咨询右下角的“Ask AI”(添加图片)小部件。

如何编写好的 Scorer?

“幻觉”或“毒性”等通用指标在实践中很少有效。成功的实践者会分析真实数据,找出特定领域的失败模式,然后从头开始定义自定义评估标准。以下是定义好的 Scorer 并使用 MLflow 进行迭代的一般工作流程:

1

生成或从生产环境中收集追踪

从一组真实的输入样本开始生成 追踪。如果您已经有生产追踪,那就更好了。

2

收集人类反馈

从领域专家或用户那里收集反馈。MLflow 提供 UI 和 SDK 来收集追踪的反馈。

3

错误分析

分析反馈中的常见失败模式(错误类别)。
为了将追踪组织到错误类别中,请使用 Trace Tag 来标记和过滤追踪。

4

将失败模式转化为 Scorer

定义检查常见失败模式的 Scorer。例如,如果答案格式不正确,您可以定义一个 LLM-as-a-Judge Scorer 来检查格式是否正确。我们建议从简单的指令开始,然后进行迭代改进。

5

使 Scorer 与人类反馈保持一致。

LLM-as-a-Judge 存在固有的偏见。依赖有偏见的评估会导致错误的决策。因此,重要的是要优化 Scorer 以与人类反馈保持一致。您可以手动迭代提示或指令,或者使用 MLflow 的 自动评判对齐 功能,通过最先进的 DSPy 驱动的算法来优化指令。

专业提示:Scorer 版本控制

随着您对 Scorer 的迭代,版本控制变得越来越重要。MLflow 可以跟踪 Scorer 版本,以帮助您管理更改并将改进后的 Scorer 与您的团队共享。

后续步骤