跳到主要内容

MLflow 3.14.0 亮点:一行指令代理入门、审核队列、Pytest 集成以及 LLM 游乐场

·7分钟阅读
MLflow maintainers
MLflow 维护者

MLflow 3.14.0 是一个重要的版本,致力于闭环 GenAI 开发,涵盖从最初的应用程序插桩到审查、测试和迭代的整个过程。亮点包括:使用 mlflow agent setup 实现一键式可观测性接入、为 Claude Code 提供持久且低延迟的追踪、用于收集追踪结构化反馈的审核队列、改版的评估数据集 UI、用于在 CI 中控制 GenAI 质量的 pytest 集成,以及浏览器内的 LLM 游乐场。

1. 使用 mlflow agent setup 实现一键式接入

让应用程序接入 MLflow 可观测性不再需要阅读安装指南并手动连接各项设置。全新的 mlflow agent setup 命令只需一行即可完成所有操作:它安装一套精选的 MLflow 技能并启动您喜欢的编码代理,该代理会自动安装 MLflow、设置追踪并为您的应用进行插桩。在项目内部运行此命令,选择要使用的编码代理(Claude Code、OpenAI Codex 或 OpenCode)以及追踪数据的存储位置(全新的本地服务器、Databricks 工作区或现有服务器),代理会自动为您的实际入口点添加追踪并验证端到端的追踪链路。

由于实际的插桩任务委托给了您的编码代理而非僵化的脚本,因此它可以适应您项目所使用的任何包管理器、框架和入口点。

# Run inside your project: your coding agent instruments it for MLflow Tracing
uvx mlflow@latest agent setup

了解更多信息,请参阅《追踪快速入门》

2. 为 Claude Code 提供持久、低延迟的追踪

将 Claude Code 追踪推广到整个团队应该是您可以为所有人开启后便无需操心的事情。MLflow 3.14.0 使其具备了持久性和低开销,以便企业可以放心使用:追踪绝不会拖慢开发者的 Claude Code 会话,不会在高负载下压垮您的中央追踪服务器,也不会在网络中断或崩溃导致会话中断时丢失追踪数据。

它通过预写日志 (write-ahead-log) 实现这一点:每个追踪都会写入本地磁盘,并由后台守护进程在失败时重试上传,因此代理绝不会因网络问题而阻塞,即使会话意外退出,磁盘上已有的追踪记录也会被重放。您还可以使用 MLFLOW_TRACE_LOCATION 将 Claude Code 追踪发送到 Databricks Unity Catalog 位置。

了解更多关于 Claude Code 追踪的信息

3. 追踪的审核队列

收集 GenAI 追踪的反馈过去通常是临时性的:电子表格、侧信道沟通,且对于哪些内容已经过审核缺乏共享共识。审核队列将此流程转化为一种结构化的 UI 工作流,且最快捷的路径无需任何设置。从追踪列表中,选择您需要复核的追踪,并将其直接分配给队友,他们会在个人审核队列中找到待处理的任务。每位审核员打开一个专注的审核页面,逐一完成追踪审核。

当您需要更多结构时,可以创建一个包含特定审核问题(通过/失败、分类、数值或自由文本)的自定义队列,并将其分配给一组审核员。由于队列状态在分配给它的所有人之间共享,因此第一个完成追踪的审核员将为整个团队清除该任务。无论哪种方式,答案都不会存储在别处:每一个答案都会直接写回追踪记录中,反馈问题记录评估结果,期望问题记录真实事实。这使得审核输出可立即用于评估、对齐 LLM 评判者或构建数据集。整个工作流也可以通过 mlflow.genai.review_queues SDK 进行脚本化。

了解更多关于审核队列的信息

4. 改版的评估数据集 UI

评估数据集是实时更新的测试用例集合,从生产追踪和人工整理的黄金样本中不断增长,但检查和维护它们过去需要进入 Python SDK。MLflow 3.14.0 在 UI 中发布了完全改版的评估数据集体验。在实验的“数据集”选项卡中,您可以获得一个可搜索的数据集列表,点击其中一个即可打开详情页面,其中包含可排序、分页的记录表。

在详情页面上,每条记录都会在侧边栏中打开,输入和预期内容以验证后的 JSON 格式编辑,并带有“未保存更改”防护,以免丢失工作内容。您可以内联添加记录、多选并批量删除、选择要显示的列,对于源自追踪的任何记录,可以在页面内的追踪资源管理器中打开,以查看该测试用例的来源。结合“追踪”选项卡上现有的“添加到评估数据集”操作,整个构建和维护闭环现在都在 UI 中完成。

了解更多关于评估数据集的信息

5. 用于 GenAI 回归测试的 Pytest 集成

如果您已经使用 mlflow.genai.evaluate() 和评分器来评估您的代理,MLflow 3.14.0 的回归测试无需您学习任何新内容:将 @mlflow.test 装饰器添加到普通的 pytest 函数,运行现有的评分器,并使用 assert result.passed, result.reason 对结果进行断言。当测试失败时,失败的评分器及其评判理由会直接显示在 pytest 输出中。

因为它只是普通 pytest 函数上的一个装饰器,所以您的回归套件可以接入整个 pytest 生态系统:在多个用例中对测试进行参数化,使用 pytest-xdist 在工作节点中进行分配,并像其他任何测试一样在 CI 中运行它。每次运行都会被捕获到 MLflow 中,“评估运行” UI 会一目了然地显示您的测试历史记录和每个断言的详细评判结果。建议的迭代闭环是基于真实失败案例扩展套件:每次代理行为异常时,将其捕获为 @mlflow.test,这样同样的问题就永远不会静默复发。

import mlflow
from mlflow.genai.scorers import Guidelines


