基于代码的 评分器 是你创建的 Python 函数。 当 内置 LLM 评委 和 自定义 LLM 评委 不符合你的评估需求时,请使用它们。 例如,基于代码的记分器使你能够:
- 定义自定义启发式或编程评估指标。
- 自定义如何将跟踪数据映射到 Databricks 内置 LLM 评判器。
- 使用自己的 LLM(而不是 Databricks 托管的 LLM 法官)进行评估。
- 需要比自定义 LLM 评审器提供的更高灵活性和控制力的其他用例。
您可以将同一个基于代码的评分器用于开发阶段的评估和生产环境中的监控。
选择定义样式
MLflow 支持两种方法来定义基于代码的评分器:
| Approach | 何时使用 | 生产监控 |
|---|---|---|
@scorer 修饰器 |
大多数情况。 建议的起点。 | 支持(在 Databricks 笔记本中定义并注册时)。 |
Scorer 类 |
需要有状态评分器、复杂的初始化或 Pydantic 字段。 | 不支持。 |
注意 与生产监控的兼容性
生产监控支持 内置的 LLM 评估器 和 @scorer装饰的函数。 对于生产监控,Scorer基于类的 子类。 如果你需要在生产环境中使用有状态评分器,请使用 @scorer 修饰器,并在函数体内部管理状态。
用于生产监控的、使用 @scorer 装饰的函数必须在 Databricks 笔记本中定义并注册。 监视服务序列化用于远程执行的函数代码,并且此序列化需要笔记本环境。 有关详细信息,请参阅 使用自定义记分器函数。
:::
后续步骤
- 开发基于代码的记分器 - 逐步完成基于代码的评分器的开发工作流。
- 基于代码的记分器示例 - 涵盖常见基于代码的记分器模式的工作示例。
-
在开发过程中评估 GenAI — 了解
mlflow.genai.evaluate()如何使用您的评分器。 - 监视生产中的 GenAI 应用 - 部署记分器进行持续监视。