专为生产环境优化、轻量级的追踪 SDK
MLflow 提供一个名为 mlflow-tracing 的轻量级追踪 SDK 包,其中仅包含追踪和监控 GenAI 应用程序所需的核心功能。该包专为生产环境设计,在这些环境中,最小化依赖项和部署大小至关重要。
为什么要使用轻量级 SDK?
该软件包的大小和依赖项比完整的 MLflow 包显著减小,从而在 Docker 容器、无服务器函数和云应用程序等动态环境中实现更快的部署速度。
更少的依赖项意味着在跟进依赖项更新、安全补丁以及上游库的潜在不兼容更改方面的工作量减少。这还降低了依赖冲突和不兼容的可能性。
由于依赖项较少,MLflow Tracing 可以无缝地部署在不同的环境和平台中,而无需担心兼容性问题。
每个依赖项都可能引入安全漏洞。通过减少依赖项的数量,MLflow Tracing 最大限度地减小了攻击面,并降低了安全泄露的风险。
安装
使用 pip 安装轻量级 SDK
pip install mlflow-tracing
请勿将完整的 mlflow 包与轻量级的 mlflow-tracing SDK 一起安装,这可能会导致版本冲突和命名空间解析问题。
快速入门
以下是一个使用轻量级 SDK 配合 OpenAI 将追踪记录到远程 MLflow 服务器上的实验的简单示例
import mlflow
import openai
# Set the tracking URI to your MLflow server
mlflow.set_tracking_uri("http://your-mlflow-server:5000")
mlflow.set_experiment("genai-production-monitoring")
# Enable auto-tracing for OpenAI
mlflow.openai.autolog()
# Use OpenAI as usual - traces will be automatically logged
client = openai.OpenAI()
response = client.chat.completions.create(
model="gpt-4o-mini", messages=[{"role": "user", "content": "What is MLflow?"}]
)
print(response.choices[0].message.content)
选择您的后端
轻量级 SDK 可与各种可观测性平台配合使用。选择您偏好的选项并按照说明设置您的追踪后端。
- 自托管 MLflow
- Databricks
- OpenTelemetry
- Amazon SageMaker
- Nebius
MLflow 是一个完全开源的项目,允许您在自己的基础架构中自托管 MLflow 服务器。如果您希望完全控制自己的数据并受到使用云服务限制,这是一个绝佳的选择。
在自托管模式下,您需要负责运行跟踪服务器实例并根据您的需求进行扩展。我们强烈建议使用基于 SQL 的跟踪服务器,并辅以高性能数据库,以最大限度地减少运营开销并确保高可用性。
设置步骤
- 安装 MLflow 服务器:
pip install mlflow[extras] - 配置后端存储(推荐使用 PostgreSQL/MySQL)
- 配置工件存储(S3、Azure Blob、GCS 等)
- 启动服务器:
mlflow server --backend-store-uri postgresql://... --default-artifact-root s3://...
有关详细指南,请参阅跟踪服务器设置指南。
Databricks Lakehouse Monitoring for GenAI 是使用 MLflow Tracing 监控您的 GenAI 应用程序的首选解决方案。它提供了强大的、功能齐全的监控仪表板,用于卓越运营和质量分析。
无论您的应用程序是否托管在 Databricks 上,都可以使用 Lakehouse Monitoring for GenAI。
MLflow Tracing 基于 OpenTelemetry 追踪规范构建,这是一个行业标准的观测性框架,使其成为监控 GenAI 应用程序的供应商中立解决方案。
如果您正在使用 OpenTelemetry 作为您的可观测性技术栈的一部分,您无需任何额外的服务即可使用 MLflow Tracing。只需配置 OTLP 端点,MLflow 就会将追踪导出到您现有的可观测性平台。
设置示例
export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT="http://your-collector:4317/v1/traces"
export OTEL_SERVICE_NAME="genai-app"
有关详细的设置说明,请参阅OpenTelemetry 集成文档。

MLflow on Amazon SageMaker 是 AWS SageMaker 平台提供的完全托管服务,包括追踪和其他 MLflow 功能,如模型注册表。
MLflow Tracing 为追踪 Amazon Bedrock 提供了一种单行集成解决方案,使其成为监控由 AWS 和 Amazon Bedrock 驱动的 GenAI 应用程序的最适合解决方案。

