共用方式為

在 Databricks 上部署的跟踪代理

本页演示如何在 Databricks 上部署 GenAI 应用程序,以便自动捕获生产跟踪。

有关在 Databricks 外部部署的应用,请参阅 Databricks 外部部署的跟踪代理

MLflow 生产跟踪概述

使用代理框架进行部署(建议)

设置跟踪数据的存储位置:

  1. 如果计划使用 生产监视 将跟踪存储在 Delta 表中,请确保为工作区启用跟踪。

  2. 创建用于存储应用生产跟踪的 MLflow 试验

接下来,在 Python 笔记本中,使用 MLflow 跟踪检测代理,并使用 Agent Framework 部署代理:

  1. 在 Python 环境中安装最新版本 mlflow[databricks]

  2. 使用 mlflow.set_experiment(...). 连接到 MLflow 试验。

  3. 使用 MLflow ResponsesAgent 包装代理代码。 在代理代码中,使用 自动手动 检测启用 MLflow 跟踪。

  4. 将代理记录为 MLflow 模型,并将其注册到 Unity 目录。

  5. 确保 mlflow 位于模型的 Python 依赖项中,其包版本与笔记本环境中所用的包版本相同。

  6. 用于 agents.deploy(...) 将 Unity 目录模型(代理)部署到模型服务终结点。

注释

如果要从存储在 Databricks Git 文件夹中的笔记本部署代理,则默认情况下,MLflow 3 实时跟踪不起作用。

若要启用实时跟踪,请先将试验设置为非 Git 关联的试验 mlflow.set_experiment() ,然后再运行 agents.deploy()

此笔记本演示上述部署步骤。

代理框架和 MLflow 跟踪笔记本

获取笔记本

使用自定义 CPU 服务进行部署(替代)

如果无法使用代理框架,请改用自定义 CPU 模型服务部署代理。

首先,为跟踪设置存储位置:

  1. 如果计划使用 生产监视 将跟踪存储在 Delta 表中,请确保为工作区启用跟踪。

  2. 创建用于存储应用生产跟踪的 MLflow 试验

接下来,在 Python 笔记本中,使用 MLflow 跟踪检测代理,并使用模型服务 UI 或 API 来部署代理:

  1. 将代理通过 自动手动 跟踪工具记录为 MLflow 模型。

  2. 将模型部署到 CPU 服务。

  3. 预配具有 MLflow 试验访问权限的服务主体或个人访问令牌(PAT CAN_EDIT )。

  4. 在 CPU 服务终结点页中,转到“编辑终结点”。对于要跟踪的每个已部署模型,请添加以下环境变量:

  5. ENABLE_MLFLOW_TRACING=true

  6. MLFLOW_EXPERIMENT_ID=<ID of the experiment you created>

  7. 如果预配了服务主体,请设置 DATABRICKS_CLIENT_IDDATABRICKS_CLIENT_SECRET。 如果预配了 PAT,请设置 DATABRICKS_HOSTDATABRICKS_TOKEN

跟踪数据存储

Databricks 会在部署过程中将跟踪记录到由 mlflow.set_experiment(...) 设置的 MLflow 实验中。 追踪可实时在 MLflow UI 中查看。

跟踪被存储为工件,您可以指定自定义存储位置。 例如,如果您创建一个工作区实验并将artifact_location设置为 Unity Catalog 卷,那么数据访问的跟踪将受到Unity Catalog 卷权限的管理。

使用生产监控长期存储跟踪数据

将跟踪记录到 MLflow 试验后,可以选择使用 生产监控 (beta 版)将其长久存储在 Delta 表中。

生产监控在跟踪存储中的优点:

  • 持久存储:在 Delta 表中存储跟踪,以便在 MLflow 试验项目生命周期之外长期保留。
  • 无跟踪大小限制:与备用存储方法不同,生产监视处理任何大小的跟踪。
  • 自动化质量评估:在生产跟踪上运行 MLflow 评分程序以持续监视应用程序质量。
  • 快速同步:跟踪大约每 15 分钟同步到 Delta 表。

后续步骤