在 Databricks 上部署的跟踪代理

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

跟踪记录到 MLflow 实验,可以实时查看。 可以选择使用 Delta 表进行长期存储。 请参阅 “部署跟踪应用 ”以比较部署和跟踪日志记录选项。

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

MLflow 生产跟踪概述

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

部署步骤

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

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

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

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

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

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

  3. 使用 Agent Framework 的创作接口包装代理的代码。 在代理代码中,使用 自动手动 检测启用 MLflow 跟踪。

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

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

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

    注释

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

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

代理中的跟踪现在实时 显示在 MLflow 试验中

示例笔记本

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

代理框架和 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

查看生产跟踪

在 MLflow 试验 UI 中查看生产跟踪。 生产跟踪显示:

  • 用户查询和代理响应
  • 反馈(向上/向下大拇指,评论)
  • 错误率和失败模式
  • 延迟和性能指标
  • 令牌消耗

生产跟踪 UI

将跟踪记录到 Delta 表

(可选)您可以记录跟踪信息到 Delta 表中,作为 MLflow 试验的补充:

  • 生产监视表建议):将跟踪同步到 Delta 表的作业每隔 15 分钟运行一次。 无需启用任何监视指标才能正常工作。 跟踪没有大小限制。

局限性

将跟踪记录到 MLflow 试验和 生产监视 表时,跟踪数和峰值负载限制。

后续步骤