@mlflow.test
def test_answers_concisely(agent):
result = mlflow.genai.evaluate(
predict_fn=agent,
data=[{"inputs": {"question": "What are your hours?"}}],
scorers=[Guidelines(name="concise", guidelines="Answer in one sentence.")],
)
assert result.passed, result.reason

了解更多关于回归测试的信息

6. LLM 游乐场

迭代提示词过去意味着编辑代码并重新运行,或者跳转到对您已注册的提示词一无所知的外部供应商游乐场。MLflow 3.14.0 增加了浏览器内的 LLM 游乐场,连接到您已经管理的相同 MLflow AI Gateway 端点和提示词注册表版本。从实验中打开它,选择一个模型端点,并编排包含系统消息、用户消息和助手消息的多轮对话。

设置侧边栏允许您调整温度、最大令牌数、top-p、惩罚项、停止序列;提供工具定义;并将输出限制为纯文本或严格的 JSON 模式。消息支持在提交时填入的 {{ variable }} 占位符,“从注册表加载提示词”功能将任何已注册的版本直接放入对话中,并自动应用其存储的模型配置。

了解更多关于 LLM 游乐场的信息

完整更新日志

有关完整的变更列表,请参阅版本变更日志

后续规划

快速开始

升级以尝试这些新功能

pip install mlflow==3.14.0

分享你的反馈

我们非常期待听到你对这些新功能的体验

了解更多

MLflow 3.13.0 亮点:基于角色的访问控制、追踪归档、编码代理和 Hermes 代理支持

·阅读时长 6 分钟
MLflow maintainers
MLflow 维护者

MLflow 3.13.0 是一个用于大规模运行 AI 可观测性的重大版本,专注于访问控制、追踪数据的生命周期以及对代理的更丰富支持。亮点包括:带有全新管理 UI 的完整基于角色的访问控制系统、自动追踪归档、编码代理的一键式接入、MLflow 助手的新引擎、跨度日志级别、官方 Kubernetes Helm 图表以及 Hermes 代理支持。

1. 基于角色的访问控制和管理 UI

在团队中共享自托管的 MLflow 服务器过去意味着需要逐个资源授予权限,且没有中心化的管理位置。全新的基于角色的访问控制 (RBAC) 系统取代了这种方式:将角色定义为可重用的权限包,分配给用户,并让工作区级别的授权表达成员身份和管理权限。用户的有效访问权限是其角色的并集,涵盖实验、模型、提示词、评分器和 AI Gateway 端点。

全新的 Web 管理 UI 使其无需触碰 REST 端点即可进行管理,并提供自助式 /account 页面用于查看角色和更改密码,以及供平台管理员使用的管理页面,用于管理用户、角色和授权。只需在启用身份验证的情况下启动 mlflow server 即可。

了解更多关于基于角色的访问控制的信息

2. 追踪保留和自动归档

在长期运行的追踪服务器上,追踪跨度数据会在 SQL 后端堆积并最终导致性能下降。追踪归档功能使其保持可控:后台程序会自动将超过保留窗口的追踪数据从 SQL 移至廉价的对象存储(如 S3),同时确保所有追踪记录在 UI 和 API 中依然完全可读。保留策略由策略驱动,可在服务器、工作区和实验级别定义。

通过将服务器指向 YAML 配置来启用它

trace_archival:
enabled: true
location: s3://my-bucket/trace-archive
retention: 7d
interval_seconds: 60

工作区管理员和实验所有者随后可以在 UI 或 CLI 中收紧保留期限,有效的截止日期会显示在每个追踪上的“归档于”徽章中。

了解更多关于追踪归档的信息

3. 编码代理的一键式可观测性和治理

将 Claude Code、OpenAI Codex 或 Gemini CLI 等编码代理纳入可观测性和治理范围过去需要手动连接网关端点。AI Gateway 快速入门现在只需一键即可完成:选择您的代理,MLflow 会配置一个预设的端点(无需 API 密钥,因为代理自带凭据)并为您提供可直接粘贴的入门代码片段。从那时起,代理发出的每个请求都会被捕获为追踪,并受使用量跟踪、预算限制和护栏控制。

export ANTHROPIC_BASE_URL="https://:5000/gateway/proxy/my-claude-endpoint" && claude

了解更多关于 AI Gateway 中编码代理的信息

4. MLflow 助手的新引擎

3.9.0 版本中推出的 MLflow 助手绑定在 Claude Code 上。现在您可以选择驱动它的引擎:在本地 Ollama 模型、OpenAI Codex CLI 或任何 MLflow AI Gateway 端点上运行助手,所有这些都可以从设置向导中选择。这意味着您可以使用 Ollama 将所有内容保留在本地机器上,或者重用您已经通过 Gateway 路由的提供商。

感谢社区贡献者 @SuperSonnix71 贡献了 Ollama 和 OpenAI Codex 引擎!

了解更多关于 MLflow 助手的信息

5. 用于 Kubernetes 部署的 Helm 图表

在 Kubernetes 上部署 MLflow 过去意味着要编写和维护自己的清单。官方的、生产级的 Helm 图表现在为您完成这项工作,内置了 TLS、持久存储、Ingress、Prometheus 指标、严格的 NetworkPolicy、RBAC 和可选的 mlflow gc 垃圾回收功能。下载图表并安装(需要 Kubernetes 1.23+ 和 Helm 3.8+)

helm install mlflow ./charts \
--namespace mlflow \
--create-namespace \
--set storage.enabled=true \
--set mlflow.backendStoreUri="sqlite:////mlflow/mlflow.db" \
--set mlflow.artifactsDestination="/mlflow/artifacts"

了解更多关于 Kubernetes Helm 部署的信息

6. Hermes 代理支持

代理可观测性现在已扩展到长时运行的自主运行时。来自 Nous Research 的 Hermes 代理集成了两个层面:通过 AI Gateway 路由其模型调用,以进行集中式使用量跟踪、预算管理和护栏控制;并通过 MLflow Tracing(基于 OpenTelemetry)捕获完整的端到端追踪,包括 LLM 调用、工具调用和长时运行的会话。

