POML 与 MLflow 集成
导语
MLflow 是一个开源平台,用于管理机器学习生命周期(包括实验、可复现性与部署)。POML 与 MLflow 的集成可自动将 POML 调用记录为 MLflow traces,并将提示词(prompts)注册到 MLflow 的提示词注册表(prompt registry)。
安装与配置
安装
- 安装带 MLflow 支持的 POML:
bash
pip install poml[agent]
- 或单独安装 MLflow 及其 GenAI 组件:
bash
pip install mlflow mlflow-genai
配置(可选)
- 使用本地文件存储为默认后端,或自行配置 Tracking Server:
bash
# 启动本地 MLflow tracking server
mlflow server --host 0.0.0.0 --port 5000
# 使用远程 tracking server(示例)
export MLFLOW_TRACKING_URI="http://your-mlflow-server:5000"
基本用法
启用 POML 的 MLflow 追踪,并结合 OpenAI 的自动日志记录(autolog):
python
import mlflow
import mlflow.openai
import poml
from openai import OpenAI
# Set up MLflow experiment
mlflow.set_experiment("poml_integration")
mlflow.set_tracking_uri("http://localhost:5000")
# Enable POML tracing with MLflow
poml.set_trace("mlflow", trace_dir="pomlruns")
# Enable OpenAI autologging for tracing OpenAI API calls as well
mlflow.openai.autolog()
# Use POML as usual
client = OpenAI()
messages = poml.poml(
"explain_code.poml",
context={"code_path": "sample.py"},
format="openai_chat"
)
response = client.chat.completions.create(
model="gpt-5",
**messages
)
追踪内容(What Gets Traced)
启用 MLflow 集成后,POML 会自动记录以下信息:
POML Traces
- Trace 名称:
"poml"
- Prompt 内容:POML 原始源文本
- 上下文变量:传入 POML 调用的所有上下文变量
- 样式表:任意样式配置
- 结果:发送给 LLM 的处理后 Prompt 结构
提示词注册(Prompt Registration)
POML 的提示词会自动注册到 MLflow 的 Prompt Registry,包含:
- 提示词名称:由 POML 文件名与顺序号自动推导(例如
0001.explain_code
),详见 POML Trace 文档 - 模板:完整的 POML 源内容
- 版本:MLflow 自动进行版本跟踪
text
0001.explain_code
参考文档:
示例 Trace 数据
json
{
"inputs": {
"prompt": "<poml> <task>You are a senior Python developer. Please explain the code.</task> <code inline=\"false\"> <document src=\"{{ code_path }}\" parser=\"txt\" /> </code> <runtime temperature=\"0.7\" max-tokens=\"256\"/> </poml>",
"context": { "code_path": "sample.py" },
"stylesheet": null
},
"outputs": {
"messages": [
{
"speaker": "human",
"content": "# Task\n\nYou are a senior Python developer. Please explain the code.\n\n```\n\ndef greet(name):\n print(f\"Hello, {name}!\")\n..."
}
]
}
}
参考链接(See Also)
- POML Tracing Guide: microsoft.github.io/poml/stable...
- MLflow Documentation: mlflow.org/docs/latest...
- MLflow Tracing Guide: mlflow.org/docs/latest...
- MLflow Prompt Engineering: mlflow.org/docs/latest...
总结
通过与 MLflow 的集成,POML 调用可被自动追踪为 MLflow traces,并将提示词注册到 Prompt Registry,配合 MLflow 的版本与追踪能力,便于统一管理与审计提示词与调用过程。更多细节与高级用法可参考文档链接。