Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
适用于 GenAI 的 MLflow 提供了一个专为开发、评估和监视生成式 AI 应用程序而设计的综合数据模型。 本页介绍核心概念及其协同工作方式。
概述
MLflow 的核心是在 试验中组织所有 GenAI 应用程序数据。 将试验视为一个项目文件夹,其中包含整个应用生命周期中的每个跟踪、评估运行、应用版本、提示和质量评估。
- 试验:单个应用程序数据的容器
注释
MLflow 只要求使用跟踪数据。 数据模型的其他所有方面都是可选的,但强烈建议这样做。
2. MLflow 提供 SDK,用于与应用的数据交互,以评估和提高质量:
-
_
mlflow.genai.scorers._
*:用于分析跟踪质量并创建反馈评估的函数 -
mlflow.genai.evaluate()
:用于使用 评估数据集 和 评分器 评估应用的版本的 SDK,用于识别和改进质量问题 -
mlflow.genai.add_scheduled_scorer()
:用于在生产跟踪上运行评审器并监控质量的 SDK
- 评审应用程序:用于收集领域专家评估的 Web UI
- MLflow 试验 UI:用于查看和与跟踪、评估结果、标记会话、应用版本和提示进行交互的 UI。
1. 数据模型
下面提供了 MLflow 数据模型中每个实体的概述。
实验
MLflow 中的 试验 是一个命名容器,用于组织和组合与单个 GenAI 应用程序相关的所有项目。 试验类似于项目,可确保应用程序及其数据在逻辑上是分开的。
如果您熟悉经典 ML 的 MLflow,那么经典 ML 和 GenAI 之间的实验容器是相同的。
可观测性数据
跟踪
追踪记录 捕获 GenAI 应用程序的完整运行过程,包括输入、输出以及每个中间步骤(LLM 调用、检索、工具使用)。 踪迹:
使用跟踪的目的包括:
- 观察和调试应用程序行为和性能(延迟、成本等)
- 基于生产日志创建 评估数据集 ,以用于质量评估
了解更多跟踪数据模型参考、查看快速入门以记录第一个跟踪,或查看“为应用添加跟踪”指南。
评估
评估是附加到跟踪的数据质量度量与实际标签。 有 2 种类型的 评估:
反馈:对应用输出质量的判断
- 由最终用户、域专家或自动评分者添加
- 用于识别质量问题
- 示例
- 终端用户的点赞/点踩评分
- 大语言模型评审员对响应正确性的评估
期望值:定义给定输入对应正确输出的实际标签
- 由领域专家添加
- 用作评估应用是否生成正确响应的“黄金标准”
- 示例
- 对问题的预期响应
- 必须在响应中存在的必需事实
注释
使用 MLflow 评估质量时不一定需要期望值。 大多数应用没有,或只有极少的实际标签。
详细了解 日志记录评估、了解如何 收集用户反馈,或了解如何 使用记分器 创建自动 评估。
评估数据
评估数据集
评估数据集 是测试用例的特选集合,用于系统地测试应用程序。 评估数据集:
- 通常通过从生产或开发中选取具有代表性的跟踪来创建
- 包括输入内容,也可选包含期望值(实际标签)
- 随着时间推移具版本管理功能,以追踪测试套件演进情况
评估数据集 用于:
- 以迭代方式评估和提高应用的质量
- 验证更改以防止质量回归
在 评估数据集参考中了解详细信息,请按照指南 生成评估数据集,或了解如何 使用生产跟踪 来改进数据集。
评估运行
评估运行指使用一组评审器对某版本应用与评估数据集进行测试的结果。 评估运行:
- 包含通过评估生成的跟踪(及其评估项)
- 包含根据评估项聚合生成的度量指标
评估运行的用途包括:
- 确定应用程序更改是否改善或降低了质量
- 将应用程序版本进行并排比较
- 跟踪一段时间内的质量评估
注释
评估运行是一种特殊的 MLflow Run 类型,可以通过mlflow.search_runs()
进行查询。
人工标记数据
标记会话
标注会话会将跟踪组织起来供领域专家进行人工审阅。 标注会话:
标注会话的用途包括:
- 收集有关复杂或模糊案例的专家反馈
- 为评估数据集创建基本事实数据
注释
标签会话是一种特殊的 MLflow 运行类型,可以通过 mlflow.search_runs()
进行查询。
了解 标记会话的更多信息,按照指南 收集领域专家反馈,或了解如何 在开发过程中进行标记。
标记架构
标记架构定义在标记会话中收集的评估,确保跨域专家进行一致的标签收集。 标注架构:
- 指定询问审阅者的问题(例如“此响应准确吗?”等)
- 定义对问题的有效响应(例如点赞/点踩、1-5 等级、自由文本评论等)
在 标记架构参考 中了解详细信息,或在 “查看应用”指南中查看示例。
应用程序版本控制数据
提示语
提示 是用于 LLM 提示的版本管理模板。 提示:
- 具备类似 Git 的版本历史管理功能
- 包括
{{variables}}
用于动态生成 - 与评估运行关联,用于追踪其随时间的质量变化
- 支持使用 “production” 等别名进行部署管理
已记录模型
记录的模型代表您应用在特定时间点的快照。 已记录模型:
一个已记录模型可:
- 作为元数据中心,将概念上的应用版本与其具体的外部代码(如 Git 提交)关联
- 将应用程序的代码和配置打包为完全可部署的项目
详细了解 版本跟踪、了解如何 跟踪应用程序版本,或了解如何 将跟踪链接到版本。
2. 用于评估质量的 SDK
这些是评估轨迹质量的关键过程,将评估结果附在包含该结果的轨迹上。
得分者
mlflow.genai.scorers.*
是用于评估跟踪质量的函数。
记分器:
- 解析跟踪以获取需评估的数据字段
- 使用该数据,基于确定性代码或 LLM 评审标准进行质量评估
- 返回具有该评估结果的 1 个或多个反馈实体
重要的是,相同的 记分器 可用于开发和生产中的评估。
注释
得分员与评委:如果你熟悉 LLM 评委,你可能会想知道他们与得分手的关系。 在 MLflow 中, 法官 是一个可调用的 SDK(例如 mlflow.genai.judges.is_correct
),它基于特定条件评估文本。 但是,法官不能直接处理痕迹——他们只理解文本输入。 这就是 记分器 发挥作用的地方:它们从跟踪中提取相关数据(例如请求、响应和检索的上下文),并将这些数据传递给法官进行评估。 可以将评审器视为连接跟踪与评估逻辑的“适配器”,无论该逻辑来自 LLM 评审员还是自定义代码。
详细了解 评分员、探索 预定义的 LLM 评委,或了解如何 创建自定义评分器。
开发中的评估
mlflow.genai.evaluate()
是 MLflow 的 SDK,用于系统地评估应用程序的质量。 评估执行器接收一个评估数据集、一组评审器,以及应用程序预测函数作为输入,并创建一个评估运行,该运行包含附有反馈评估项的跟踪,方式如下:
评估工具包用于反复评估应用程序的可能的改进,帮助你:
- 验证变更是否提升了(或降低了)质量
- 确定进一步提高质量的其他改进
在生产环境中评估:
databricks.agents.create_external_monitor()
允许您调度评审器,自动评估来自已部署应用的跟踪数据。 一旦调度评审器后,生产监控服务将:
生产监视用于快速检测质量问题,并识别有问题的查询或用例,以改进开发。
3. 用户界面
评审应用
“评审应用程序”是一个 Web UI,供领域专家基于标注架构为跟踪添加评估项。 它展示标注会话中的跟踪,并收集基于标注架构的评估项。
了解详细信息: 查看应用指南
MLflow 实验 UI
MLflow 实验 UI 提供以下界面:
- 查看与搜索跟踪数据
- 查看跟踪中的反馈与期望值
- 分析评估结果
- 管理 评估数据集
- 管理版本与提示