跳到主要内容

MLflow 2.11.0

·7 分钟阅读
MLflow maintainers

MLflow 2.11.0 包含多项重要功能和改进

MLflow 2.11.0 发布版本带来了一系列影响深远的重要功能,涵盖了生成式AI和深度学习用例。

MLflow UI 中针对深度学习的新改进

MLflow Tracking UI 进行了全面改进,以更好地支持深度学习工作负载的训练运行审查和比较。从分组到在深度学习模型训练周期的迭代过程中绘制大规模指标图,有大量生活质量方面的改进来增强您的深度学习 MLOps 工作流程。

在 Transformers 中支持 PEFT、无限制的 Pipeline 日志记录以及无权重的模型日志记录

现在,在 mlflow.transformers 版本中支持来自 HuggingFace 的流行 PEFT 库。除了支持 PEFT,我们还取消了可以记录到 MLflow 的 Pipeline 类型的限制,并且能够在开发和测试模型时,在不复制基础模型权重的情况下记录 transformer pipeline。这些增强功能旨在使 transformer 版本对于前沿生成式AI模型和新型 pipeline 更有用,并简化提示工程、微调的开发过程,使迭代开发更快、更便宜。立即尝试更新后的版本吧!(#11240, @B-Step62)

TensorFlow 和 PyTorch 的 Autologging 现在支持模型权重的检查点记录

我们为 PyTorchTensorFlow 的 autologging 实现添加了自动模型权重检查点记录(包括从之前状态恢复)的支持。这项呼声很高的功能让您可以自动配置长时间运行的深度学习训练,安全地保存您的最佳 epoch,从而消除训练后期因失败而丢失模型优化状态的风险。(#11197, #10935, @WeichenXu123)

用于 pyfunc 模型统一聊天体验的 ChatModel 接口

我们为 pyfunc 添加了一个新的生成式AI工作负载接口。新的 ChatModel 接口允许您像与任何其他提供商一样与已部署的生成式AI聊天模型进行交互。简化的接口(不再要求符合 Pandas DataFrame 输入类型)旨在统一 API 接口体验。(#10820, @daniellok-db)

MLflow 中支持 Keras 3

我们现在支持 Keras 3。Keras 库的这次重大改革引入了 Keras 如何与不同深度学习框架集成的新基础性变化,带来了大量新功能和互操作性。要了解更多信息,请参阅 Keras 3.0 教程,立即开始使用更新后的模型版本!(#10830, @chenmoneygithub)

Mistral AI 模型现已在 MLflow Deployments Server 中可用

已将 Mistral AI 添加为 MLflow Deployments Server 的原生 提供程序。现在,您可以使用强大的生成式AI模型创建到 Mistral AI 服务的代理连接,用于文本补全和嵌入。(#11020, @thnguyendn)

MLflow 现在支持 OpenAI 1.x SDK

我们添加了对 OpenAI 1.x SDK 的兼容性支持。无论您是将 OpenAI LLM 用于模型评估,还是在 LangChain 模型中调用 OpenAI,现在都可以利用 OpenAI SDK 的 1.x 系列,而无需指向已弃用的旧版 API。(#11123, @harupy)

新功能

  • [UI] 全面改进 MLflow Tracking UI,用于深度学习工作流程,提供更直观、更高效的用户体验 (#11233, @daniellok-db)
  • [数据] 引入了无需将数据集加载到内存即可记录数据集的能力,优化了资源使用和处理时间 (#11172, @chenmoneygithub)
  • [模型] 为 TensorFlow 引入日志记录频率控制,与 Keras 对齐以实现一致的性能监控 (#11094, @chenmoneygithub)
  • [模型] 在 mlflow.pyfunc.predict 中添加 PySpark DataFrame 支持,增强数据兼容性和批处理推理的分析选项 (#10939, @ernestwong-db)
  • [模型] 引入新的 CLI 命令以更新模型需求,便于在无需重新记录的情况下更容易维护、验证和更新模型 (#11061, @daniellok-db)
  • [模型] 更新句子 transformer 的嵌入 API,以确保与 OpenAI 格式兼容,拓宽模型应用范围 (#11019, @lu-wang-dl)
  • [模型] 改进文本生成模型的输入和签名支持,优化聊天和文本补全任务 (#11027, @es94129)
  • [模型] 在文本生成 pipeline 中启用聊天和文本补全任务输出,扩展交互功能 (#10872, @es94129)
  • [跟踪] 为系统指标添加节点 ID,增强多节点设置中的日志记录,改进诊断和监控 (#11021, @chenmoneygithub)
  • [跟踪] 实现 mlflow.config.enable_async_logging 以进行异步日志记录,提高日志处理和系统性能 (#11138, @chenmoneygithub)
  • [评估] 增强模型评估,支持 endpoint URL,简化性能评估和集成 (#11262, @B-Step62)
  • [部署] 为 Cohere 实现聊天和聊天流支持,增强交互式模型部署能力 (#10976, @gabrielfu)
  • [部署] 启用 Cohere 流支持,允许 MLflow Deployments server 与 Cohere 提供程序实现实时交互功能 (#10856, @gabrielfu)
  • [Docker / 推理] 优化用于模型服务的 Docker 镜像,确保更高效的部署和可扩展性 (#10954, @B-Step62)
  • [推理] 在推理服务器中支持文本补全 (prompt) 和嵌入 (input) 格式输入,提高模型交互的灵活性 (#10958, @es94129)

错误修复

  • [模型注册表] 纠正了在模型注册表设置中未使用默认凭据文件的疏忽 (#11261, @B-Step62)
  • [模型注册表] 解决了在注册模型详情页中模型版本表格别名的可见性问题 (#11223, @smurching)
  • [模型] 确保在强制执行 ChatModel 输出时调用 load_context(),以便所有必需的外部引用都包含在模型对象实例中 (#11150, @daniellok-db)
  • [模型] 修正签名不匹配中 Keras 输出 dtype 的问题,确保数据一致性和准确性 (#11230, @chenmoneygithub)
  • [模型] 解决了 Spark 模型加载失败的问题,增强了模型的可靠性和可访问性 (#11227, @WeichenXu123)
  • [模型] 消除了 Databricks 中签名缺失的误报警告,改进了用户体验和模型验证过程 (#11181, @B-Step62)
  • [模型] 对 Transformer 模型日志记录期间的签名/需求推断实现超时,优化日志记录过程并避免延迟 (#11037, @B-Step62)
  • [模型] 解决了 transformer pipeline 缺少 dtype 的问题,确保数据完整性和模型准确性 (#10979, @B-Step62)
  • [模型] 纠正了由于对模型配置进行就地更新导致的非幂等预测问题,稳定了模型输出 (#11014, @B-Step62)
  • [模型] 修复了将 torch.dtype 指定为字符串时未能正确应用于底层 transformer 模型的问题 (#11297, #11295, @harupy)
  • [跟踪] 修复了非 LLM/自定义指标的 mlflow.evaluate col_mapping 错误,确保准确的评估和指标计算 (#11156, @sunishsheth2009)
  • [跟踪] 解决了 TensorInfo TypeError 异常消息问题,确保为用户提供清晰准确的错误报告 (#10953, @leecs0503)
  • [跟踪] 增强 RestException 对象的可 pickle 性,提高了它们在序列化至关重要的分布式计算场景中的可用性 (#10936, @WeichenXu123)
  • [跟踪] 解决了对无法识别的响应错误码的处理问题,确保在边缘情况下的健壮错误处理和改进的用户反馈 (#10918, @chenmoneygithub)
  • [Spark] 将硬编码的 io.delta:delta-spark_2.12:3.0.0 依赖项更新到正确的 scala 版本,使依赖项与项目需求对齐 (#11149, @WeichenXu123)
  • [服务器基础设施] 通过避免使用 importlib.metadata.entry_points().get 来适应较新版本的 Python,增强兼容性和稳定性 (#10752, @raphaelauv)
  • [服务器基础设施 / 跟踪] 引入一个环境变量以禁用 mlflow 在导入时配置日志记录,提高可配置性和用户控制 (#11137, @jmahlik)
  • [认证] 增强 mlflow.login() 的认证验证,简化认证过程并提高安全性 (#11039, @chenmoneygithub)

文档更新

  • [文档] 引入一个全面的 notebook,演示如何在 Transformers 和 Pyfunc 中使用 ChatModel,为用户提供利用这些模型的实用见解和指南 (#11239, @daniellok-db)
  • [跟踪 / 文档] 稳定数据集日志记录 API,移除实验状态 (#11229, @dbczumar)
  • [文档] 修订和更新关于认证数据库配置的文档,提供更清晰的说明和更好的支持,用于设置安全的认证机制 (#11176, @gabrielfu)
  • [文档] 发布 MLflow 数据日志记录和 log_input 的新指南和教程,用可操作的建议和示例丰富文档,以便有效处理数据 (#10956, @BenWilson2)
  • [文档] 升级文档视觉效果,将低分辨率和抖动不良的 GIF 替换为高质量 HTML5 视频,显著增强学习体验 (#11051, @BenWilson2)
  • [文档 / 示例] 纠正 MLflow Deployments Server 文档中 OpenAI 的兼容性矩阵,为用户提供准确的集成详情并支持更顺畅的部署 (#11015, @BenWilson2)

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