跳到主要内容

专为生产环境优化、轻量级的追踪 SDK

MLflow 提供一个名为 mlflow-tracing 的轻量级追踪 SDK 包,其中仅包含追踪和监控 GenAI 应用程序所需的核心功能。该包专为生产环境设计,在这些环境中,最小化依赖项和部署大小至关重要。

为什么要使用轻量级 SDK?

🏎️ 更快的部署

该软件包的大小和依赖项比完整的 MLflow 包显著减小,从而在 Docker 容器、无服务器函数和云应用程序等动态环境中实现更快的部署速度。

🔧 简化的依赖管理

更少的依赖项意味着在跟进依赖项更新、安全补丁以及上游库的潜在不兼容更改方面的工作量减少。这还降低了依赖冲突和不兼容的可能性。

📦 增强的可移植性

由于依赖项较少,MLflow Tracing 可以无缝地部署在不同的环境和平台中,而无需担心兼容性问题。

🔒 降低安全风险

每个依赖项都可能引入安全漏洞。通过减少依赖项的数量,MLflow Tracing 最大限度地减小了攻击面,并降低了安全泄露的风险。

安装

使用 pip 安装轻量级 SDK

bash
pip install mlflow-tracing
警告

请勿将完整的 mlflow 包与轻量级的 mlflow-tracing SDK 一起安装,这可能会导致版本冲突和命名空间解析问题。

快速入门

以下是一个使用轻量级 SDK 配合 OpenAI 将追踪记录到远程 MLflow 服务器上的实验的简单示例

python
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 是一个完全开源的项目,允许您在自己的基础架构中自托管 MLflow 服务器。如果您希望完全控制自己的数据并受到使用云服务限制,这是一个绝佳的选择。

在自托管模式下,您需要负责运行跟踪服务器实例并根据您的需求进行扩展。我们强烈建议使用基于 SQL 的跟踪服务器,并辅以高性能数据库,以最大限度地减少运营开销并确保高可用性。

设置步骤

  1. 安装 MLflow 服务器:pip install mlflow[extras]
  2. 配置后端存储(推荐使用 PostgreSQL/MySQL)
  3. 配置工件存储(S3、Azure Blob、GCS 等)
  4. 启动服务器:mlflow server --backend-store-uri postgresql://... --default-artifact-root s3://...

有关详细指南,请参阅跟踪服务器设置指南

支持的功能

轻量级 SDK 包含监控 GenAI 应用程序的所有核心追踪功能。点击下面的卡片,了解每个支持功能的更多信息。

生产环境配置示例

以下是一个为生产环境使用轻量级 SDK 的完整示例

python
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. 更新依赖项

bash
# Remove full MLflow
pip uninstall mlflow

# Install lightweight SDK
pip install mlflow-tracing

2. 更新导入语句

大多数追踪功能保持不变

python
# 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. 更新配置

专注于特定于追踪的配置

python
# 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约 1000MB20+ 个包开发、实验、完整的 ML 生命周期
mlflow-tracing约 5MB5-8 个包生产环境追踪、监控、可观测性

轻量级 SDK 比完整 MLflow 包小 95%,非常适合

  • 容器部署
  • 无服务器函数
  • 边缘计算
  • 生产微服务
  • CI/CD 管道

总结

MLflow Tracing SDK 提供了一个针对生产环境优化的解决方案,用于监控 GenAI 应用程序,具有

  • 最小的占用空间,实现快速部署
  • 完整的追踪功能,实现全面监控
  • 灵活的后端选项,从自托管到企业平台
  • 从完整 MLflow 包轻松迁移
  • 生产就绪的功能,包括异步日志记录和错误处理

无论您运行的是小型原型还是大型生产系统,轻量级 SDK 都能提供您所需的可观测性,而无需不必要的开销。