跳到主内容

MLflow 2.12.1

·阅读时长6分钟
MLflow maintainers

MLflow 2.12.1 包含多项主要功能和改进

在此版本中,我们很高兴推出几项主要新功能,这些功能专注于增强 GenAI 支持、涉及图像的深度学习工作流、扩展的表格日志记录功能以及 UI 和外部集成中的通用可用性增强。

主要新功能

PromptFlow

推出新的 PromptFlow flavor,旨在丰富 MLflow 内的 GenAI 生态系统。此功能简化了动态 prompt 的创建和管理,增强了用户与 AI 模型的交互并简化了 prompt 工程流程。 (#11311, #11385 @brynn-code)

增强的 Unity Catalog 元数据共享

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 中的自定义模型

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 中添加对 ChatOpenAIAzureChatOpenAI 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 部署服务器中为 Anthropic 实现 chatchat streaming (#11195, @gabrielfu)

安全修复

  • [模型注册表] 修复本地文件读取/路径遍历 (LFI) 绕过漏洞 (#11376, @WeichenXu123)

错误修复

  • [模型注册表] 修复 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)
  • [Tracking] 修复记录 langchain 模型时模块被多次导入的问题 (#11553, @sunishsheth2009)
  • [Tracking] 改进 GetSampledHistoryBulkInterval API 中的采样逻辑,以便在 UI 中显示时生成更一致的结果 (#11475, @daniellok-db)
  • [Tracking] 修复导入问题,并在日志记录时正确解析 langchain 模型中 langchainlanchain_community 的依赖关系 (#11450, @sunishsheth2009)
  • [Tracking] 提高异步日志记录的性能 (#11346, @chenmoneygithub)
  • [Deployments] 为 Sagemaker 图像部署中过长的部署名称添加名称中间截断功能 (#11523, @BenWilson2)

文档更新

  • [文档] 在 API 文档中为 code_paths docstrings 添加清晰和一致的文档 (#11675, @BenWilson2)
  • [文档] 为 sentence-transformers OpenAI 兼容 API 接口添加文档指导 (#11373, @es94129)

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