什么是 Scorer?
Scorer 是 MLflow GenAI 评估框架的关键组件。它们提供了一个统一的接口,用于定义模型、代理和应用程序的评估标准。
Scorer 可以被视为传统 ML 意义上的指标。然而,它们更灵活,并且可以返回更结构化的质量反馈,而不仅仅是通常由指标表示的标量值。
Scorer 如何工作
Scorer 会分析 GenAI 应用程序的输入、输出和追踪,并生成质量评估。流程如下:
- 您提供一个数据集,其中包含inputs(以及可选的其他列,例如预期结果)
- MLflow 运行您的
predict_fn
以生成输出和追踪对于数据集中的每一行。或者,您可以直接在数据集中提供输出和追踪,并省略 predict 函数。 - Scorer 接收inputs,输出,预期结果、追踪(或其中的子集),并生成分数和元数据,例如解释和来源信息。
- 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 来标记和过滤追踪。
为了将追踪组织到错误类别中,请使用 Trace Tag 来标记和过滤追踪。
4
将失败模式转化为 Scorer
定义检查常见失败模式的 Scorer。例如,如果答案格式不正确,您可以定义一个 LLM-as-a-Judge Scorer 来检查格式是否正确。我们建议从简单的指令开始,然后进行迭代改进。
专业提示:Scorer 版本控制
随着您对 Scorer 的迭代,版本控制变得越来越重要。MLflow 可以跟踪 Scorer 版本,以帮助您管理更改并将改进后的 Scorer 与您的团队共享。