要通过 Gateway 路由 Hermes,请创建一个端点并运行 hermes setup model;对于追踪,请安装社区 hermes-otel 插件,将 OTLP 追踪导出到您的 MLflow 服务器。

了解更多关于 Hermes 代理和 AI Gateway 的信息

7. 追踪跨度的日志级别

繁忙的追踪可能会将您关心的跨度埋没在链式连接和解析器调用之下。跨度现在带有 Python logging 风格的严重性级别(从 DEBUGCRITICAL),并根据跨度类型自动分配,因此 LLM、工具和检索器调用显示为 INFO,而内部步骤保持 DEBUG,任何引发错误的跨度都会提升为 ERROR。在追踪资源管理器中,新的最小日志级别滑块可以在无需更改任何代码的情况下隐藏阈值以下的所有内容。您还可以显式设置级别

import mlflow

with mlflow.start_span("plumbing", log_level="DEBUG") as span:
...

感谢社区贡献者 @rrtheonlyone 贡献此功能!

了解更多关于跨度日志级别的信息

完整更新日志

有关完整的变更列表,请参阅版本变更日志

后续规划

快速开始

升级以尝试这些新功能

pip install mlflow==3.13.0

分享你的反馈

我们非常期待听到你对这些新功能的体验

了解更多

MLflow 3.12.0

·3 分钟阅读
MLflow maintainers
MLflow 维护者

MLflow 3.12.0 版本专注于改善我们的 LLM 可观测性工作流,使追踪更易于访问、功能更丰富且性能更佳。

🖼️ 多模态追踪

Trace with imageTrace with audio

用户现在可以在追踪跨度中将多模态内容作为附件存储,而不是内联二进制数据。我们还修复了 UI 以支持新的 mlflow-attachment:// 风格 URI,并为 PDF、音频和图像提供了丰富的渲染支持。

此功能支持自动记录(autologging),但也支持手动附件管理。访问文档页面了解更多信息。

🤖 Codex, Gemini, Qwen 编码代理追踪支持

Codex Tracing

类似于我们的 Claude Code 追踪集成,我们现在也添加了对 Codex、Gemini 和 Qwen 编码代理平台的支持!有关如何开始的说明,请查看以下文档页面:

🛡️ 网关护栏

您现在可以在网关端点上设置护栏,以防止不安全或不合规的模型输入和输出。在 MLflow UI 中尝试一下,并访问文档页面了解更多信息

⚡ 追踪表分页

“追踪”选项卡现在支持分页,而不是一次性获取多达 1000 条追踪记录。这缩短了初始加载时间,并使页面整体响应更灵敏。

完整更新日志

有关完整的变更列表,请参阅版本变更日志

后续规划

快速开始

安装 MLflow 3.12.0 以尝试这些新功能

pip install mlflow==3.12.0

分享你的反馈

我们非常期待听到你对这些新功能的体验

了解更多

MLflow 3.11.1 亮点:自动问题检测、网关预算管理和无需 Pickle 的模型!

·5分钟阅读
MLflow maintainers
MLflow 维护者

MLflow 3.11.1 是一个重大版本,显著提升了 MLflow 的 AI 可观测性、安全性和治理能力。该版本引入了代理的自动质量问题检测、AI Gateway 的精细支出控制、交互式追踪图可视化、原生的 OpenTelemetry GenAI 语义约定支持以及更安全的无 pickle 模型序列化——同时对追踪集成、评估管道和 MLflow UI 进行了全面改进。

1. 自动问题识别

无需人工检查,自动发现代理中的质量问题!使用追踪表中的新检测问题按钮,利用 AI 分析选定的追踪,并在正确性、安全性和性能等类别中识别潜在问题。检测到的问题直接链接到相关的追踪记录,使您可以轻松调查根本原因并大规模调试您的代理。

了解更多关于自动问题检测的信息

2. 网关预算警报与限制

Gateway Budget Alerts & Limits

通过可配置的预算策略控制您的 AI Gateway 支出。按时间窗口(日、周或月)设置支出限额,在触及限额前接收警报,并在超出阈值时自动阻止失控成本。新的预算管理 UI 让您可以跟踪当前支出、配置 Webhook 通知并监控所有网关端点的违规情况——无需编写任何代码。

了解更多关于网关预算警报和限制的信息

3. 追踪图视图

Trace Graph View

通过全新的交互式追踪图视图导航复杂的代理交互。可视化多层追踪层级,一目了然地理解父子跨度关系,并通过视觉化呈现的追踪拓扑结构更有效地调试复杂的多代理系统。

了解更多关于追踪图视图的信息

4. 原生 OpenTelemetry GenAI 约定支持

Native OpenTelemetry GenAI Convention Support

MLflow 现在原生支持用于追踪导出的 OpenTelemetry GenAI 语义约定。当在启用 MLFLOW_ENABLE_OTEL_GENAI_SEMCONV 的情况下通过 OTLP 导出追踪时,MLflow 会自动翻译跨度以遵循 OTel GenAI 语义约定——从而实现与 OTel 兼容的可观测性平台的无缝集成,同时保留所有 GenAI 特有的元数据。

了解更多关于 OTel GenAI 语义约定支持的信息

5. OpenCode 追踪集成

使用新的 OpenCode CLI 追踪集成进行更智能的调试。OpenCode 是一个开源的、基于终端的 AI 编码助手。直接从您的开发工作流中跟踪和分析代码执行流程,从而更轻松地识别性能瓶颈并追溯特定代码路径的问题,而无需离开您的终端。

了解更多关于 OpenCode 追踪的信息

6. 模型依赖项的原生 UV 支持

