MLflow 2.11.0
MLflow 2.11.0 包含多项重大功能和改进
随着 MLflow 2.11.0 的发布,我们很高兴地推出了贯穿 GenAI 和深度学习用例的一系列大型且有影响力的功能。
MLflow UI 中新增的深度学习相关改进
MLflow Tracking UI 经过了重新设计,以更好地支持深度学习工作负载的训练运行的审查和比较。从分组到在 DL 模型训练周期的迭代过程中进行大规模指标绘图,有大量的改进可提升您的深度学习 MLOps 工作流。
支持 PEFT、不受限制的 Pipeline 日志记录以及 transformers 中的无权重模型日志记录
HuggingFace 的热门 PEFT 库现已在 mlflow.transformers flavor 中可用。除了 PEFT 支持外,我们还取消了可记录到 MLflow 的 Pipeline 类型的限制,以及在开发和测试模型时记录 transformers Pipeline 而无需复制基础模型权重的能力。这些增强旨在使 transformers flavor 在前沿 GenAI 模型、新型 Pipeline 类型方面更加有用,并简化提示工程、微调的开发过程,使迭代开发更快、成本更低。立即尝试更新的 flavor 吧!(#11240, @B-Step62)
TensorFlow 和 PyTorch 的自动日志记录现在支持模型权重的检查点
我们已为 PyTorch 和 TensorFlow 添加了对两种 flavor 中自动日志记录实现的自动模型权重检查点(包括从先前状态恢复)的支持。这项备受请求的功能允许您自动配置长时间运行的深度学习训练,以安全地存储最佳的 epoch,从而消除因训练后期失败而丢失模型优化状态的风险。(#11197, #10935, @WeichenXu123)
ChatModel 接口,为 pyfunc 模型提供统一的聊天体验
我们为 GenAI 工作负载的 Pyfunc 添加了一个新接口。新的 ChatModel 接口允许您像与其他任何提供商交互一样与已部署的 GenAI 聊天模型进行交互。简化的接口(不再需要符合 Pandas DataFrame 输入类型)旨在统一 API 接口体验。(#10820, @daniellok-db)
MLflow 中的 Keras 3 支持
我们现在支持 Keras 3。Keras 库的这次重大改版为 Keras 与不同 DL 框架的集成方式带来了新的根本性变化,并带来了大量新功能和互操作性。要了解更多信息,请参阅 Keras 3.0 教程,立即开始使用更新的模型 flavor 吧!(#10830, @chenmoneygithub)
Mistral AI 模型现已在 MLflow Deployments Server 中可用
Mistral AI 已被添加为 MLflow Deployments Server 的原生 提供商。您现在可以为 Mistral AI 服务创建代理连接,用于完成和嵌入其强大的 GenAI 模型。(#11020, @thnguyendn)
MLflow 现在支持 OpenAI 1.x SDK
我们已添加与 OpenAI 1.x SDK 的兼容性支持。无论您是将 OpenAI LLM 用于模型评估,还是在 LangChain 模型中调用 OpenAI,现在都可以使用 1.x 系列 OpenAI SDK,而无需指向已弃用的旧版 API。(#11123, @harupy)
功能
- [UI] 改造 MLflow Tracking UI 以适应深度学习工作流,提供更直观高效的用户体验(#11233, @daniellok-db)
- [Data] 引入无需将数据集加载到内存中即可记录数据集的能力,优化了资源使用和处理时间(#11172, @chenmoneygithub)
- [Models] 引入 TensorFlow 的日志记录频率控制,使其与 Keras 对齐,以实现一致的性能监控(#11094, @chenmoneygithub)
- [Models] 在
mlflow.pyfunc.predict中添加 PySpark DataFrame 支持,增强了批量推理的数据兼容性和分析选项(#10939, @ernestwong-db) - [Models] 引入用于更新模型要求的新的 CLI 命令,便于在无需重新记录的情况下轻松维护、验证和更新模型(#11061, @daniellok-db)
- [Models] 更新 sentence transformers 的 Embedding API,以确保与 OpenAI 格式兼容,从而拓宽了模型应用范围(#11019, @lu-wang-dl)
- [Models] 改进文本生成模型的输入和签名支持,优化聊天和完成任务(#11027, @es94129)
- [Models] 在文本生成 pipeline 中启用聊天和完成任务输出,扩展了交互功能(#10872, @es94129)
- [Tracking] 为系统指标添加节点 ID,以增强多节点设置中的日志记录,改进诊断和监控(#11021, @chenmoneygithub)
- [Tracking] 实现
mlflow.config.enable_async_logging以支持异步日志记录,改进日志处理和系统性能(#11138, @chenmoneygithub) - [Evaluate] 通过支持端点 URL 来增强模型评估,简化了性能评估和集成(#11262, @B-Step62)
- [Deployments] 为 Cohere 实现聊天和聊天流式支持,增强了交互式模型部署功能(#10976, @gabrielfu)
- [Deployments] 启用 Cohere 流式支持,允许 MLflow Deployments 服务器与 Cohere 提供商进行实时交互功能(#10856, @gabrielfu)
- [Docker / Scoring] 优化 Docker 镜像以进行模型服务,确保更高效的部署和可扩展性(#10954, @B-Step62)
- [Scoring] 支持评分服务器中的完成(
prompt)和嵌入(input)格式输入,增加了模型交互的灵活性(#10958, @es94129)
错误修复
- [Model Registry] 修正了模型注册表设置中未利用默认凭证文件的疏忽(#11261, @B-Step62)
- [Model Registry] 解决了已注册模型详细信息页面中模型版本表中别名的可见性问题(#11223, @smurching)
- [Models] 确保在强制执行
ChatModel输出时调用load_context(),以便将所有必需的外部引用包含在模型对象实例中(#11150, @daniellok-db) - [Models] 修正了 Keras 输出 dtype 在签名不匹配中的问题,确保数据的一致性和准确性(#11230, @chenmoneygithub)
- [Models] 解决 Spark 模型加载失败的问题,提高了模型的可靠性和可访问性(#11227, @WeichenXu123)
- [Models] 消除 Databricks 中缺少签名的误报警告,改进了用户体验和模型验证流程(#11181, @B-Step62)
- [Models] 在 Transformer 模型记录期间实现签名/要求推断的超时,优化了记录过程并避免了延迟(#11037, @B-Step62)
- [Models] 解决 transformer pipeline 缺少 dtype 的问题,确保数据完整性和模型准确性(#10979, @B-Step62)
- [Models] 修正了因就地更新 model-config 导致的非幂等预测,稳定了模型输出(#11014, @B-Step62)
- [Models] 修复了将
torch.dtype指定为字符串未正确应用于底层 transformers 模型的问题(#11297, #11295, @harupy) - [Tracking] 修复了
mlflow.evaluate的col_mapping错误,适用于非 LLM/自定义指标,确保准确的评估和指标计算(#11156, @sunishsheth2009) - [Tracking] 解决
TensorInfoTypeError 异常消息问题,确保错误报告的清晰度和准确性(#10953, @leecs0503) - [Tracking] 增强
RestException对象的可序列化性,在需要序列化的分布式计算场景中提高其可用性(#10936, @WeichenXu123) - [Tracking] 解决无法识别的响应错误代码的处理问题,确保鲁棒的错误处理并在边缘情况下改进用户反馈(#10918, @chenmoneygithub)
- [Spark] 将硬编码的
io.delta:delta-spark_2.12:3.0.0依赖项更新为正确的 scala 版本,使依赖项与项目要求保持一致(#11149, @WeichenXu123) - [Server-infra] 适应更新的 Python 版本,避免使用
importlib.metadata.entry_points().get,提高兼容性和稳定性(#10752, @raphaelauv) - [Server-infra / Tracking] 引入一个环境变量来禁用 mlflow 在导入时配置日志记录,提高可配置性和用户控制(#11137, @jmahlik)
- [Auth] 增强
mlflow.login()的认证验证,简化认证流程并提高安全性(#11039, @chenmoneygithub)
文档更新
- [Docs] 引入了一个全面的笔记本,演示了 ChatModel 与 Transformers 和 Pyfunc 的使用,为用户提供了利用这些模型的实用见解和指南(#11239, @daniellok-db)
- [Tracking / Docs] 稳定数据集日志记录 API,取消其实验性状态(#11229, @dbczumar)
- [Docs] 修改和更新了关于认证数据库配置的文档,提供了更清晰的说明,并为设置安全认证机制提供了更好的支持(#11176, @gabrielfu)
- [Docs] 发布 MLflow 数据日志记录和
log_input的新指南和教程,用可操作的建议和示例充实了文档,以便进行有效的数据处理(#10956, @BenWilson2) - [Docs] 通过用高质量的 HTML5 视频替换低分辨率和糟糕抖动的 GIF 来升级文档视觉效果,极大地增强了学习体验(#11051, @BenWilson2)
- [Docs / Examples] 修正了 MLflow Deployments Server 文档中 OpenAI 的兼容性矩阵,为用户提供准确的集成详细信息并支持更顺畅的部署(#11015, @BenWilson2)
有关更改的完整列表,请参阅 发行版变更日志,并查看 mlflow.org 上的最新文档。
