跳到主要内容

专为生产环境优化的轻量级追踪 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 是一个

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://...

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

OSS Tracing

支持的功能

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

生产配置示例

以下是为生产使用设置轻量级 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 项目 - 可重现的 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~1000MB20+ 个软件包开发、实验、完整 ML 生命周期
mlflow-tracing~5MB5-8 个软件包生产追踪、监控、可观测性

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

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

总结

MLflow Tracing SDK 提供了一个为生产环境优化的解决方案,用于监控 GenAI 应用程序,其特点是:

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

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