虽然 MLflow 的 自动跟踪 为支持的框架提供即时可观测性,但手动跟踪可让你完全控制 GenAI 应用程序的检测方式。 这种灵活性对于生成需要详细监视和调试功能的生产就绪应用程序至关重要。
何时使用手动跟踪
如果需要,手动跟踪是正确的选择:
对跟踪结构进行精细化控制
- 准确定义要跟踪的代码部分
- 创建自定义跨度层次结构
- 控制范围边界和关系
自定义框架检测
- 检测专有框架或内部框架
- 将跟踪功能添加到自定义 LLM 封装器
- 在正式集成之前支持新库
高级工作流方案
- 多线程或异步操作
- 使用自定义聚合进行流式处理响应
- 复杂的嵌套操作
- 自定义跟踪元数据和属性
先决条件
MLflow 3
此页面需要以下包:
- mlflow[databricks]>=3.1:具有 GenAI 功能和 Databricks 连接的核心 MLflow 功能。
- openai>=1.0.0:(可选)仅当自定义代码与 OpenAI 交互时;根据需要替换为其他 SDK。
安装基本要求:
%pip install --upgrade "mlflow[databricks]>=3.1"
# %pip install --upgrade openai>=1.0.0 # Install if needed
MLflow 2.x
本指南需要以下包:
- mlflow[databricks]>=2.15.0,3.0.0<:具有 Databricks 连接的核心 MLflow 功能。
- openai>=1.0.0:(可选)仅当自定义代码与 OpenAI 交互时。
注释
Databricks 强烈建议安装 MLflow 3.1 或更高版本(如果使用 mlflow[databricks])。
安装基本要求:
%pip install --upgrade "mlflow[databricks]>=2.15.0,<3.0.0"
# pip install --upgrade openai>=1.0.0 # Install if needed
应使用哪个 API?
根据需要选择合适的手动跟踪方法:
| 功能 | 函数修饰器 | 跨度跟踪 | Low-Level API |
|---|---|---|---|
| 用例 | 使用单行修饰器跟踪整个函数。 所需的代码更改最少。 | 在函数内跟踪任意代码块以实现精细控制。 | 直接控制复杂方案的跟踪生命周期。 |
| 自动父子级 | 是的 | 是的 | 否 - 手动管理 |
| 异常处理 | 自动 | 自动 | 手动 |
| 适用于自动跟踪 | 是的 | 是的 | 否 |
| 线程安全性 | 自动 | 自动 | 手动 |
| 自定义跟踪 ID | 否 | 否 | 是的 |