MLflow 2.12.1 包含几个主要功能和改进
通过此版本,我们很高兴推出几项新的主要功能,重点增强了 GenAI 支持、涉及图像的深度学习工作流、扩展的表格日志记录功能以及 UI 和外部集成中的一般可用性增强。
主要新功能
PromptFlow
引入了新的 PromptFlow flavor,旨在丰富 MLflow 中的 GenAI 生态。此功能简化了动态提示的创建和管理,增强了用户与 AI 模型的交互并简化了提示工程过程。 (#11311, #11385 @brynn-code)
MLflow 现在支持在 Databricks Unity Catalog 中共享元数据(而非模型权重)。在记录模型时,此功能允许将元数据自动复制到专门的子目录中,与模型的实际存储位置区分开,从而允许不同的共享权限和访问控制限制。 (#11357, #11720 @WeichenXu123)
代码路径统一和标准化
我们已统一并标准化了所有 MLflow flavor 中的 code_paths
参数,以确保一致且简化的用户体验。此更改提高了模型部署生命周期中的一致性并降低了复杂性。 (#11688, @BenWilson2)
ChatOpenAI 和 AzureChatOpenAI 支持
ChatOpenAI 和 AzureChatOpenAI 接口的支持已集成到 LangChain flavor 中,从而实现了会话式 AI 模型的无缝部署。这一发展为构建利用尖端语言模型的复杂和响应式聊天应用程序开辟了新的途径。 (#11644, @B-Step62)
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 安全补丁
解决了模型注册表中一个关键的本地文件读取/路径遍历 (LFI) 漏洞,确保了强大的保护以防止未经授权的访问并保障用户数据完整性。 (#11376, @WeichenXu123)
详细发布说明
功能
- [模型] 添加了 PromptFlow flavor (#11311, #11385 @brynn-code)
- [模型] 为 Langchain 模型和
DatabricksDeploymentClient
添加了新的 predict_stream
API,用于流式输出 (#11490, #11580 @WeichenXu123)
- [模型] 弃用了
pyfunc
中的 code_path
,并添加了 code_paths
别名,以便与其他 flavor 实现标准化 (#11688, @BenWilson2)
- [模型] 在
sentence-transformers
flavor 中添加了对自定义模型的支持 (#11635, @B-Step62)
- [模型] 在与 Spark udf 推理一起使用时,启用了模型签名中的 Spark
MapType
支持 (#11265, @WeichenXu123)
- [模型] 添加了通过使用子目录在 Unity Catalog 中进行仅元数据共享的支持 (#11357, #11720 @WeichenXu123)
- [模型] 在 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)
- [跟踪] 消除了以 Delta 格式记录表格的限制,不再要求在 Databricks 环境中运行 (#11521, @chenmoneygithub)
- [跟踪] 添加了支持在表格中记录
mlflow.Image
文件 (#11535, @jessechancy)
- [服务器基础架构] 引入了覆盖配置,用于控制如何处理 HTTP 重试 (#11590, @BenWilson2)
- [部署] 在 MLflow 部署服务器中为 Anthropic 实现了
chat
和 chat streaming
功能 (#11195, @gabrielfu)
安全修复
错误修复
- [模型注册表] 修复了 Databricks 无服务器集群中发生的注册表配置错误 (#11719, @WeichenXu123)
- [模型注册表] 在删除底层模型时删除已注册模型的权限 (#11601, @B-Step62)
- [模型注册表] 不允许模型名称中包含
%
,以防止在 UI 中出现 URL 乱码 (#11474, @daniellok-db)
- [模型] 修复了在模型日志记录期间,未将关键环境配置捕获为 Langchain 依赖项的问题 (#11679, @serena-ruan)
- [模型] 修补了
LangChain
加载函数,以处理在某些版本中加载模型时抛出的不可纠正的与 pickle 相关的异常 (#11582, @B-Step62)
- [模型] 修复了
sklearn
flavor 中的回归问题,重新引入了对自定义预测方法的支持 (#11577, @B-Step62)
- [模型] 修复了
langchain
flavor 中批处理支持的不一致和不可靠实现问题 (#11485, @WeichenXu123)
- [模型] 修复了加载包含自定义代码的远程代码依赖
transformers
模型的问题 (#11412, @daniellok-db)
- [模型] 删除了
transformers
flavor 中生成不一致输入示例显示在 MLflow UI 中的旧版转换逻辑 (#11508, @B-Step62)
- [模型] 修复了 Keras 自动日志记录迭代输入处理的问题 (#11394, @WeichenXu123)
- [模型] 修复了
keras
自动日志记录训练数据集生成器的问题 (#11383, @WeichenXu123)
- [跟踪] 修复了记录 Langchain 模型时模块会多次导入的问题 (#11553, @sunishsheth2009)
- [跟踪] 修复了
GetSampledHistoryBulkInterval
API 中的采样逻辑,以便在 UI 中显示时产生更一致的结果 (#11475, @daniellok-db)
- [跟踪] 修复了在记录
langchain
模型时,langchain
和 lanchain_community
的导入问题并正确解析依赖项 (#11450, @sunishsheth2009)
- [跟踪] 提高了异步日志记录的性能 (#11346, @chenmoneygithub)
- [部署] 为 Sagemaker 镜像部署中过长的部署名称添加了中间截断 (#11523, @BenWilson2)
文档更新
有关完整的更改列表,请参阅版本更改日志,并查看 mlflow.org 上的最新文档。