专为生产环境优化的轻量级跟踪 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 跟踪规范构建的,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 都能为您提供所需的观测性,而不会带来您不需要的开销。