自动依赖项推理现在支持 UV。当记录模型时,MLflow 会检测 UV 项目并捕获精确的、锁定的依赖项(包括每个包的 SHA-256 哈希),从而在提供或共享通过 UV 构建的模型时确保完全可重现的环境。这提供了一种防御供应链攻击的更安全方法:如果攻击者在现有版本号下发布了修改后的包,哈希检查将失败,安装将被阻止。

了解更多关于 UV 依赖项管理的信息

7. 无需 Pickle 的模型序列化

使用无需 Pickle 的模型格式增强您的 ML 管道的安全性。MLflow 现在支持使用 torch.exportskops 格式进行更安全的模型序列化,并在 MLFLOW_ALLOW_PICKLE_DESERIALIZATION=False 时提供了改进的控制。全面的文档将引导您将现有模型迁移到用于生产部署的无需 Pickle 的格式。

了解更多关于无需 Pickle 的模型格式的信息

重大变更

  • TypeScript SDK 包重命名:MLflow TypeScript SDK 包已重命名以使用 npm 组织作用域。请更新您的 package.json 依赖项:mlflow-tracing@mlflow/core, mlflow-openai@mlflow/openai, mlflow-anthropic@mlflow/anthropic, mlflow-gemini@mlflow/gemini。所有包现在的版本均为 0.2.0
  • 环境变量 MLFLOW_ENABLE_INCREMENTAL_SPAN_EXPORT 已被删除。
  • litellmgepa 已从 genai extras 中删除。
  • 现在禁止在注册模型名称中使用 /:

完整更新日志

有关完整的变更列表,请参阅版本变更日志,并在 mlflow.org 查看最新文档。

后续规划

快速开始

安装 MLflow 3.11.1 以尝试这些新功能

pip install mlflow==3.11.1

分享你的反馈

我们非常期待听到你对这些新功能的体验

了解更多

MLflow 3.10.1

·4 分钟阅读
MLflow maintainers
MLflow 维护者

MLflow 3.10.1 是一个补丁版本,包含一些小的功能增强、错误修复和文档更新。

功能

