MLflow 3.x 版本演进全景解读:从 CHANGELOG 看 MLflow 的 GenAI 平台化之路
【免费下载链接】mlflowThe open source AI engineering platform for agents, LLMs, and ML models. MLflow enables teams of all sizes to debug, evaluate, monitor, and optimize production-quality AI applications while controlling costs and managing access to models and data.项目地址: https://gitcode.com/GitHub_Trending/ml/mlflow
本文以仓库根目录 CHANGELOG.md 为绝对核心骨架,系统梳理 MLflow 从 3.0.1(2025-06)到 3.16.0(2026-09)十余个版本的演进脉络,深度解读 Tracing(追踪)、AI Gateway、Evaluation(评估)、模型安全、平台基础设施五大主线的能力变迁,并结合 mlflow/version.py、mlflow/environment_variables.py 及
mlflow/tracing、mlflow/gateway、mlflow/server等源码模块验证变更背后的实现事实。读完本文,你将掌握:每个大版本的关键特性与破坏性变更、核心环境变量的默认值与作用、以及从"传统 ML 实验管理平台"到"面向 Agent / LLM / ML 的统一 AI 工程平台"的完整演化逻辑。
一、版本地图总览:一张表看懂 3.x 的发布节奏
CHANGELOG 顶部即是当前最新稳定版3.16.0(2026-09-03),紧随其后的 3.16.1.dev0 已在 mlflow/version.py 中登记为开发版本。从 3.0 起,MLflow 大致保持了"大版本 + 周期 Patch"的节奏,下表汇总了核心版本与关键主题(完整条目以 CHANGELOG.md 为准):
| 版本 | 发布日期 | 核心主题 |
|---|---|---|
| 3.16.0 | 2026-09-03 | basic-auth 默认 fail-closed、Traces V4 默认体验、AI Gateway 用户级预算、SpanLink(TS SDK) |
| 3.15.0 / 3.15.1 / 3.15.2 | 2026-07~08 | MCP Registry、Assistant 多 Provider、可分享表视图、presigned URL 免代理传输、多模态 LLM Judge |
| 3.14.0 | 2026-06-17 | mlflow agent setup一站式上手指引、Claude Code 持久化低延迟追踪(WAL)、Review Queues、Pytest 回归测试、LLM Playground |
| 3.13.0 | 2026-05-29 | RBAC 角色权限体系 + Admin UI、Trace 保留与自动归档、编码 Agent 一键接入 Gateway、官方 Helm Chart |
| 3.12.0 | 2026-05-04 | 多模态 Tracing、Codex / Gemini / Qwen 追踪、Gateway Guardrails、Trace 表格分页 |
| 3.11.0 / 3.11.1 | 2026-03~04 | 自动问题识别、Gateway 预算告警与限额、Trace Graph View、OTel GenAI 语义约定、UV 依赖锁定、Pickle-Free 序列化 |
| 3.10.0 | 2026-02-20 | 多工作区(Organization)支持、多轮对话评估、Trace 成本追踪、mlflow demo、Gateway 用量统计 |
| 3.9.0 | 2026-01-28 | MLflow Assistant、Trace Overview 仪表盘、AI Gateway 重构、在线 LLM Judge、分布式追踪、MemAlign |
| 3.8.0 / 3.8.1 | 2025-12 | Prompt 模型配置、进行中 Trace 实时展示、DeepEval 集成、对话安全/工具效率 Scorer、UI 遥测 |
| 3.7.0 | 2025-12-05 | SQLite 默认后端、Trace 对比、Gemini TypeScript SDK、结构化输出、移除 diviner/promptflow flavor |
| 3.6.0 | 2025-11-07 | OSS 服务器完整 OpenTelemetry、Session 级视图、Vercel/Gemini/Anthropic/Mastra TS SDK、Agent Server |
| 3.5.0 | 2025-10-16 | Job 执行后端、灵活 Prompt 优化 API、安全中间件 |
| 3.4.0 | 2025-09 | OTel 指标导出、MCP Server、make_judge自定义 Judge、评估数据集、Databricks 后端 |
| 3.3.0 | 2025-08-19 | Model Registry Webhooks、Agno 追踪、OSS GenAI 评估、FastAPI + Uvicorn 默认服务器 |
| 3.2.0 | 2025-08-05 | TypeScript SDK、Semantic Kernel 追踪、Feedback 追踪、PII 掩码、Polars 数据集、使用量遥测 |
| 3.1.x / 3.0.x | 2025-06~07 | MLflow 3.0 主版本、Prompt 优化、token 追踪、Gemini Gateway Provider 等 |
2.x、1.x、0.x 的历史变更分别归档在 changelogs/v2.x.md、changelogs/v1.x.md、changelogs/v0.x.md 中,CHANGELOG 末尾以链接形式给出,本文聚焦 3.x。
二、主线一:Tracing——从"实验追踪"到"Agent 可观测性"
Tracing 是 3.x 演进投入最密集的模块,仓库中对应 mlflow/tracing 目录,包含client.py、provider.py、processor/、otel/、distributed/、archival.py、assessment.py等子模块。
2.1 能力地基:3.6 完整 OpenTelemetry 与 TypeScript SDK 起步
- 3.6.0起,OSS 服务器获得完整 OpenTelemetry 支持:可接收 OTLP 遥测数据,SDK 可同时对接 MLflow 与 OTel,实现"双导出"。同版本还新增Session 级 Trace 视图、TypeScript SDK 对Vercel AI SDK / Gemini / Anthropic / Mastra的自动追踪,以及 Judge 成本与 Trace 记录。
- 3.2.0已先行发布Tracing TypeScript SDK(对应仓库 libs/typescript 目录),支持在 TypeScript 环境中追踪 GenAI 应用,并加入 Semantic Kernel 自动追踪、反馈/ground-truth/LLM Judge 的原生追踪与PII 掩码(通过自定义 span 后处理器实现)。
2.2 分布式与标准:3.9 / 3.11 / 3.12
- 3.9.0引入分布式追踪:Trace 上下文可在不同服务与进程间传播,相关 API 位于
mlflow.tracing.distributed模块(源码见 mlflow/tracing/distributed)。 - 3.11.1新增
MLFLOW_ENABLE_OTEL_GENAI_SEMCONV环境变量:开启后 OTLP 导出前会将 span 属性从mlflow.*格式自动翻译为OpenTelemetry GenAI 语义约定格式,便于与 OTel 兼容的可观测性平台无缝集成。该变量在 mlflow/environment_variables.py 中有明确注释,默认值为False。 - 3.12.0引入多模态 Tracing:图片、音频、PDF 等二进制内容以 artifact 附件(
mlflow-attachment://URI)而非内联二进制存储,UI 支持富渲染;同时新增Codex、Gemini、Qwen 编码 Agent 的追踪支持,与既有的 Claude Code 集成并列。 - 3.6.0起 span 名称不再添加
_1、_2编号后缀(破坏性变更,影响依赖 span 名称匹配的告警与检索逻辑)。
2.3 规模化与治理:3.13 归档、3.14 WAL、3.15/3.16 Traces V4
- 3.13.0提供Trace 保留与自动归档:将老化的 span 数据从 SQL 后端自动迁移到对象存储(如 S3),同时保持 UI/API 中 Trace 完整可读,相关实现见 mlflow/tracing/archival.py 与 mlflow/tracing/trace_archival_service.py。
- 3.14.0为Claude Code 团队级追踪提供写前日志(WAL)机制(
MlflowWalSpanExporter),在代理变慢、追踪服务器过载或网络抖动时也不会丢失 Trace;同时引入Review Queues(将 Trace 分配给评审者收集结构化反馈,回写至 Trace 供评估复用)。 - 3.15.0进一步支持Trace 分页、模型成本自动计算、以及多模态 LLM Judge(
{{ trace }}Judge 可通过get_span_image工具读取 span 中捕获的图片,支持 Anthropic、Gemini 与 OpenAI-compatible 模型)。 - 3.15.0 / 3.16.0中Traces V4成为默认追踪体验:表格支持列重排(tags + metadata 自定义列)、保存视图(saved views)、
Expectation过滤字段、行密度与导航优化,并同步修复了"1 of 0"计数、SpanLink 归一化等一系列 UI/数据层问题。
2.4 生态集成面
编码 Agent 与框架追踪是持续投入点:Claude Code(3.5 起)、Codex(3.12)、Gemini CLI(3.12)、Qwen Code(3.12)、OpenCode(3.11)、OpenClaw(3.13)、Hermes Agent(3.13)、OpenHands(3.11)先后加入;框架侧覆盖 OpenAI / Anthropic / Gemini / LangChain / LangGraph / LlamaIndex / DSPy / Pydantic AI / Haystack / Agno / CrewAI / Semantic Kernel / Strands / AutoGen / Google ADK 等,对应mlflow包下openai/、langchain/、pydantic_ai/等 flavor 目录。
三、主线二:AI Gateway——统一 LLM 入口与治理
AI Gateway 的源码位于 mlflow/gateway(含app.py、config.py、providers/、budget.py、guardrails.py等),并在 mlflow/server 中与追踪服务器深度融合。
3.1 3.9.0 重构:并入 Tracking Server
- 3.9.0 起Gateway 服务直接内置于追踪服务器,无需再单独启动进程;新增passthrough 端点(透传 Anthropic Messages、Gemini
generateContent/streamGenerateContent、OpenAI Responses 等原生 API)、流量拆分(traffic splits)与fallback 模型配置;UI 提供完整的 API Key 管理与端点 CRUD。 - 3.11.x 引入LiteLLM / native providers(Vertex AI、Databricks、Ollama、xAI Grok、Bedrock Converse 等),3.12.0 增加Portkey,3.15.0 增加SAP AI Coreprovider,3.9 起 LiteLLM 被明确为可选扩展(文档澄清见 3.16.0 文档更新条目)。
3.2 治理能力:预算、Guardrails、RBAC
- 3.11.1引入Gateway 预算告警与限额:按日/周/月时间窗口设置支出上限,支持告警 Webhook 与超限自动阻断请求;3.12.0 增加Guardrails(对模型输入/输出做安全合规检查,分为 Pre-LLM / Post-LLM 两个阶段),3.15.0 增加端点级预算策略,3.16.0进一步支持USER 作用域 + principal 的按用户预算策略。
- 3.13.0推出编码 Agent 一键接入:Claude Code、OpenAI Codex、Gemini CLI 可通过 UI 一键路由到 Gateway,获得追踪、用量、预算与 Guardrails 治理。
- 安全相关修复贯穿始终:SSRF 防护(webhook URL 校验、DNS-rebinding)、zstd 压缩请求体支持、
gateway_secrets-configpassphrase 信号对非管理员脱敏、X-MLflow-Gateway-Duration-Ms响应头等。
3.3 用量与可观测
- 3.10.0增加 Gateway Usage 页面:请求模式与指标可视化,Gateway 调用通过 Trace 关联回实验,实现端到端可观测;3.15.0 起支持 OpenAI 协议编码 Agent 通过 RBAC Gateway 认证。
四、主线三:Evaluation——Judge、Scorer 与回归测试体系
评估能力在 mlflow/evaluation 与 mlflow/metrics 等模块落地。
4.1 Judge / Scorer 体系成型
- 3.4.0引入
make_judge自定义 Judge API,并支持评估数据集存储与版本化。 - 3.7.0起
make_judge支持结构化输出(JSON Schema),评估结果更易于程序化消费。 - 3.8.0集成DeepEval(20+ 指标,如答案相关度、忠实度、幻觉检测),新增对话安全 Scorer与对话工具调用效率 Scorer。
- 3.9.0发布在线 LLM Judge:无需写代码即可对 Trace 自动评估;Judge Builder UI支持在 UI 中定义并试运行自定义 Judge prompt;引入MemAlign(
MemAlignOptimizer)从历史反馈中学习通用准则并在运行时动态检索相关示例。 - 3.10.0支持多轮对话评估与会话模拟(session-level Scorer、会话比较、目标/人格蒸馏);3.11.1增加自动问题识别(Detect Issues:对选定 Trace 分析正确性、安全性、性能等类别的问题);3.12.0开放第三方 Scorer 注册;3.15.2增加 scorer_ensemble 原语与不可变评估数据集版本。
4.2 3.14.0 的 Pytest 回归测试范式
3.14.0 提供@mlflow.testpytest 标记与断言框架:将 GenAI 回归测试写成普通 pytest 函数,可在 CI 中门禁,并在 UI 中查看测试历史与逐断言 Judge 结果;EvaluationResult.passed/.reason承载断言结果。配合 3.15.0 的 Review Queues 与 3.16.0 的 scorer 目录化(mlflow scorers list --builtin输出完整目录),评估链路从"一次性实验"升级为"持续质量门禁"。
4.3 成本与性能
- 3.6.0 / 3.10.0持续完善 Judge 调用成本与 Trace 记录;
mlflow.metrics.genai基于模型名自动计算 token 成本。 - 多个 Patch 版本修复了
merge_records、schema 严格模式、期望值保留、Judge 回退等细节问题,保证评估结果可复现。
五、主线四:模型安全与序列化——Pickle-Free 时代
CHANGELOG 中"模型安全"是一条清晰的技术线,源码对应 mlflow/models 与各 flavor 模块。
- 3.9.0开始支持
torch.export.save与skops 序列化格式,并逐步弃用 pickle/cloudpickle 格式(MLFLOW_ALLOW_PICKLE_DESERIALIZATION安全开关)。 - 3.11.1正式提出Pickle-Free Model Serialization:使用
torch.export与skops等安全格式,并完善MLFLOW_ALLOW_PICKLE_DESERIALIZATION=False下的迁移文档。 - 3.14.0作为破坏性变更,将sklearn / lightgbm / pytorch 的
serialization_format默认值切换为 skops / pt2,即新模型默认不再使用 pickle 系序列化。 - 配套安全加固:tar 解包路径穿越防护、symlink 路径穿越防护、prompt 标签校验防任意文件读取、webhook SSRF 防护、命令注入防护(恶意模型 artifact)等贯穿 3.3~3.16 各版本。
MLFLOW_ALLOW_PICKLE_DESERIALIZATION在 mlflow/environment_variables.py 中定义为默认True(兼容旧模型),生产环境建议显式关闭。
六、主线五:平台与基础设施——存储、服务与安全底座
6.1 存储与后端
- 3.7.0破坏性变更:SQLite 成为 Tracking Server 默认后端(除非检测到既有
mlruns数据),替代基于文件的存储,显著提升性能与可靠性。 - 3.13.0破坏性变更:将 Tracking / Model Registry store 指向本地文件系统路径默认报错,需显式设置
MLFLOW_ALLOW_FILE_STORE=true(默认False,见 mlflow/environment_variables.py)才能继续使用文件存储。 - 3.6.0起对文件系统后端(filesystem backends)增加弃用警告;
mlflow db move-resources(3.12)与migrate-filestore(3.10)命令帮助用户在存储后端间迁移资源。
6.2 服务与部署
- 3.3.0:Tracking Server 默认切换为FastAPI + Uvicorn(保持 Flask 兼容),后续版本持续修复 Uvicorn 下的 basic-auth、
--static-prefix、WebSocket scope 等边缘问题。 - 3.13.0:发布官方 Helm Chart(仓库 charts 目录,含
values.yaml、deployment.yaml、ingress.yaml、servicemonitor.yaml等模板),支持一键部署到任意 Kubernetes 集群;3.15/3.16 进一步支持 External Secrets Operator、Artifact Hub 元数据与 OCI 安装文档。 - 3.10.0:
mlflow demo命令一键生成预填充演示环境(样例 Trace、Prompt、评估数据);docker-compose/与 docker 提供快速本地部署(3.16.0 将模型服务镜像升级至 Ubuntu 24.04 + Python 3.11)。 - 3.6.0引入Agent Server(部署与管理 scoring agent 的基础设施),3.5.0 引入Job 执行后端(异步任务、独立执行池、任务搜索)。
6.3 安全与访问控制
- 3.5.0起默认启用安全中间件层,防护 DNS rebinding、CORS 攻击等(配置见 self-hosting 文档)。
- 3.13.0完成权限体系重构:统一为RBAC 角色权限模型(
role_permissions、workspace 级 grant),并发布Admin UI管理用户、角色与权限;旧的 per-resource 权限表、REST 端点与客户端方法被移除,default_permission由"覆盖"变为"地板(floor)"语义。 - 3.16.0将basic-auth 授权默认改为 fail-closed(未显式授权即拒绝),并逐步为 job / issue / evaluation dataset / gateway guardrail / budget / discovery 等原生 FastAPI 路由补齐按资源所有权的授权门禁,同时引入 coverage guard 防止回归。
- 3.15.0支持presigned URL 免代理传输:大文件 artifact 可绕过 Tracking Server 直连对象存储(如 S3),显著降低服务器负载,且自动回退到代理传输以保持兼容。
6.4 工作区与遥测
- 3.10.0引入多工作区(Organization)支持,可用 Workspace 在单一 Tracking Server 内逻辑隔离实验、模型与 Prompt。
- 3.2.0 / 3.8.0引入 UI 与 SDK 的匿名使用遥测(不含敏感或 PII 数据),可通过
MLFLOW_DISABLE_TELEMETRY=true或DO_NOT_TRACK=true关闭(默认值定义见 mlflow/environment_variables.py)。
七、破坏性变更清单:升级前必读
CHANGELOG 明确标注的 3.x 破坏性变更汇总如下(升级请逐条核对):
| 版本 | 变更 | 迁移要点 |
|---|---|---|
| 3.16.0 | basic-auth 默认 fail-closed | 未显式授权的路由默认拒绝,需为 job/gateway 等路由配置授权 |
| 3.16.0 | 移除 pyspark < 3.4.4 交叉版本测试 | 最低支持 pyspark 3.4.4+ |
| 3.16.0 | FastAPI 原生路由在--static-prefix下以 native 方式服务 | 网关/追踪路由 URL 前缀行为变化 |
| 3.14.0 | sklearn / pytorch / lightgbm 默认serialization_format改为 skops / pt2 | 旧 pickle 模型可继续加载,新日志模型默认安全格式 |
| 3.13.0 | 文件系统 store 默认报错 | 设MLFLOW_ALLOW_FILE_STORE=true保留旧行为 |
| 3.13.0 | 权限体系重构为 RBAC,移除旧 per-resource 权限 API | 迁移到/mlflow/users/permissions/*角色 API |
| 3.13.0 | 移除enable_mlserver(pyfunc 服务后端) | 始终使用内置 scoring server |
| 3.13.0 | mlflow autolog claude不再安装旧 Python 钩子 | 改用官方 Claude 插件 |
| 3.13.0 | judge.align()默认优化器改为 MemAlign | 传显式 optimizer 以保持旧结果 |
| 3.12.0 | 弃用enable_mlserver | 同上 |
| 3.11.1 | TS SDK 包重命名为 npm 组织作用域 | mlflow-tracing→@mlflow/core等,全部升至 0.2.0 |
| 3.11.1 | 移除MLFLOW_ENABLE_INCREMENTAL_SPAN_EXPORT;移除 genai extras 中的 litellm/gepa;Registered Model 名禁止/与: | 依赖改为显式声明 |
| 3.7.0 | SQLite 成为默认后端 | 旧mlruns目录被自动检测并继续使用 |
| 3.7.0 | 移除 diviner、promptflow flavor | 迁移到受支持 flavor |
| 3.6.0 | span 名称去掉_1/_2后缀 | 依赖 span 名称匹配的告警/检索需更新 |
| 3.1 | Prompt Registry API 移入mlflow.genai.prompts;search_trace()返回 V3 格式 DataFrame | 更新导入与解析代码 |
八、核心环境变量速查(源码验证)
CHANGELOG 提到的关键开关在 mlflow/environment_variables.py 中均有定义,下表列出名称与默认值:
| 环境变量 | 默认值 | 作用(据源码注释) |
|---|---|---|
MLFLOW_ENABLE_OTEL_GENAI_SEMCONV | False | 开启 OTLP 导出前将 span 属性翻译为 OTel GenAI 语义约定(定义处) |
MLFLOW_ALLOW_FILE_STORE | False | 允许使用处于维护模式的文件系统后端(定义处) |
MLFLOW_ALLOW_PICKLE_DESERIALIZATION | True | 允许 pickle 反序列化;关闭后启用 pickle-free 安全校验(定义处) |
MLFLOW_DISABLE_TELEMETRY | False | 关闭匿名使用遥测(另支持DO_NOT_TRACK=true,定义处) |
MLFLOW_SKIP_PIP_REQUIREMENTS_CHECK | False | 跳过模型依赖 pip 兼容性校验,适配离线/气隙环境(定义处) |
九、如何持续跟踪 MLflow 版本动态
- 阅读 CHANGELOG:CHANGELOG.md 是当前仓库事实的最新权威来源,每个条目带 PR 编号(如
#25308)与贡献者署名(如@PattaraS),可按[模块标签](Tracing / Gateway / Evaluation / Tracking / Models / UI / Docs 等)快速过滤关注面。 - 交叉验证源码:版本声明见 mlflow/version.py(当前
3.16.1.dev0);环境变量语义见 mlflow/environment_variables.py;功能模块对应mlflow/tracing、mlflow/gateway、mlflow/server、mlflow/evaluation、mlflow/models等目录;部署模板见 charts 与 docker-compose。 - 历史版本回溯:2.x / 1.x / 0.x 变更分别记录在 changelogs/v2.x.md、changelogs/v1.x.md、changelogs/v0.x.md。
结语
从 3.0 到 3.16,MLflow 的演进路径清晰可辨:以 Tracing 为可观测性底座,以 AI Gateway 为统一入口,以 Judge/Scorer 体系与 Pytest 回归测试构成评估闭环,以 pickle-free 序列化与 RBAC/basic-auth 强化生产安全,以 SQLite/FastAPI/Helm Chart 夯实部署底座——它已从传统 ML 实验管理平台成长为面向 Agent、LLM 与 ML 模型的统一 AI 工程平台。本文所有特性、破坏性变更与环境变量均可回到 CHANGELOG.md 与对应源码模块逐条核对,是团队评估升级、选型与排障时的可靠参照。
【免费下载链接】mlflowThe open source AI engineering platform for agents, LLMs, and ML models. MLflow enables teams of all sizes to debug, evaluate, monitor, and optimize production-quality AI applications while controlling costs and managing access to models and data.项目地址: https://gitcode.com/GitHub_Trending/ml/mlflow
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考