MLflow 2.x 版本演进全解析:从 2.0 到 2.22 的 GenAI、Tracing 与 MLOps 能力跃迁
【免费下载链接】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
MLflow 2.x 系列是 MLflow 从经典 MLOps 平台向面向 Agent、LLM 与生产级 AI 应用的可观测与治理平台转型的关键阶段。本文以官方发布日志 changelogs/v2.x.md 为骨架,系统梳理 2.0.1 至 2.22.1 期间每个版本的核心特性、破坏性变更与安全修复,并结合当前仓库源码(mlflow/tracing、mlflow/models、mlflow/gateway、mlflow/evaluation、mlflow/deployments、mlflow/dspy 等)验证这些能力的落地点,帮助你快速判断各版本的升级价值、规划迁移路径,并理解 MLflow 现役 API 的演进脉络。读完本文,你将掌握 2.x 期间三大主线——MLflow Tracing、GenAI 模型接口(ChatModel/DSPy/LangChain)与部署/网关服务——各自从无到有的完整时间线及对应源码位置。
1. 版本总览与阅读地图
MLflow 2.x 版本跨度约两年半(2022 年 11 月至 2025 年 6 月),当前仓库主版本已演进到 mlflow/version.py 中的3.16.1.dev0,2.x 的多数能力已成为现役核心功能。下表按时间线汇总主要版本及其定位:
| 版本 | 发布时间 | 定位与代表特性 |
|---|---|---|
| 2.0.1 | 2022-11-14 | 2.x 起点:大量 1.x API 破坏性变更、MLflow Recipes、评分 REST API 重构 |
| 2.1.0 | 2022-12-21 | 多分类 Recipes、Model Registry FileStore、MLmodelmetadata字段 |
| 2.2.x | 2023-02~03 | Recipes 评分校准与标签编码、PyTorch 原生 autologging、注册模型安全加固 |
| 2.3.x | 2023-04~05 | 新增transformers/openai/langchain三大命名 flavor、HTTP Basic Auth |
| 2.4.x | 2023-06~07 | 数据集追踪 API、log_table/load_table、LLM 任务评估、AI Gateway 起步 |
| 2.5.0 | 2023-07-17 | AI Gateway 正式发布、Tracking/Model Registry 认证授权 |
| 2.6.0 | 2023-08-15 | PyFunc 推理额外参数、LangChain retriever 模型 |
| 2.7.x | 2023-09 | Prompt Engineering UI、MosaicML 提供商、Tracking Server 认证插件 |
| 2.8.x | 2023-10~11 | LLM 评估扩展、AI Gateway 新增 4 家提供商、异步日志 |
| 2.9.x | 2023-12 | 安全补丁批次、AI Gateway 迁移至 Deployments API、copy_model_version |
| 2.10.x | 2024-01~02 | Signature 支持 Object/Array、LangChain autologging、Deployments 流式与限流 |
| 2.11.x | 2024-03 | Deep Learning UI 重构、PEFT 支持、ChatModel 接口、Keras 3、checkpointing |
| 2.12.x | 2024-04~05 | PromptFlow flavor、code_paths统一、predict_stream、Unity Catalog 元数据共享 |
| 2.13.x | 2024-05~06 | 流式 Python 模型、代码依赖推断、Deployments OpenAI 兼容标准化 |
| 2.14.x | 2024-06~07 | MLflow Tracing 正式发布、Unity Catalog 集成、OpenAI Autologging |
| 2.15.x | 2024-07~08 | LlamaIndex flavor、OpenAI Tracing、模型部署前校验、自定义指标定义记录 |
| 2.16.x | 2024-08~09 | LangGraph 支持、AutoGen Tracing、AI Gateway 插件体系、UC 开源版注册表 |
| 2.17.x | 2024-09~10 | ChatModel 工具调用、可调用 GenAI 评估指标、AI Gateway 撤销弃用 |
| 2.18.0 | 2024-11-18 | 最低 Python 3.9、DSPy flavor、Fluent API 线程/多进程安全、LLM-as-a-Judge 扩容 |
| 2.19.0 | 2024-12-11 | ChatModel 统一为 ChatCompletion 模式、CrewAI/Anthropic Tracing、AnyType |
| 2.20.x | 2025-01 | 类型提示签名、Bedrock/Groq 一键 Tracing、Jupyter 内联 Trace UI、uv 校验 |
| 2.21.x | 2025-03 | 文档站重构、Prompt Registry、FastAPI 评分服务器、增强 Tracing |
| 2.22.x | 2025-04~06 | OpenAI Responses API Tracing、get_last_active_trace、Gemini Embeddings、ADLS 制品仓库 |
2. 2.x 起点:2.0.1 的破坏性变更与迁移要点
2.0.1 是进入 2.x 时代的里程碑版本,官方发布日志明确列出大量相对 1.x API 的破坏性变更。对仍在维护老代码的团队,这部分是升级前必读的迁移清单:
- Python 版本下限提升:放弃 Python 3.7,要求
Python >=3.8;到 2.18.0 进一步要求Python >=3.9。 - Recipes 取代 Pipelines:
mlflow.pipelinesAPI 全部替换为mlflow.recipes。 - 默认环境管理器改为 virtualenv:模型推理与 Projects 执行的默认环境管理从
conda变为virtualenv,CLI 的--no-conda参数替换为--env-manager='local'。 - 评分 REST API 重构:移除通过
Content-Type头定义输入格式的方式,改用dataframe_split、dataframe_records等格式指示符,并支持多输出字段。 - API 清理:移除实验/模型/运行的旧式
listAPI、MlflowClient.download_artifacts、mlflow.sklearn.eval_and_log_metrics、mlflow.azureml模块;Keras 模型日志 API 移入mlflow.tensorflowflavor 并放弃 TensorFlow Estimators。 - 服务行为变化:
mlflow server默认以--serve-artifacts模式运行;MLFLOW_EXPERIMENT_NAME环境变量在创建实验时总是生效。
这一版本的 Recipes 重构奠定了 mlflow/recipes 模块在 2.x 前期的地位;评分 API 的格式指示符设计也延续至今,体现在 mlflow/models/model.py 与评分服务相关实现中。
3. 经典 MLOps 能力的持续增强(2.1 ~ 2.8)
2.x 前中期在经典 MLOps 领域持续补强,以下能力贯穿 2.1 至 2.8:
- 模型注册表:2.1.0 引入 Model Registry 的 FileStore 支持(源码见 mlflow/store/model_registry/file_store.py)与
mlflow.search_registered_models()fluent API;2.8.0 加入copy_model_version客户端 API 用于跨注册模型复制模型版本,并扩展参数长度上限(500 → 6000)。 - 模型 flavor 家族成型:2.3.0 一次性新增
transformers、openai、langchain三个命名 flavor;2.4.0 新增sentence_transformers与johnsnowlabs;2.4.1 为 transformers 增加max_shard_size参数与音频转写/分类 Pipeline 支持。 - 数据集追踪:2.4.0 引入
mlflow.data与mlflow.log_input()数据集追踪 API,以及mlflow.log_table()/mlflow.load_table()评估表格日志 API;2.11.0 支持不加载到内存直接记录数据集。 - 评估能力扩展:2.4.0 将
mlflow.evaluate()扩展支持 LLM 任务;2.8.0 提供默认 LLM 评估指标、支持评估检索器(Retriever)模型与单参数函数。 - Recipes 打磨:2.2.0 加入分类评分校准、自动标签编码、自定义数据切分与可配置 Run 名前缀。
这些能力在现役代码中的对应实现分别位于 mlflow/models/evaluation(评估)、mlflow/data(数据集)、mlflow/store/model_registry(注册表)等目录。
4. AI Gateway 与 Deployments 服务的演进主线(2.5 ~ 2.17)
4.1 AI Gateway 发布与提供商生态
2.5.0 正式发布MLflow AI Gateway,目标是统一组织内各种 LLM 提供商(OpenAI、Anthropic 等)的使用,提供标准化接口与集中式凭据管理。后续版本持续扩充:
- 2.8.0:新增 AWS Bedrock、HuggingFace TGI、Google PaLM 2、AI21 Labs 四家提供商。
- 2.7.0:新增 MosaicML 提供商,并发布集成在 Gateway 中的Prompt Engineering UI。
- 2.6.0:支持将 MLflow 模型服务路由到 AI Gateway。
当前仓库中的实现集中在 mlflow/gateway 目录,其中 mlflow/gateway/providers 存放各提供商适配器,mlflow/gateway/config.py 负责 Gateway 配置解析与校验,mlflow/gateway/cli.py 提供启动与路由管理命令。
4.2 弃用、撤销弃用与 OpenAI 兼容标准化
- 2.9.0 迁移:AI Gateway 被迁移到 MLflow Deployments API(
mlflow.deployments),官方文档提供了迁移指南。 - 2.17.0 撤销弃用:官方重新考虑后将命名与命名空间回退为原始配置,AI Gateway 不再处于弃用状态。
- 2.13.0 标准化:Deployments Server 端点输出对齐 OpenAI 接口,简化与常用服务的集成;
mlflow.deployments.openaiAPI(2.9.2 加入)可直接通过 Deployments API 访问 OpenAI 服务。 - 2.10.0 流式与限流:Deployments Server 支持 OpenAI 兼容的流式响应,并支持按端点设置限流(rate limits)以控制 SaaS 模型成本超支。
- 2.16.0 插件体系:引入 AI Gateway 插件提供商系统,开发者可以定义自研提供商接口并安装为可安装的 provider 定义,将 Gateway 连接到任意 GenAI 服务——相关入口见 mlflow/deployments/plugin_manager.py 与 mlflow/gateway/provider_registry.py。
此外 2.16.0 支持开源版 Unity Catalog 作为 Model Registry 服务(mlflow/store/model_registry 相关 RestStore 实现),2.16.1 支持 AWS KMS 加密。
5. Tracing:贯穿 2.14 ~ 2.22 的绝对主线
MLflow Tracing 是 2.x 中后期最核心的能力,从 2.14.0 正式发布到 2.22.x 持续演进,现役实现位于 mlflow/tracing 目录(包含 mlflow/tracing/fluent.py 的高层 fluent API、mlflow/tracing/client.py 的客户端 API、mlflow/tracing/otel 的 OpenTelemetry 桥接与 mlflow/tracing/export 的导出器)。
5.1 2.14.0:Tracing 正式落地
- 提供可检查 GenAI 应用处理请求时中间输出的能力,便于监控、分析与调试。
- 内置自动 LangChain 集成,同时提供高层 fluent API 与低层 client API。
- Deployments Server 集成 Unity Catalog,可将注册函数作为工具增强 Chat 应用。
- 新增 OpenAI Autologging,调用 OpenAI API 时自动记录输入输出为制品。
5.2 2.15 ~ 2.16:集成面快速铺开
- 2.15.0:OpenAI 集成支持一键
mlflow.openai.autolog()自动记录 token 用量与交互历史。 - 2.16.0:支持 Microsoft AutoGen 多轮 Agent 应用的全自动追踪(
mlflow.autogen.autolog());支持 LangGraph 的 tracing 与 models-from-code 日志;@mlflow.trace装饰器支持异步;降低 tracing 延迟开销。
5.3 2.17 ~ 2.19:标准化与更多框架
- 2.17.0:统一检索器 span 输出为 MLflow
Document列表。 - 2.18.0:DSPy、LiteLLM、Google Gemini 支持一键自动追踪(对应 mlflow/dspy/autolog.py 与 mlflow/litellm);fluent API 实现线程与多进程安全。
- 2.19.0:新增 CrewAI 与 Anthropic 追踪;DSPy、LlamaIndex、LangChain flavor 均支持自动与手动追踪;评估时自动启用 tracing;新增
update_current_traceAPI 与trace.search_spans()方法。
5.4 2.20 ~ 2.22:一键体验与生产化
- 2.20.0:Amazon Bedrock 与 Groq 支持一行自动追踪(
mlflow.bedrock.tracing/mlflow.groq.tracing);Trace UI 新增统一 Chat 面板;支持在 Jupyter Notebook 内联渲染 Trace UI。 - 2.21.0:支持同步/异步生成器,支持 Async OpenAI 自动追踪。
- 2.22.0:支持 OpenAI Responses API 追踪;引入
get_last_active_trace(影响模型 serving/monitoring 逻辑);Databricks traces 默认异步导出;2.22.1 优化include_spans=False时 span 拉取的线程开销。
6. GenAI 模型接口:ChatModel、DSPy 与 Type Hint 签名
6.1 ChatModel 接口的诞生与规范化
- 2.11.0:为 GenAI 工作负载新增
ChatModel接口,不再要求 Pandas DataFrame 输入,统一与各类 LLM 提供商的交互体验。 - 2.17.0:原生支持工具调用(tool calling),满足自定义 Agent 的创建需求;所有数据结构新增
from_dict();增加metadata字段支持完整输入负载定制;处理refusal响应类型。 - 2.18.0:公布 ChatModel 接口的阶段性破坏性变更预告——
ChatRequest→ChatCompletionRequest、ChatResponse→ChatCompletionResponse、metadata→custom_inputs/custom_outputs、predict_stream未来返回ChatCompletionChunk生成器。 - 2.19.0:上述模式正式落地,
predict_stream使用ChatCompletionChunk实现真正流式;custom_inputs/custom_outputs改用AnyType;并预告未来移除ChatParams中n、temperature、stream的默认值。
相关数据结构实现可查阅 mlflow/models/rag_signatures.py,统一后的 ChatCompletion 模式也体现在 mlflow/models 模块的 GenAI 相关实现中。
6.2 流式预测与代码依赖推断(2.12 ~ 2.13)
- 2.12.1/2.12.2:为 LangChain 模型与自定义 pyfunc 模型引入
predict_streamAPI 实现流式输出;统一并标准化各 flavor 的code_paths参数(code_path作为别名弃用)。 - 2.13.0:
predict_stream正式面向 Python 模型开放;新增infer_model_code_paths选项,自动推断模型实现依赖的代码模块,补充code_paths参数,确保模型可隔离加载与部署——相关示例见 examples/pyfunc/infer_model_code_paths.py。 - 2.13.0:Deployments Server 输出统一为 OpenAI 兼容接口,并新增 TogetherAI 提供商。
6.3 DSPy 与类型提示签名(2.18 ~ 2.20)
- 2.18.0:新增DSPy flavor,支持 DSPy 模型的记录、加载与追踪,实现位于 mlflow/dspy(含 mlflow/dspy/save.py、mlflow/dspy/load.py、mlflow/dspy/autolog.py 与 mlflow/dspy/callback.py)。
- 2.19.0:模型签名支持
AnyType,可承载此前不受支持的任意数据类型。 - 2.20.0:支持基于
PythonModel.predict函数类型提示定义模型签名并校验输入负载,是最 Pythonic 的签名定义方式;同时支持 Pydantic 模型类型提示(2.19.0)。
6.4 LlamaIndex、LangGraph 与更多 flavor(2.15 ~ 2.17)
- 2.15.0:新增原生 LlamaIndex flavor,可记录索引并用于不同引擎类型的推理任务。
- 2.16.0:LangChain 集成扩展支持 LangGraph Agent 框架,支持 models-from-code 日志与追踪;LlamaIndex 支持 engine 直接保存与外部向量库。
- 2.17.1:支持 LlamaIndex
Workflows对象序列化、ChatModel 工具调用。
7. 评估体系的 GenAI 化:LLM-as-a-Judge 与自定义指标
- 2.8.0:提供默认 LLM 评估指标,支持评估检索器模型与推理数据集。
- 2.15.0:自动记录并版本化自定义指标定义(含作为 Judge 的模型与提示词模板),保证评估跨 Run 可复现;
mlflow.evaluate的校验能力用于部署前检查输入输出处理。 - 2.17.0:GenAI 评估指标改为**可调用(callable)**形式,可直接用于支持 callable 指标的其他包,并简化原型调试。
- 2.18.0:LLM-as-a-Judge 支持 Anthropic、Bedrock、Mistral、TogetherAI 等更多提供商,并可通过
proxy_url与extra_headers配置代理端点或自托管 LLM;支持更改内置 Judge 指标的max_workers。 - 2.20.0:
mlflow.evaluate支持在评估中记录 DSPy 结果表;2.12.2 支持覆盖mlflow.evaluate的整体判断提示词。
现役实现集中在 mlflow/evaluation 与 mlflow/models/evaluation,评估相关示例见 examples/evaluation。
8. 认证、安全与大规模部署加固(2.3 ~ 2.22)
8.1 认证与授权
- 2.3.0/2.3.2:Tracking Server 支持 HTTP Basic Auth;后续扩展用户、注册模型与实验的权限管理。
- 2.5.0:正式发布 Tracking 与 Model Registry 的认证授权支持。
- 2.7.0:支持 Tracking Server 认证插件体系。
- 2.8.0:调整用户创建行为,仅管理员可创建新用户。
- 2.22.0:强制密码校验(最少 8 个字符)。
8.2 关键安全修复时间线
2.x 期间公开修复了多类安全漏洞,部署mlflow server/mlflow ui的团队尤其需要关注以下批次:
| 版本 | 修复内容 |
|---|---|
| 2.3.1 | 修复注册模型源相对路径导致的 LFI 攻击;官方强烈建议立即升级 |
| 2.4.1 / 2.5.0 | 增强 LFI 攻击防御(含 Windows 路径校验) |
| 2.9.0 | 三个安全补丁并签发 CVE:HttpArtifactRepository.list_artifacts路径清理、Content-Disposition文件名清理、Content-Type头校验防 POST XSS |
| 2.9.2 | 禁用恶意 YAML 注入(安全 Sandbox 模式渲染)、多项路径穿越修复(..查询、编码路径、FTP 后端、tracking server 净化路径) |
| 2.11.2 / 2.11.3 | 修复 url 参数误用导致的 LFI 漏洞 |
| 2.12.1 | 修复 Model Registry 本地文件读取/路径穿越(LFI)绕过漏洞 |
8.3 大规模制品与基础设施
- 多部分上传/下载:2.9.2 起通过环境变量配置分块大小以支持超大模型制品;2.10.0 支持 Azure Blob 多部分上传。
- Artifact Store 扩展:2.22.0 新增 Azure Data Lake Storage(ADLS)制品仓库;2.7.0 支持 Cloudflare R2 后端。
- 异步日志:2.8.0 引入实验性异步日志支持(metrics/params/tags),2.11.0 提供
mlflow.config.enable_async_logging配置,后续持续优化性能。 - 模型 serving:2.21.0 将推理服务器从 Flask 迁移到 FastAPI,启用 ASGI 扩展以获得更高吞吐;2.13.0 支持多个推理 worker 配置。
9. 版本升级建议与 2.x 演进总结
9.1 升级路径建议
- 从 1.x 升级:必须完整处理 2.0.1 的破坏性变更清单(Python 版本、Recipes、评分 API、环境管理器默认值),详见第 2 节。
- 使用 AI Gateway 的团队:注意 2.9.0 迁移到
mlflow.deployments的变更,以及 2.17.0 撤销弃用后的命名回归;2.13.0 起输出已对齐 OpenAI 接口。 - 依赖 GenAI 能力的团队:Tracing 从 2.14.0 起可用,框架集成在 2.15~2.19 密集落地;ChatModel 接口在 2.19.0 发生数据结构变更,若使用 2.18.x 的
ChatRequest/ChatResponse需适配新命名。 - 关注安全合规的团队:务必升级到至少 2.9.2 及之后的安全修复批次版本(见第 8.2 节表格),并确保 2.3.1 修复的 LFI 问题已覆盖。
9.2 演进总结
回顾整个 2.x 周期,MLflow 完成了三次关键跃迁:其一,从经典 MLOps(Recipes、注册表、评估)走向 GenAI 原生支持(ChatModel、DSPy、Prompt Registry);其二,从「记录运行」走向「生产级可观测」(Tracing 全框架自动埋点、Trace UI、LLM-as-a-Judge);其三,从单一 Tracking Server 走向可插拔的部署与网关体系(Deployments 插件、OpenAI 兼容标准化、Unity Catalog 集成)。这些能力在 mlflow 主包中均有对应实现,是理解现役 MLflow 3.x 架构的最佳历史注脚。
10. 相关资源
- 发布日志原文:changelogs/v2.x.md;更早版本见 changelogs/v1.x.md,更完整时间线可对照 CHANGELOG.md
- Tracing 实现:mlflow/tracing、examples/tracing
- 模型与 GenAI flavor:mlflow/models、mlflow/dspy、mlflow/langchain、mlflow/openai
- 评估实现与示例:mlflow/evaluation、mlflow/models/evaluation、examples/evaluation
- 部署与网关:mlflow/deployments、mlflow/gateway、examples/gateway
- 模型注册表:mlflow/store/model_registry
【免费下载链接】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),仅供参考