变更管理
管理提示的变更对于保持质量、提高性能以及确保在不同环境中的一致性至关重要。本页提供了 MLflow 提示注册表中变更管理的全面指南。
基于提交的版本控制
提示注册表的设计灵感来源于像 Git 这样的版本控制系统。
- 🪨 不可变版本:一旦创建,提示版本就不能被修改。这确保了提示的行为在不同的应用程序和实验中保持一致。
- ✉️ 提交消息:创建新的提示版本时,可以提供提交消息来记录新版本中所做的更改。这有助于您和您的团队理解更改的上下文,并跟踪提示随时间的演变。
- 🔍 差异视图:MLflow UI 提供提示版本的并排比较,突出显示版本之间的更改。这使得轻松理解差异并跟踪提示的演变成为可能。
为什么不使用 Git?
在源代码中硬编码提示文本确实是一种常见的做法,但它存在一些限制。一个生成式 AI 应用程序或项目通常包含用于不同组件/任务的多个提示以及所有软件工件。使用单调的 Git 树跟踪单个提示的更改具有挑战性。
比较提示版本
MLflow 提示注册表 UI 提供提示版本的并排比较,突出显示版本之间的更改。要在 MLflow UI 中比较提示版本,请在提示详细信息页面中单击比较标签页,然后选择要比较的版本。
别名
别名是在生产系统中管理提示版本的强大机制,无需在应用程序代码中硬编码版本号。您可以使用 MLflow UI 或 Python API 为特定版本的提示创建别名。
别名的常见用例是为您的生成式 AI 应用程序构建一个健壮的部署管道。例如,您可以设置一个阶段名称,如 beta
、staging
、production
等,来引用在该环境中使用的版本。通过将别名切换到不同的版本,您可以轻松维护不同环境的多个提示版本,并执行回滚 A/B 测试等任务。
创建别名
- UI
- Python
- 在 MLflow UI 中打开现有的提示版本。
- 单击别名部分旁边的添加按钮。
- 选择现有别名或通过输入别名名称来创建一个新别名。
- 单击保存别名以应用更改。
# Set a production alias for a specific version
mlflow.set_prompt_alias("summarization-prompt", alias="production", version=2)
附加的别名可在提示列表页面中查看。您可以点击铅笔图标直接从列表视图中编辑或删除别名。
使用别名加载提示
要使用别名加载提示,请使用 prompts:/<prompt_name>@<alias>
格式作为提示 URI
prompt = mlflow.load_prompt("prompts:/summarization-prompt@production")