跳到主要内容

跟踪 Ollama

MLflow 跟踪通过 OpenAI SDK 集成,为 Ollama 模型提供自动跟踪功能。由于 Ollama 暴露了一个与 OpenAI 兼容的 API,您只需使用 mlflow.openai.autolog() 即可跟踪 Ollama 调用。

Ollama Tracing via autolog

MLflow 跟踪会自动捕获有关 Ollama 调用的以下信息

  • 提示和完成响应
  • 延迟
  • Token 用量
  • 模型名称
  • 如果指定,还包括额外的元数据,如 temperaturemax_tokens
  • 如果响应中返回函数调用
  • 如果抛出任何异常
  • 以及更多...

开始使用

1

安装依赖项

bash
pip install 'mlflow[genai]' openai
2

启动 MLflow 服务器

如果您有本地 Python 环境 >= 3.10,您可以使用 mlflow CLI 命令在本地启动 MLflow 服务器。

bash
mlflow server
3

运行 Ollama 服务器

确保您的 Ollama 服务器正在运行,并且您想要使用的模型已拉取。

bash
ollama run llama3.2:1b
4

启用跟踪并调用 Ollama

python
import mlflow
from openai import OpenAI

# Enable auto-tracing for OpenAI (works with Ollama)
mlflow.openai.autolog()

# Optional: Set a tracking URI and an experiment
mlflow.set_tracking_uri("https://:5000")
mlflow.set_experiment("Ollama")

# Initialize the OpenAI client with Ollama API endpoint
client = OpenAI(
base_url="https://:11434/v1",
api_key="dummy",
)

response = client.chat.completions.create(
model="llama3.2:1b",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Why is the sky blue?"},
],
temperature=0.1,
max_tokens=100,
)
5

在 MLflow UI 中查看跟踪

浏览到您的 MLflow UI(例如,https://:5000)并打开 Ollama 实验,以查看上述调用的跟踪。

Ollama Tracing

→ 查看 后续步骤,了解有关 MLflow 更多功能的信息,例如用户反馈跟踪、提示管理和评估。

支持的 API

MLflow 通过 OpenAI 集成支持对以下 Ollama API 进行自动跟踪

聊天补全函数调用流式传输异步
✅ (*1)✅ (*2)

(*1)流式传输支持需要 MLflow 2.15.0 或更高版本。(*2)异步支持需要 MLflow 2.21.0 或更高版本。

如需请求支持其他 API,请在 GitHub 上提交 功能请求

流式传输和异步支持

MLflow 支持对流式传输和异步 Ollama API 进行跟踪。请参阅 OpenAI 跟踪文档以获取通过 OpenAI SDK 跟踪流式传输和异步调用的示例代码片段。

与手动跟踪结合使用

为了更精确地控制跟踪行为,MLflow 提供了 手动跟踪 SDK 来为您的自定义代码创建跨度。手动跟踪可以与自动跟踪结合使用,以创建自定义跟踪,同时保留自动跟踪的便利性。有关更多详细信息,请参阅 OpenAI 跟踪文档中的 与手动跟踪结合使用部分。

Token 用量

MLflow >= 3.2.0 通过 OpenAI SDK 集成支持对 Ollama 模型的令牌使用情况跟踪。每个 LLM 调用的令牌使用情况将记录在 mlflow.chat.tokenUsage 属性中。跟踪信息对象中的 token_usage 字段将显示整个跟踪过程的总令牌使用情况。有关更多详细信息,请参阅 令牌使用情况文档。

禁用自动跟踪

可以通过调用 mlflow.openai.autolog(disable=True)mlflow.autolog(disable=True) 来全局禁用对 Ollama(通过 OpenAI SDK)的自动跟踪。

后续步骤