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.
MLflow 跟踪通过捕获可在 MLflow UI 中查看的执行详细信息或作为表进行分析,为生产代 AI 代理和应用提供全面的可观测性。
Databricks 在每个工作区中提供完全托管的、用于生产环境的 MLflow 跟踪服务。 将追踪 URI 设置为 databricks
之后,Databricks 将安全地存储和提供追踪数据,无需部署或操作单独的追踪数据库或服务器。
生产跟踪的工作原理:
应用为每个 API 调用生成跟踪。 你的应用可以在模型服务(本指南)中运行,也可以是 外部应用程序。
跟踪将实时记录 到 Databricks MLflow 跟踪服务器中的试验,并 选择性地记录到 Delta 表。
- 对于开发,请使用记录到 MLflow 试验的跟踪。
- 对于生产,请使用 MLflow 试验日志记录和/或日志记录到 Delta 表。
使用 MLflow UI、生产监视或自定义评估来分析和监视跟踪。
使用代理框架进行部署(建议)
生产跟踪适用于 Databricks 内部或外部部署的 GEN AI 应用。 本部分介绍使用 Databricks 模型服务部署的跟踪应用。 有关外部部署的应用,请参阅 Databricks 外部部署的跟踪代理。
部署步骤
首先,为跟踪设置存储位置:
接下来,在 Python 笔记本中,使用 MLflow 跟踪检测代理,并使用 Agent Framework 部署代理:
在 Python 环境中安装
mlflow[databricks]
。 使用最新版本。使用
mlflow.set_experiment(...)
. 连接到 MLflow 试验。使用 Agent Framework 的创作接口包装代理的代码。 在代理代码中,使用 自动 或 手动 检测启用 MLflow 跟踪。
将代理记录为 MLflow 模型,并将其注册到 Unity 目录。
确保
mlflow
位于模型的 Python 依赖项中,其包版本与笔记本环境中所用的包版本相同。用于
agents.deploy(...)
将 Unity 目录模型(代理)部署到模型服务终结点。
代理中的跟踪现在实时 显示在 MLflow 试验中 。
示例笔记本
以下笔记本提供了使用 Agent Framework 将跟踪记录到 MLflow 试验的简单第一代 AI 应用的示例,具体步骤如下所述。
代理框架和 MLflow 跟踪笔记本
使用自定义 CPU 服务进行部署(替代)
如果无法使用 代理框架部署代理,本部分介绍如何使用自定义 CPU 模型服务在 Databricks 上部署代理。 否则,请跳到 下一部分。
首先,为跟踪设置存储位置:
接下来,在 Python 笔记本中,使用 MLflow 跟踪检测代理,并使用模型服务 UI 或 API 来部署代理:
将代理记录为 MLflow 模型。 在代理代码中,使用 自动 或 手动 检测启用 MLflow 跟踪。
在代理的代码中,确保使用自动或手动检测启用跟踪
将模型部署到 CPU 服务。
预配具有 MLflow 试验访问权限的服务主体或个人访问令牌(PAT
CAN_EDIT
)。在 CPU 服务终结点页中,转到“编辑终结点”。对于要跟踪的每个已部署模型,请添加以下环境变量:
ENABLE_MLFLOW_TRACING=true
MLFLOW_EXPERIMENT_ID=<ID of the experiment you created>
如果预配了服务主体,请设置
DATABRICKS_CLIENT_ID
和DATABRICKS_CLIENT_SECRET
。 如果预配了 PAT,请设置DATABRICKS_HOST
和DATABRICKS_TOKEN
。
查看生产跟踪
部署代理后,可以在 MLflow 试验 UI 中查看其跟踪,就像开发中的跟踪一样。 这些生产跟踪提供有价值的见解:
- 真正的用户查询和代理响应 - 确切地了解用户询问的内容以及代理响应方式
- 来自用户反馈的质量见解 - 查看附加到生产跟踪的向上/向下评分、批注和其他反馈
- 错误率和失败模式 - 确定代理失败的时间和原因
- 行为模式 - 了解用户如何与代理交互并确定改进机会
- 延迟和性能指标 - 监视生产中的响应时间和系统性能
- 资源使用情况和成本 - 跟踪令牌消耗和相关成本
将跟踪记录到 Delta 表
部署代理后,除了 MLflow 试验之外,还可以选择将跟踪记录到 Delta 表。 可通过两种方式支持此日志记录:
- 生产监视表 (建议):通过转到 MLflow 试验中的 “监视 ”选项卡并选择 Unity 目录架构来启用。 要同步跟踪到 Delta 表的作业每 15 分钟运行一次。 无需启用任何监视指标才能正常工作。 跟踪没有大小限制。
将元数据添加到跟踪
基本跟踪工作后,添加元数据或上下文,以便更好地进行调试和见解。 MLflow 提供标准化标记和属性来捕获重要的上下文信息,包括:
- 请求跟踪 - 将跟踪与特定 API 调用关联,以实现端到端调试
- 用户会话 - 组相关交互以了解用户旅程
- 环境数据 - 跟踪生成每个跟踪的部署、版本或区域
- 用户反馈 - 收集质量分级并将其链接到特定交互
开始 向跟踪添加元数据和用户反馈。
跟踪令牌使用情况和成本
在开发和生产中,MLflow 跟踪可以跟踪 LLM 调用的令牌使用情况,可用于计算成本。 跟踪使用 LLM 提供程序 API 返回的令牌计数。
MLflow 跟踪本机支持通过 OpenAI 客户端调用的 Databricks Foundation 模型 API 以及许多其他 LLM 提供程序(如 OpenAI、 LangChain 和 LangGraph)的令牌使用情况跟踪。 之后,可以编程方式查询令牌使用情况,如以下示例所示。
# Get aggregated token usage (if available)
token_usage = trace.info.token_usage
if token_usage:
print(f"Input tokens: {token_usage.get('input_tokens')}")
print(f"Output tokens: {token_usage.get('output_tokens')}")
print(f"Total tokens: {token_usage.get('total_tokens')}")
有关更多详细信息,请参阅 令牌使用情况信息 。
可以根据 LLM 提供商的定价计划使用这些令牌计数来计算成本。 请记住,许多提供程序对输入和输出令牌收取不同的费率。
局限性
将跟踪记录到 MLflow 试验和 生产监视 表时,跟踪数和峰值负载限制。
后续步骤
- 将元数据添加到跟踪,包括用户或会话 ID、自定义标记或用户反馈,以改进调试和见解
特性参考
有关本指南中的概念和功能的详细信息,请参阅: