跳至主内容

MLflow Tracing 用于 LLM 可观测性

MLflow Tracing 是一项功能,通过捕获应用程序服务执行的详细信息,增强了生成式 AI (GenAI) 应用中的 LLM 可观测性。Tracing 提供了一种记录请求中每个中间步骤的输入、输出和关联元数据的方式,使您能够轻松查明错误和意外行为的来源。

Tracing Gateway Video

为何选择 MLflow?
  • 🪽 免费且开源 - MLflow 是开源的,完全免费。您无需支付额外的 SaaS 费用即可将可观测性添加到您的生成式 AI 堆栈中。您的跟踪数据托管在您自己的基础设施上。

  • 🥇 标准 - MLflow Tracing 兼容 OpenTelemetry,这是一种行业标准的可观测性规范。您可以将跟踪数据导出到现有可观测性堆栈中的各种服务,例如 Grafana、Prometheus、Datadog、New Relic 等。

  • 🤝 框架支持 - MLflow Tracing 集成了 15+ 个生成式 AI 库,包括 OpenAI、LangChain、LlamaIndex、DSPy 等。有关支持库的完整列表,请参阅自动跟踪部分。

  • 🔄 端到端 - MLflow 专为管理端到端机器学习生命周期而设计。凭借其模型跟踪和评估功能,MLflow 使您能够充分利用您的跟踪数据。

  • 👥 社区 - 作为 Linux 基金会的一部分,MLflow 拥有充满活力的开源社区。凭借 19,000+ GitHub Star 和 1500 万+ 每月下载量,MLflow 是 MLOps/LLMOps 生态系统中值得信赖的标准。

可观测性和跟踪简介

tip

如果您是跟踪或可观测性概念的新手,我们建议从跟踪 101 页面开始。

跟踪贯穿机器学习项目的端到端生命周期,为您提供支持。单击下面的选项卡可查看它如何在工作流程的每个步骤中更详细地帮助您。

在您的 IDE 或 Notebook 中获得完整的调试体验

MLflow 的跟踪功能提供了对生成式 AI 库抽象层之下发生情况的深入洞察,帮助您精确定位问题发生的位置。

您可以在您偏好的 IDE 或 notebook 无缝导航跟踪,无需在多个选项卡之间切换或在大量跟踪列表中搜索。

Trace Error

以下是使用 OpenAI Python SDK 的 MLflow Tracing 的最简单示例

import mlflow
import openai

# Enable MLflow automatic tracing for OpenAI with one line of code!
mlflow.openai.autolog()

# Use OpenAI Python SDK as usual
openai.OpenAI().chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": "You are a chatbot."},
{"role": "user", "content": "What is the weather like today?"},
],
)

# Then go to MLflow UI (if not started, run `mlflow ui` in your terminal) to see the trace!

自动跟踪

MLflow Tracing 已与各种生成式 AI 库集成,并为每个库(以及它们的组合!)提供一行代码的自动跟踪体验。单击下面的图标查看详细示例,了解如何将 MLflow 与您偏好的库集成。

LangChain Logo
LangGraph Logo
LlamaIndex Logo
DSPy Logo
OpenAI Logo
OpenAI Logo
OpenAI Swarm Logo
DeepSeek Logo
Bedrock Logo
AutoGen Logo
Gemini Logo
LiteLLM Logo
Anthropic Logo
CrewAI Logo
Ollama Logo
Groq Logo
Groq Logo
Instructor Logo
txtai Logo

Hint

您偏好的库不在列表中?请考虑为 MLflow Tracing 贡献向我们的 Github 仓库提交功能请求

手动跟踪

除了单行代码的自动跟踪体验之外,MLflow 还提供了用于手动检测代码和操作跟踪的 Python SDK。

  1. 使用 @mlflow.trace 装饰器检测函数。
  2. 使用 mlflow.start_span 上下文管理器检测任意代码块。
  3. 使用标签对跟踪进行分组或注释。
  4. 全局禁用跟踪。

有关 SDK 的更多详细信息,请参阅跟踪操作指南

审查跟踪

MLflow Traces 可以通过几种方式进行审查

  1. MLflow UI:MLflow UI 提供了一个丰富的界面,用于探索跟踪。您可以查看特定实验、运行的跟踪,并根据各种条件搜索和过滤跟踪。您可以通过在终端中运行 mlflow ui 并导航至 https://:5000 来启动 UI。

  2. Jupyter Notebook:跟踪 UI 在 Jupyter notebook 中也可用!当单元格生成跟踪时,跟踪 UI 将自动显示,无需在 notebook 和网页浏览器之间切换。有关更多详细信息,请参阅Jupyter Notebook 集成

查询跟踪

跟踪数据对于各种下游任务很有用,例如创建用于离线评估和生产监控的评估数据集。MLflow 提供了多个 API 来以编程方式搜索和检索记录的跟踪。有关更多详细信息,请参阅搜索和检索跟踪

生产环境中的跟踪

MLflow Tracing 已准备好投入生产。阅读生产环境跟踪,获取在生产中监控模型和各种后端选项的指南。

note

MLflow Tracing 支持在 MLflow 2.14.0 版本中可用。