支持的功能
轻量级 SDK 包含监控 GenAI 应用程序的所有核心追踪功能。点击下面的卡片,了解每个支持功能的更多信息。
MLflow Tracing SDK 支持与所有最流行的 LLM/GenAI 库(包括 OpenAI、Anthropic、LangChain、LlamaIndex、Hugging Face、DSPy 以及任何符合 OpenAI API 格式的 LLM 提供商)进行单行集成。这种自动追踪能力使您能够以最小的努力监控您的 GenAI 应用程序,并轻松地在不同库之间切换。
MLflow Tracing SDK 提供了一个简单直观的 API,用于手动插桩您的 GenAI 应用程序。手动插桩和自动追踪可以结合使用,允许您追踪包含自定义代码的高级应用程序,并对追踪行为进行精细控制。
通过为追踪添加自定义标签,您可以为追踪添加更多上下文,以便对它们进行分组并简化后续的搜索过程。当您想追踪跨多个请求会话运行的应用程序或跟踪特定用户交互时,这非常有用。
使用基于执行时间、状态、标签、元数据和其他属性的强大类 SQL 语法搜索和过滤追踪。非常适合调试问题、分析性能模式和监控生产应用程序。
配置异步日志记录,处理高吞吐量追踪,并与企业级可观测性平台集成。包含全面的生产部署模式和可扩展追踪基础架构的最佳实践。
生产环境配置示例
以下是一个为生产环境使用轻量级 SDK 的完整示例
import mlflow
import os
from your_app import process_user_request
# Configure MLflow for production
mlflow.set_tracking_uri(os.getenv("MLFLOW_TRACKING_URI", "http://mlflow-server:5000"))
mlflow.set_experiment(os.getenv("MLFLOW_EXPERIMENT_NAME", "production-genai-app"))
# Enable automatic tracing for your LLM library
mlflow.openai.autolog() # or mlflow.langchain.autolog(), etc.
@mlflow.trace
def handle_user_request(user_id: str, session_id: str, message: str):
"""Production endpoint with comprehensive tracing."""
# Add production context to trace
mlflow.update_current_trace(
tags={
"user_id": user_id,
"session_id": session_id,
"environment": "production",
"service_version": os.getenv("SERVICE_VERSION", "1.0.0"),
}
)
try:
# Your application logic here
response = process_user_request(message)
# Log success metrics
mlflow.update_current_trace(
tags={"response_length": len(response), "processing_successful": True}
)
return response
except Exception as e:
# Log error information
mlflow.update_current_trace(
tags={
"error": True,
"error_type": type(e).__name__,
"error_message": str(e),
},
)
raise
不包含的功能
轻量级包中不提供以下 MLflow 功能
- MLflow 追踪服务器和 UI - 请使用完整的 MLflow 包来运行服务器
- 运行管理 API -
mlflow.start_run()、mlflow.log_metric()等 - 模型日志记录和评估 - 模型序列化和评估框架
- 模型注册表 - 模型版本控制和生命周期管理
- MLflow Projects - 可复现的 ML 项目格式
- MLflow Recipes - 预定义的 ML 工作流
- 其他 MLflow 组件 - 与追踪无关的功能
对于这些功能,请使用完整的 MLflow 包:pip install mlflow
从完整 MLflow 迁移
如果您目前正在使用完整的 MLflow 包并希望切换到轻量级 SDK 以用于生产环境
1. 更新依赖项
# Remove full MLflow
pip uninstall mlflow
# Install lightweight SDK
pip install mlflow-tracing
2. 更新导入语句
大多数追踪功能保持不变
# These imports work the same way
import mlflow
import mlflow.openai
from mlflow.tracing import trace
# These features are NOT available in mlflow-tracing:
# import mlflow.sklearn # ❌ Model logging
# mlflow.start_run() # ❌ Run management
# mlflow.log_metric() # ❌ Metric logging
3. 更新配置
专注于特定于追踪的配置
# Configure tracking URI (same as before)
mlflow.set_tracking_uri("http://your-server:5000")
mlflow.set_experiment("your-experiment")
# Tracing works the same way
@mlflow.trace
def your_function():
# Your code here
pass
软件包大小比较
| 软件包 | 尺寸 | 依赖项 | 用例 |
|---|---|---|---|
mlflow | 约 1000MB | 20+ 个包 | 开发、实验、完整的 ML 生命周期 |
mlflow-tracing | 约 5MB | 5-8 个包 | 生产环境追踪、监控、可观测性 |
轻量级 SDK 比完整 MLflow 包小 95%,非常适合
- 容器部署
- 无服务器函数
- 边缘计算
- 生产微服务
- CI/CD 管道
总结
MLflow Tracing SDK 提供了一个针对生产环境优化的解决方案,用于监控 GenAI 应用程序,具有
- 最小的占用空间,实现快速部署
- 完整的追踪功能,实现全面监控
- 灵活的后端选项,从自托管到企业平台
- 从完整 MLflow 包轻松迁移
- 生产就绪的功能,包括异步日志记录和错误处理
无论您运行的是小型原型还是大型生产系统,轻量级 SDK 都能提供您所需的可观测性,而无需不必要的开销。