跳到主要内容

使用 MLflow Tracing 检测您的应用

提示

刚接触 MLflow Tracing?请查阅快速入门指南开始使用。

本页面为使用 MLflow Tracing 检测您的 GenAI 应用程序提供了全面的指南。

1. 安装

mlflow-tracing 添加到您的 Python 环境中,以最少的依赖项启用追踪功能。

pip install mlflow-tracing
信息

mlflow-tracing Python 包不包含其他 MLflow 功能,例如自托管追踪服务器、评估功能、提示管理等。如果您想使用 MLflow 的全部功能,请安装完整的 MLflow 包。我们建议在生产应用程序中使用 mlflow-tracing 包,以保持依赖项和包的体积最小化。

pip install mlflow

2. 将您的应用程序与 MLflow 连接

对于本地开发或个人使用,本地托管 MLflow 是一个不错的选择。虽然不建议在生产环境中使用,但这是最快的入门方式。为了记录追踪数据,我们建议使用 SQL 后端以获得更好的性能。

要启动本地 MLflow 服务器,请在您的终端中运行以下命令。或者,您可以使用官方 Docker 镜像来运行服务器。

# Replace sqlite:/// part with your preferred database URI.
mlflow server --host 127.0.0.1 --port 5000 --backend-store-uri sqlite:///mlruns.db

然后,在您的应用程序中,使用以下代码配置追踪 URI 并设置一个活动的实验

Python

import mlflow

mlflow.set_tracking_uri("http://127.0.0.1:5000")
mlflow.set_experiment("<your-experiment-name>")

JS/TS

import * as mlflow from "mlflow-tracing";

mlflow.init(
trackingUri: "http://127.0.0.1:5000",
experimentId: "<your-experiment-id>", // If no experiment is created yet, create it on UI first.
);

3. 检测您的应用程序逻辑

MLflow 提供了不同的方法来检测您的应用程序逻辑。请点击以下链接,了解每种方法的更多信息,以检测您的应用程序

⚙️ 常见模式

生产考量

MLflow Tracing 已准备好用于生产环境,但为了确保追踪系统的可扩展性和可靠性,我们推荐以下最佳实践

  1. 启用异步日志记录并设置适当的队列大小和超时。
  2. 使用轻量级的 mlflow-tracing 包,以最小化包的体积和依赖项。
  3. 使用托管的 MLflow 服务以减少运维开销并确保追踪系统的可扩展性。
  4. 当使用自托管的 MLflow 时,请确保使用带有可扩展数据库(如 PostgreSQL)的 **SQL 后端**。默认的基于文件的后端存在可扩展性限制,不建议在生产环境中使用。

异步应用程序

异步编程是提高应用程序吞吐量的有效工具,特别是对于通常受 I/O 限制的基于 LLM 的应用程序。MLflow Tracing 原生支持检测异步应用程序

多线程应用程序

多线程是应用程序中并行化 I/O 密集型操作的常用策略。MLflow Tracing 使用上下文传播来支持多线程应用程序

管理用户会话

许多基于 LLM 的应用程序被部署为基于聊天的应用程序,其中每个用户会话都是一个独立的线程。按用户会话对追踪数据进行分组是一种常见做法。MLflow Tracing 支持管理用户会话

编辑 PII 数据

追踪数据可能包含敏感数据,如原始用户输入、内部文档内容等。MLflow Tracing 支持使用灵活的掩码规则、自定义函数以及与外部 PII 掩码库集成来编辑 PII 数据

收集用户反馈

用户反馈是改善应用程序用户体验的宝贵信息来源。MLflow Tracing 支持收集关于追踪数据的用户反馈,以有效跟踪和分析反馈。