轻量级跟踪 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 都能提供您所需的可观察性,而不会产生您不需要的开销。