MLflow 2.12.1
MLflow 2.12.1 包含多项重大功能和改进
在此次发布中,我们很高兴推出多项重大新功能,这些功能侧重于增强的 GenAI 支持、涉及图像的深度学习工作流、扩展的表日志记录功能以及 UI 和外部集成中的通用可用性增强。
主要新特性
PromptFlow
隆重推出新的 PromptFlow flavor,旨在丰富 MLflow 中的 GenAI 生态系统。此功能简化了动态提示的创建和管理,增强了用户与 AI 模型的交互,并简化了提示工程流程。(#11311、#11385 @brynn-code)
增强的 Unity Catalog 元数据共享
MLflow 现在支持在 Databricks Unity Catalog 中共享元数据(而非模型权重)的功能。在记录模型时,此功能支持将元数据自动复制到专用子目录中,该子目录独立于模型的实际存储位置,从而允许不同的共享权限和访问控制限制。(#11357、#11720 @WeichenXu123)
代码路径统一和标准化
我们已经统一和标准化了所有 MLflow flavors 中的 `code_paths` 参数,以确保用户体验的一致性和简洁性。此更改提高了模型部署生命周期中的一致性并降低了复杂性。(#11688、@BenWilson2)
ChatOpenAI 和 AzureChatOpenAI 支持
已将 ChatOpenAI 和 AzureChatOpenAI 接口的支持集成到 LangChain flavor 中,从而便于无缝部署会话式 AI 模型。这一发展为利用尖端语言模型构建复杂且响应迅速的聊天应用程序开辟了新途径。(#11644、@B-Step62)
Sentence-Transformers 中的自定义模型
sentence-transformers flavor 现在支持自定义模型,从而为部署定制的 NLP 解决方案提供了更大的灵活性。(#11635、@B-Step62)
`log_image` API 中的原生 MLflow 图像支持
增加了对优化的图像记录的支持,包括在训练过程中生成的图像的基于步进的迭代记录。此功能使用户能够轻松跟踪图像生成、分类、分割、增强和对象检测深度学习模型。(#11243、#11404、@jessechancy)
`log_table` 的图像支持
通过在 `log_table` 中添加图像支持,MLflow 增强了其处理丰富媒体的能力。此功能允许直接在平台内记录和可视化图像,从而提高视觉数据的可解释性和分析能力。(#11535、@jessechancy)
LangChain 的流式传输支持
LangChain 模型新引入的 `predict_stream` API 支持流式输出,通过 pyfunc 实现链调用的实时输出。此功能对于需要连续数据处理和即时反馈的应用程序至关重要。(#11490、#11580 @WeichenXu123)
安全修复
LFI 安全补丁
解决了模型注册表中的一个关键本地文件读取/路径遍历漏洞,确保了针对未经授权访问的强大保护,并保障了用户数据的完整性。(#11376、@WeichenXu123)
详细发布说明
功能
- [Models] 添加 PromptFlow flavor(#11311、#11385 @brynn-code)
- [Models] 为 Langchain 模型和 `DatabricksDeploymentClient` 添加新的 `predict_stream` API 以实现流式输出(#11490、#11580 @WeichenXu123)
- [Models] 弃用 `pyfunc` 中的 `code_paths` 别名并添加 `code_path`,以与其他 flavor 实现标准化(#11688、@BenWilson2)
- [Models] 添加对 `sentence-transformers` flavor 中自定义模型的支持(#11635、@B-Step62)
- [Models] 在使用 Spark udf 推理时,为模型签名中的 Spark `MapType` 添加支持(#11265、@WeichenXu123)
- [Models] 添加通过子目录在 Unity Catalog 中进行仅元数据共享的支持(#11357、#11720 @WeichenXu123)
- [Models] 在 LangChain flavor 中为 `ChatOpenAI` 和 `AzureChatOpenAI` LLM 接口添加支持(#11644、@B-Step62)
- [Artifacts] 添加支持,在使用 Unity Catalog 上传和下载文件时利用预签名 URL(#11534、@artjen)
- [Artifacts] 添加新的 `Image` 对象,用于处理图像的记录和优化压缩(#11404、@jessechancy)
- [Artifacts] 为图像记录添加时间与步进元数据(#11243、@jessechancy)
- [Artifacts] 通过 `UCVolumeDatasetSource` 添加将数据集记录到 Unity Catalog 的能力(#11301、@chenmoneygithub)
- [Tracking] 移除记录 Delta 格式表时的限制,不再要求在 Databricks 环境中运行(#11521、@chenmoneygithub)
- [Tracking] 添加支持将 `mlflow.Image` 文件记录在表中(#11535、@jessechancy)
- [Server-infra] 引入覆盖配置,用于控制 HTTP 重试的处理方式(#11590、@BenWilson2)
- [Deployments] 为 MLflow deployments server 中的 SageMaker 图像部署实现 Anthropic 的 `chat` 和 `chat streaming`(#11195、@gabrielfu)
安全修复
- [Model Registry] 修复本地文件读取/路径遍历(LFI)绕过漏洞(#11376、@WeichenXu123)
错误修复
- [Model Registry] 修复在 Databricks serverless 集群中发生的注册表配置错误(#11719、@WeichenXu123)
- [Model Registry] 删除注册模型权限时,同时删除底层模型(#11601、@B-Step62)
- [Model Registry] 不允许模型名称中使用 `%`,以防止 UI 中的 URL 篡改(#11474、@daniellok-db)
- [Models] 修复记录 langchain 模型时,未能将关键的环境配置捕获为 langchain 依赖项的问题(#11679、@serena-ruan)
- [Models] 补丁 `LangChain` 加载函数,以处理在某些版本加载模型时出现的无法纠正的 pickle 相关异常(#11582、@B-Step62)
- [Models] 修复 `sklearn` flavor 中的回归问题,重新引入对自定义预测方法的支持(#11577、@B-Step62)
- [Models] 修复 `langchain` flavor 中批处理支持的不一致且不可靠的实现(#11485、@WeichenXu123)
- [Models] 修复加载包含自定义代码的远程代码依赖 `transformers` 模型(#11412、@daniellok-db)
- [Models] 移除 `transformers` flavor 中生成 MLflow UI 中不一致输入示例显示效果的旧版转换逻辑(#11508、@B-Step62)
- [Models] 修复 Keras autologging 迭代输入处理问题(#11394、@WeichenXu123)
- [Models] 修复 keras autologging 训练数据集生成器问题(#11383、@WeichenXu123)
- [Tracking] 修复记录 langchain 模型时,模块被多次导入的问题(#11553、@sunishsheth2009)
- [Tracking] 修复 `GetSampledHistoryBulkInterval` API 中的采样逻辑,以在 UI 中显示时产生更一致的结果(#11475、@daniellok-db)
- [Tracking] 修复 import 问题,并正确解析记录 langchain 模型时 `langchain` 和 `lanchain_community` 的依赖项(#11450、@sunishsheth2009)
- [Tracking] 提高异步记录的性能(#11346、@chenmoneygithub)
- [Deployments] 为 SageMaker 图像部署的过长部署名称添加中间截断(#11523、@BenWilson2)
文档更新
- [Docs] 为 API 文档中的 `code_paths` docstrings 添加清晰一致的文档(#11675、@BenWilson2)
- [Docs] 为 `sentence-transformers` `OpenAI`-兼容 API 接口添加文档指导(#11373、@es94129)
有关更改的完整列表,请参阅 发布更改日志,并查看 mlflow.org 上的最新文档。