错误修复

  • [UI] 修复启用工作区时网关使用选项卡中的“查看完整仪表板”链接 (#21191, @copilot-swe-agent)
  • [UI] 将 AI Gateway 默认密码安全横幅的关闭状态持久化到 localStorage (#21292, @copilot-swe-agent)
  • [评估] 将说明评判器中未使用的参数日志消息从 WARNING 降级为 DEBUG (#21294, @copilot-swe-agent)
  • [UI] 切换到概览选项卡时清除“全部”时间选择器 (#21371, @daniellok-db)
  • [提示词 / UI] 修复提示词选项卡中的追踪视图无法滚动的问题 (#21282, @TomeHirata)
  • [UI] 修复评判器构建器说明文本区域 (#21299, @daniellok-db)
  • [UI] 修复分组模式,将图表中的“其他运行”聚合为“未分配”组 (#21155, @copilot-swe-agent)
  • [UI] 修复启用工作区时的工件下载问题 (#21074, @timsolovev)
  • [追踪] 修复追踪导出期间 assessments.trace_id 上的 NOT NULL 约束 (#21348, @dbczumar)
  • [追踪] 修复 default_permission=NO_PERMISSIONS 时通过查询参数获取工件列表出现 403 禁止访问的问题 (#21220, @copilot-swe-agent)
  • [UI] [ML-63097] 修复损坏的 LLM 评判器文档链接 (#21347, @smoorjani)
  • [追踪] 修复运行评判器失败的问题,报错:litellm.InternalServerError: Invalid response object. (#21262, @PattaraS)
  • [追踪 / UI] 更新操作菜单:缩进以避免混淆 (#21266, @PattaraS)
  • [模型注册表] 修复 MlflowClient.copy_model_version 在跨工作区复制 UC 模型的情况下的问题 (#21212, @WeichenXu123)
  • [UI] 修复已清理为空的实验描述的空描述框渲染问题 (#21223, @copilot-swe-agent)
  • [工件] 修复通过 HttpArtifactRepository 下载单个工件的问题 (#12955, @Koenkk)
  • [追踪] 修复 find_last_user_message_index 跳过技能内容注入的问题 (#21119, @alkispoly-db)
  • [追踪] 修复跨度输出存储为字符串时的检索上下文提取问题 (#21213, @smoorjani)
  • [UI] 修复图表工具提示中的可见性切换按钮不工作的问题 (#21071, @daniellok-db)
  • [UI] 将网关实验过滤移动到服务器端查询以修复页面大小不一致的问题 (#21138, @copilot-swe-agent)
  • [网关] 将具有 fallback_config 但没有 FALLBACK 模型的网关端点的虚假警告降级为调试日志 (#21123, @copilot-swe-agent)
  • [追踪] 修复 MCP fn_wrapper,以便为具有 UNSET 默认值的可选参数传递 None (#21051, @yangbaechu)
  • [追踪] 向 logged_modelexperiment_id 外键添加 CASCADE (#20185, @harupy)
  • [追踪] 修复 MCP fn_wrapper 对 Click UNSET 默认值的处理 (#20953) (#20962, @yangbaechu)

文档更新

  • [文档] 更新 SSO oidc 插件文档:添加 google identity platform / AWS cognito / Azure Entra ID 配置指南 (#20591, @WeichenXu123)
  • [文档 / 追踪] 修复分布式追踪渲染并改进文档 (#21070, @B-Step62)
  • [文档] 文档:为包含额外内容的安装命令添加单引号以防止 zsh 错误 (#21227, @mshavliuk)
  • [文档 / 模型注册表] 修复过时的文档字符串,声称 register_model 不支持 models:/ URI (#21197, @copilot-swe-agent)
  • [文档] 在 docker-compose 设置中用 RustFS 替换 MinIO (#21099, @jmaggesi)

有关完整的变更列表,请参阅版本变更日志,并在 mlflow.org 查看最新文档。

MLflow 3.10.0 亮点:多工作区支持、多轮评估和许多 UI 增强!

·5分钟阅读
MLflow maintainers
MLflow 维护者

MLflow 3.10.0 是一个重大版本,它增强了 MLflow 的 AI 可观测性和评估能力,同时也让这些功能对于新用户和大规模运营的组织来说更易于使用。该版本带来了多工作区支持、聊天机器人对话的评估与模拟、追踪成本跟踪、AI Gateway 端点使用量跟踪,以及许多让您的应用和代理开发更加直观的 UI 增强。

1. MLflow 追踪服务器中的工作区支持

MLflow 现在支持多工作区环境。用户可以以更粗的粒度组织实验、模型、提示词,并在单个追踪服务器中进行逻辑隔离。要启用此功能,请将 --enable-workspaces 标志传递给 mlflow server 命令,或将 MLFLOW_ENABLE_WORKSPACES 环境变量设置为 true

了解更多关于多工作区支持的信息

2. 多轮评估与对话模拟

MLflow 现在支持多轮评估,包括使用会话级评分器评估现有对话,以及模拟对话以测试您的代理的新版本,而无需费力重新生成对话。使用 MLflow 3.8.0 中引入的会话级评分器和全新的会话 UI 来评估您的对话代理的质量,并启用自动评分以在摄取追踪数据时监控质量。

了解更多关于多轮评估的信息

3. 追踪成本跟踪

深入了解您的 LLM 支出!MLflow 现在会自动从 LLM 跨度中提取模型信息并计算成本,并提供了一个全新的 UI,直接在您的 追踪视图 中呈现模型和成本数据。此外,成本在“概览”选项卡中进行聚合和细分,使您可以深入了解您的 LLM 支出模式。

了解更多关于追踪成本跟踪的信息

4. 导航栏重新设计

随着我们不断向 MLflow UI 添加更多功能,我们发现导航变得杂乱且令人不知所措,且不同工作流类型的功能划分不明确。我们重新设计了导航栏,使其更直观且易于使用,全新的侧边栏为 GenAI 应用、代理开发者以及传统的模型训练工作流提供了更相关的标签页集。全新的体验还为主要内容区域提供了更多空间,使您更容易专注于手头的任务。

5. MLflow 演示实验

不熟悉 MLflow GenAI?只需单击一下,即可启动一个预先填充的演示,探索 LLM 追踪、评估和提示词管理功能的实际操作。无需配置,无需代码。此功能在 MLflow UI 的主页中提供,并提供了 MLflow 所提供不同功能的全面概述。

通过点击如上视频所示的按钮,或在终端中运行 mlflow demo 来开始。

6. 网关使用量跟踪

使用详细的使用量分析监控您的 AI Gateway 端点。新的“使用量”选项卡显示了请求模式和指标,通过追踪摄取将网关调用链接回您的实验,从而实现端到端的 AI 可观测性。

要为您的 AI Gateway 端点开启此功能,请务必在端点设置中勾选“启用使用量跟踪”开关,如上视频所示。

了解更多关于网关使用量跟踪的信息

7. UI 内追踪评估

直接从追踪和会话 UI 中运行自定义或预构建的 LLM 评判器,无需任何代码!这使得在无需切换到 Python SDK 的情况下,可以快速评估单个追踪和对话。要使用此功能,请确保 设置一个 AI 网关端点,因为您在运行 LLM 评判器时需要选择一个要使用的端点。

完整更新日志

有关完整的变更列表,请参阅版本变更日志

后续规划

快速开始

安装 MLflow 3.10.0 以尝试这些新功能

pip install mlflow==3.10.0

分享你的反馈

我们非常期待听到你对这些新功能的体验

了解更多

MLflow 3.9.0 亮点:AI 助手、仪表板和评判器优化

·阅读时长 6 分钟
MLflow maintainers
MLflow 维护者

MLflow 3.9.0 是一个专注于 AI 可观测性和评估能力的重大版本,为构建、监控和优化 AI 代理带来了强大的新功能。该版本引入了 AI 助手、代理性能仪表板、新的评判器优化算法、评判器构建 UI、使用 LLM 评判器进行持续监控以及分布式追踪。

1. 由 Claude Code 驱动的 MLflow 助手

MLflow 助手将像 Claude Code 这样的编码代理转变为您身边的资深 AI 工程师。与典型的聊天机器人不同,该助手了解您的代码库和上下文——它不仅仅是一个问答工具,更是一位成熟的 AI 工程师,可以找到问题的根本原因、设置质量测试,并将 LLMOps 的最佳实践应用到您的项目中。

关键能力包括

  • 无额外费用:使用您现有的 Claude Code 订阅。MLflow 免费提供知识库和集成。
  • 上下文丰富的帮助:了解您的本地代码库、项目结构,并提供量身定制的建议——而非通用的指导。
  • 完整的开发闭环:不仅仅是问答,还可以提取 MLflow 数据、阅读您的代码,并将追踪、评估和版本控制添加到您的项目中。
  • 完全可定制:添加自定义技能、子代理和权限。一切都在您的机器上运行,具有完全的透明度。

打开 MLflow UI,导航到任意实验页面中的“助手”面板,并按照设置向导进行操作即可开始。

了解更多关于 MLflow 助手的信息

2. 代理性能指标仪表板

GenAI 实验中的新“概览”选项卡提供了预构建的图表和可视化效果,用于一目了然地监控代理性能。无需手动配置即可监控延迟、请求计数和质量得分等关键指标。确定您的代理部署中的性能趋势和异常情况,并获取工具调用摘要以了解您的代理如何利用可用工具。

导航到任意 GenAI 实验并单击“概览”选项卡即可访问仪表板。图表会根据您的追踪数据自动填充。有特定的可视化需求?通过 GitHub Issues 请求添加图表。

了解更多关于 GenAI 仪表板的信息

3. MemAlign:一种新的评判器优化算法

MemAlign 是一种用于 LLM 即评判者评估 的新优化算法,它从过去的反馈中学习评估指南,并在运行时动态检索相关示例。通过从人类反馈模式中学习来提高评判准确性,通过自动指南提取减少提示词工程的工作量,并根据正在评估的输入动态调整评判行为。

使用 MemAlignOptimizer 利用历史反馈优化您的评判器

import mlflow
from mlflow.genai.judges import make_judge
from mlflow.genai.judges.optimizers import MemAlignOptimizer

# Create a judge
judge = make_judge(
name="politeness",
instructions=(
"Given a user question, evaluate if the chatbot's response is polite and respectful. "
"Consider the tone, language, and context of the response.\n\n"
"Question: {{ inputs }}\n"
"Response: {{ outputs }}"
),
feedback_value_type=bool,
model="openai:/gpt-5-mini",
)

# Create the MemAlign optimizer
optimizer = MemAlignOptimizer(reflection_lm="openai:/gpt-5-mini")

# Retrieve traces with human feedback
traces = mlflow.search_traces(return_type="list")

# Align the judge
aligned_judge = judge.align(traces=traces, optimizer=optimizer)

了解更多关于 MemAlign 的信息

4. 使用评判器构建器 UI 配置和构建评判器

全新的可视化界面让您可以创建和测试自定义 LLM 评判器提示词,而无需编写代码。通过即时反馈快速迭代评判标准和评分准则,在部署到生产环境之前在样本追踪上测试评判器,并将验证后的评判器导出到 Python SDK 进行编程集成。

导航到 MLflow UI 中的“评判器”部分并点击“创建评判器”。定义您的评估标准、评分准则,并针对样本追踪测试您的评判器。一旦满意,导出配置以与 MLflow SDK 一起使用。

了解更多关于评判器构建器的信息

5. 使用 MLflow LLM 评判器进行持续在线监控

无需编写任何代码,即可自动在传入的追踪数据上运行 LLM 评判器,实现对生产中代理的持续质量监控。随着追踪数据在系统中流动,实时检测质量问题,利用预定义的评判器进行安全性、相关性、根据性(groundedness)和正确性等常见评估,并直接将可操作的评估结果附加到您的追踪数据中。

转到实验中的“评判器”选项卡,从预定义的评判器中选择或使用您自定义的评判器,并配置要评估的追踪。评估结果会在追踪数据到达时自动附加到匹配的记录上。

了解更多关于代理评估的信息

6. 用于跟踪端到端请求的分布式追踪

通过上下文传播跨多个服务跟踪请求,实现对分布式 AI 系统的端到端可见性。LLM 追踪 维护跨微服务和外部 API 调用的追踪连续性,使用统一的追踪视图调试跨多个服务的问题,并了解分布式管道中每一步的延迟和错误。

使用 get_tracing_context_headers_for_http_requestset_tracing_context_from_http_request_headers 函数来注入和提取追踪上下文

# Service A: Inject context into the headers of the outgoing request
import requests
import mlflow
from mlflow.tracing import get_tracing_context_headers_for_http_request

with mlflow.start_span("client-root"):
headers = get_tracing_context_headers_for_http_request()
requests.post(
"https://your.service/handle", headers=headers, json={"input": "hello"}
)
# Service B: Extract context from incoming request
import mlflow
from flask import Flask, request
from mlflow.tracing import set_tracing_context_from_http_request_headers

app = Flask(__name__)

@app.post("/handle")
def handle():
headers = dict(request.headers)
with set_tracing_context_from_http_request_headers(headers):
with mlflow.start_span("server-handler") as span:
# ... your logic ...
span.set_attribute("status", "ok")
return {"ok": True}

了解更多关于分布式追踪的信息

完整更新日志

有关完整的变更列表,请参阅版本变更日志

后续规划

快速开始

安装 MLflow 3.9.0 以尝试这些新功能

pip install mlflow==3.9.0

分享你的反馈

我们非常期待听到你对这些新功能的体验

了解更多

MLflow 3.8.1

·阅读一分钟
MLflow maintainers
MLflow 维护者

MLflow 3.8.1 包含若干错误修复和文档更新。

错误修复:

  • [追踪] 未安装 sqlalchemy 库时跳过注册 sqlalchemy 存储 (#19563, @WeichenXu123)
  • [模型 / 评分] fix(security):防止通过恶意模型工件进行命令注入 (#19583, @ColeMurray)
  • [提示词] 修复 Databricks 上带有 model_config 的提示词注册问题 (#19617, @TomeHirata)
  • [UI] 通过将 crypto.randomUUID 替换为 uuid 库,修复纯 HTTP 上的 UI 空白页面问题 (#19644, @copilot-swe-agent)

小型错误修复和文档更新:

#19539, #19451, #19409, @smoorjani; #19493, @alkispoly-db

有关完整的变更列表,请参阅版本变更日志,并在 mlflow.org 查看最新文档。

MLflow 3.8.0

·5分钟阅读
MLflow maintainers
MLflow 维护者

MLflow 3.8.0 包含若干重大功能和改进

主要功能

  • ⚙️提示词模型配置:提示词现在可以包含模型配置,允许您将特定的模型设置与提示词模板相关联,以实现更具可重复性的 LLM 工作流。(#18963, #19174, #19279, @chenmoneygithub)
  • 进行中追踪显示:追踪 UI 现在支持通过自动轮询显示进行中追踪的跨度,从而实现长时运行 LLM 应用程序的实时调试和监控。(#19265, @B-Step62)
  • ⚖️DeepEval 和 RAGAS 评判器集成:新的 get_judge API 支持将 DeepEval 和 RAGAS 评估指标用作 MLflow 评分器,提供对 20 多种评估指标的访问,包括答案相关性、忠实度和幻觉检测。(#18988, @smoorjani, #19345, @SomtochiUmeh)
  • 🛡️对话安全评分器:用于评估多轮对话安全性的全新内置评分器,分析整个对话历史记录是否存在仇恨言论、骚扰、暴力及其他安全问题。(#19106, @joelrobin18)
  • 对话工具调用效率评分器:用于评估多轮代理交互中工具调用效率的全新内置评分器,检测冗余调用、错失的批处理机会以及糟糕的工具选择。(#19245, @joelrobin18)

重要通知

  • UI 遥测收集。从 MLflow 3.8.0 开始,MLflow 将收集关于 UI 交互的匿名数据,类似于我们为 Python SDK 收集的遥测数据。如果您管理自己的服务器,则通过设置现有的环境变量 MLFLOW_DISABLE_TELEMETRY=trueDO_NOT_TRACK=true 可自动禁用 UI 遥测。如果您不管理自己的服务器(例如使用托管服务或不是管理员),您仍然可以通过 MLflow UI 中的新“设置”选项卡个人选择退出。欲了解更多信息,请阅读关于 使用量跟踪 的文档。

功能:

  • [追踪] 添加默认密码支持 (#19360, @BenWilson2)
  • [追踪] Pydantic AI 流式支持 (#19118, @joelrobin18)
  • [文档] 弃用 AI Gateway 中的 Unity Catalog 函数集成 (#19457, @harupy)
  • [追踪] 向 mlflow experiments search 添加 --max-results 选项 (#19359, @alkispoly-db)
  • [追踪] 增强加密安全性 (#19253, @BenWilson2)
  • [追踪] 修复并简化网关存储接口 (#19346, @BenWilson2)
  • [评估] 为 LLM 评判器添加 inference_params 支持 (#19152, @debu-sinha)
  • [追踪] 支持批量导出跨度到 UC 表 (#19324, @B-Step62)
  • [追踪] 添加端点标签 (#19308, @BenWilson2)
  • [文档 / 评估] 添加 MLFLOW_GENAI_EVAL_MAX_SCORER_WORKERS 以限制并发评分器执行 (#19248, @debu-sinha)
  • [评估 / 追踪] 在 Databricks 托管的 MLflow 中启用 search_datasets (#19254, @alkispoly-db)
  • [提示词] 在 markdown 中渲染文本提示词预览 (#19200, @ispoljari)
  • [UI] 为追踪搜索选项卡添加关联提示词过滤器 (#19192, @TomeHirata)
  • [评估] 将异步函数传递给 predict_fn 时自动包装 (#19249, @smoorjani)
  • [评估] [3/6][内置评判器] 对话角色依从性 (#19247, @joelrobin18)
  • [追踪] [端点] [1/x] 为端点添加后端数据库表 (#19002, @BenWilson2)
  • [追踪] [端点] [3/x] 实体基础定义 (#19004, @BenWilson2)
  • [追踪] [端点] [4/x] 抽象存储接口 (#19005, @BenWilson2)
  • [追踪] [端点] [5/x] 端点的 SQL 存储后端 (#19006, @BenWilson2)
  • [追踪] [端点] [6/x] 原型和实体接口 (#19007, @BenWilson2)
  • [追踪] [端点] [7/x] 添加 REST 存储实现 (#19008, @BenWilson2)
  • [追踪] [端点] [8/x] 添加凭据缓存 (#19014, @BenWilson2)
  • [追踪] [端点] [9/x] 添加提供商、模型和配置处理 (#19009, @BenWilson2)
  • [评估 / UI] 为评估运行图表视图添加显示/隐藏可见性控制 (#18797) (#18852, @pradpalnis)
  • [追踪] 添加 mlflow experiments get 命令 (#19097, @alkispoly-db)
  • [服务器基础设施] [ 网关 1/10 ] 使用映射类型简化密钥和掩码密钥 (#19440, @BenWilson2)

错误修复:

  • [追踪 / UI] 分支 3.8 补丁:修复 GraphQL SearchRuns 过滤器在追踪比较中使用无效属性键的问题 (#19526, @WeichenXu123)
  • [评分 / 追踪] 修复工件下载性能回归 (#19520, @copilot-swe-agent)
  • [追踪] 修复 _search_runs 中数据集过滤器 SQLAlchemy 别名冲突的问题 (#19498, @fredericosantos)
  • [追踪] 为 GraphQL 路由添加身份验证支持 (#19278, @BenWilson2)
  • [] 修复 UC 函数执行中的 SQL 注入漏洞 (#19381, @harupy)
  • [UI] 修复数据集模式表中 MultiIndex 列搜索崩溃的问题 (#19461, @copilot-swe-agent)
  • [追踪] 使数据源失败时能够优雅地处理 (#19469, @BenWilson2)
  • [追踪 / 追踪] 修复版本 >= 1.78 的 litellm 自动日志记录 (#19459, @harupy)
  • [模型注册表 / 追踪] 修复模型注册表和作业存储中的 SQLAlchemy 引擎连接池泄漏问题 (#19386, @harupy)
  • [UI] [错误修复] 追踪 UI:支持过滤具有多个值(如错误和布尔值)的评估 (#19262, @dbczumar)
  • [评估 / 追踪] 修复反馈中的错误初始化问题 (#19340, @alkispoly-db)
  • [模型] 将 Sagemaker 的容器构建切换到子进程 (#19277, @BenWilson2)
  • [评分] 修复 Strands 追踪上的评分器问题 (#18835, @joelrobin18)
  • [追踪] 停止在仅工件模式下初始化后端存储 (#19167, @mprahl)
  • [评估] 并行化多轮会话评估 (#19222, @AveshCSingh)
  • [追踪] 为 pydantic_ai 添加安全属性捕获 (#19219, @BenWilson2)
  • [模型注册表] 修复 UC 到 UC 复制回归 (#19280, @BenWilson2)
  • [追踪] 修复工件路径遍历向量 (#19260, @BenWilson2)
  • [UI] 修复系统指标上身份验证控制的问题 (#19283, @BenWilson2)
  • [模型] 为 ChatModel 添加上下文加载 (#19250, @BenWilson2)
  • [追踪] 修复 LangGraph 异步调用者的追踪装饰器用法 (#19228, @BenWilson2)
  • [追踪] 更新 docker compose 以使用 --artifacts-destination 而非 --default-artifact-root (#19215, @B-Step62)
  • [构建] 通过合并 README 说明减少 clint 错误消息的冗长性 (#19155, @copilot-swe-agent)

文档更新:

  • [文档] 为正确性评分器添加特定引用 (#19472, @BenWilson2)
  • [文档] 为 Fluency 评分器添加文档 (#19481, @alkispoly-db)
  • [文档] 更新评估快速入门以将所有代码放入脚本 (#19444, @achen530)
  • [文档] 为 KnowledgeRetention 评分器添加文档 (#19478, @alkispoly-db)
  • [评估] 修复 deep-learning.mdx 中不可重现的代码示例 (#19376, @saumilyagupta)
  • [文档 / 评估] 修复:mlflow.genai.evaluate() 的混淆文档 (#19380, @brandonhawi)
  • [文档] 弃用 OpenAI flavor 的模型记录 (#19325, @TomeHirata)
  • [文档] 为文档中的视频元素添加圆角 (#19231, @copilot-swe-agent)
  • [文档] 同步追踪快速入门文档中的 Python/TypeScript 选项卡选择 (#19184, @copilot-swe-agent)

有关完整的变更列表,请参阅版本变更日志,并在 mlflow.org 查看最新文档。

MLflow 3.7.0

·9 分钟阅读
MLflow maintainers
MLflow 维护者

MLflow 3.7.0 包含针对 GenAI 可观测性、评估和提示词管理的若干重大功能和改进。

主要功能

  • 📝 实验提示词 UI:实验 UI 中的新提示词功能允许您直接在实验内管理和搜索提示词,支持过滤字符串和追踪中的提示词版本搜索。(#19156, #18919, #18906, @TomeHirata)
  • 💬 多轮评估支持:增强后的 mlflow.genai.evaluate 现在支持多轮对话,通过 DataFrame 和列表输入实现对对话 AI 应用程序的全面评估。(#18971, @AveshCSingh)
  • ⚖️ 追踪比较:追踪 UI 中的全新并排比较视图允许您分析和调试不同运行中的 LLM 应用程序行为,从而更轻松地识别回归和改进。(#17138, @joelrobin18)
  • 🌐 Gemini TypeScript SDK:支持 TypeScript 中 Google Gemini 的自动追踪,扩展了 MLflow 对 JavaScript/TypeScript AI 应用程序的可观测性能力。(#18207, @joelrobin18)
  • 🎯 评判器中的结构化输出make_judge API 现在支持结构化输出,实现更精确且可通过编程消费的评估结果。(#18529, @TomeHirata)
  • 🔗 VoltAgent 追踪:添加了对 VoltAgent 的自动追踪支持,将 MLflow 的可观测性扩展到该 AI 代理框架。(#19041, @joelrobin18)

重大变更

功能更新

错误修复

文档更新

  • [文档] 添加 LangGraph 优化指南 (#19180, @TomeHirata)
  • [文档] 为多轮评估支持的第一个里程碑添加文档 (#19033, @smoorjani)
  • [文档] 更新 transformers 和 sentence transformers 文档 (#18925, @BenWilson2)
  • [文档] 清理经典评估文档 (#19013, @BenWilson2)
  • [文档] 改进 prompt_template 的文档 (#19105, @ingo-stallknecht)
  • [文档] 修复 ML 文档主页中的拼写错误 (#19048, @copilot-swe-agent)
  • [文档] 将文档 GIF 动画转换为 MP4 视频 (#18946, @harupy)
  • [文档] 通过调整侧边栏布局和样式提高可读性 (#18937, @kevin-lyn)
  • [文档] 清理 scikit-learn 文档 (#18794, @BenWilson2)
  • [文档] 清理 XGBoost 文档 (#18790, @BenWilson2)
  • [文档] 清理 TensorFlow 文档 (#18850, @BenWilson2)
  • [文档] 在 OTel 收集器 YAML 中使用正确的 OTLP HTTP 导出器 (#18930, @Miaoxiang-philips)
  • [文档] 清理 SpaCy 和 Keras 文档 (#18895, @BenWilson2)
  • [文档] 修复追踪(tracing)文档页面的内容 (#18750, @B-Step62)
  • [文档] 改进文件存储弃用警告消息 (#18900, @harupy)
  • [文档] 清理 MLflow 3 文档内容 (#18871, @BenWilson2)
  • [文档] 添加使用 make_judge API 创建多轮判定器(judge)以及直接调用判定器的功能 (#18897, @xsh310)
  • [文档] 清理 PyTorch 文档 (#18816, @BenWilson2)
  • [文档] 清理 Prophet 文档 (#18814, @BenWilson2)
  • [文档] 清理 SparkML 文档 (#18811, @BenWilson2)
  • [文档] 清理传统机器学习落地页 (#18799, @BenWilson2)
  • [文档] 清理深度学习落地页 (#18820, @BenWilson2)
  • [文档] 清理评估数据集文档 (#18766, @BenWilson2)
  • [文档] 修复 OpenTelemetry 文档 (#18810, @joelrobin18)
  • [文档] 明确 mlflow gc 命令针对已固定运行(pinned runs)和已注册模型(registered models)的行为 (#18704, @copilot-swe-agent)

如需完整的变更列表,请查看发布变更日志,并在 mlflow.org 上查看最新文档。