MLflow Tracing 用于 LLM 可观测性
MLflow Tracing 是一项功能,通过捕获应用程序服务执行的详细信息,增强了生成式 AI (GenAI) 应用中的 LLM 可观测性。Tracing 提供了一种记录请求中每个中间步骤的输入、输出和关联元数据的方式,使您能够轻松查明错误和意外行为的来源。
为何选择 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 生态系统中值得信赖的标准。
可观测性和跟踪简介
如果您是跟踪或可观测性概念的新手,我们建议从跟踪 101 页面开始。
跟踪贯穿机器学习项目的端到端生命周期,为您提供支持。单击下面的选项卡可查看它如何在工作流程的每个步骤中更详细地帮助您。
- 调试
- 评估数据集
- 检查质量
- 生产监控
在您的 IDE 或 Notebook 中获得完整的调试体验
MLflow 的跟踪功能提供了对生成式 AI 库抽象层之下发生情况的深入洞察,帮助您精确定位问题发生的位置。
您可以在您偏好的 IDE 或 notebook 内无缝导航跟踪,无需在多个选项卡之间切换或在大量跟踪列表中搜索。
构建高质量的评估数据集
评估您的生成式 AI 应用程序的性能至关重要,但创建可靠的评估数据集可能具有挑战性。跟踪可以作为丰富的数据源,帮助您构建高质量数据集,并为检索器和工具等内部组件提供精确指标。
与MLflow LLM 评估结合使用时,MLflow 提供了评估和改进应用程序性能的无缝体验。
用于改进质量的根本原因分析
使用MLflow LLM 评估评估模型后,您可以探索评估运行期间自动生成的跟踪,以识别质量问题的根本原因 — 例如,检索到的文档不足。
跟踪使您能够详细分析问题并快速迭代,从而提高应用程序的质量。
使用您偏好的可观测性堆栈监控应用程序
机器学习项目并非首次发布即告结束。持续监控和增量改进对于长期成功至关重要。
您也可以将 MLflow 放入现有的可观测性堆栈中。MLflow 可以将跟踪导出到任何兼容 OpenTelemetry 的存储,包括 Grafana、Prometheus、Datadog 等。有关更多详细信息,请参阅将跟踪导出到其他服务。
以下是使用 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 与您偏好的库集成。
您偏好的库不在列表中?请考虑为 MLflow Tracing 贡献或向我们的 Github 仓库提交功能请求。
手动跟踪
除了单行代码的自动跟踪体验之外,MLflow 还提供了用于手动检测代码和操作跟踪的 Python SDK。
有关 SDK 的更多详细信息,请参阅跟踪操作指南。
审查跟踪
MLflow Traces 可以通过几种方式进行审查
-
MLflow UI:MLflow UI 提供了一个丰富的界面,用于探索跟踪。您可以查看特定实验、运行的跟踪,并根据各种条件搜索和过滤跟踪。您可以通过在终端中运行
mlflow ui
并导航至https://:5000
来启动 UI。 -
Jupyter Notebook:跟踪 UI 在 Jupyter notebook 中也可用!当单元格生成跟踪时,跟踪 UI 将自动显示,无需在 notebook 和网页浏览器之间切换。有关更多详细信息,请参阅Jupyter Notebook 集成。
查询跟踪
跟踪数据对于各种下游任务很有用,例如创建用于离线评估和生产监控的评估数据集。MLflow 提供了多个 API 来以编程方式搜索和检索记录的跟踪。有关更多详细信息,请参阅搜索和检索跟踪。
生产环境中的跟踪
MLflow Tracing 已准备好投入生产。阅读生产环境跟踪,获取在生产中监控模型和各种后端选项的指南。
MLflow Tracing 支持在 MLflow 2.14.0 版本中可用。