我们很高兴地宣布 MLflow 2.0.1 已可用!
MLflow 的 2.0.1 版本是一个重要的里程碑版本,专注于简化端到端 MLOps 工作流的管理,提供新的功能丰富的功能,并扩展 MLflow 提供的生产级 MLOps 功能。请查看 MLflow 2.0 博客文章 以获取深入的讲解!
此版本包含与 1.x API 相比的几个重要的破坏性变更,以及其他主要功能和改进。
特性
- [Recipes] MLflow Pipelines 现已更名为 MLflow Recipes - 一个使数据科学家能够快速开发高质量模型并将其部署到生产环境的框架
- [Recipes] 在 MLflow Recipes 中增加对分类模型的支持 (#7082, @bbarnes52)
- [UI] 在实验 UI 中引入支持固定运行的功能 (#7177, @harupy)
- [UI] 简化布局并在实验 UI 中提供指标、参数和标签的自定义显示 (#7177, @harupy)
- [UI] 简化实验 UI 中的运行过滤和运行排序 (#7177, @harupy)
- [Tracking] 更新
mlflow.pyfunc.get_model_dependencies()
以下载指定模型的所有引用的requirements文件 (#6733, @harupy) - [Tracking] 增加支持选择
mlflow.tensorflow.autolog()
使用的 Keras 模型save_format
(#7123, @balvisio) - [Models] 将
mlflow.evaluate()
状态设置为稳定,因为它现在是一个生产就绪的 API - [Models] 使用
mlflow.evaluate()
简化在模型评估期间指定自定义指标和自定义 artifacts 的 API (#7142, @harupy) - [Models] 在
mlflow.evaluate()
中正确推断二元分类的正标签 (#7149, @dbczumar) - [Models] 当启用
mlflow.tensorflow.autolog()
时,为tensorflow
和keras
模型启用自动签名日志记录 (#6678, @BenWilson2) - [Models] 在
mlflow.tensorflow
中增加对原生 Keras 和 Tensorflow Core 模型的支持 (#6530, @WeichenXu123) - [Models] 增加支持定义
mlflow.xgboost.save/log_model()
使用的model_format
(#7068, @AvikantSrivastava) - [Scoring] 重构模型评分 REST API,引入输入格式指示符并支持多个输出字段 (#6575, @tomasatdatabricks; #7254, @adriangonz)
- [Scoring] 在模型签名中增加对不规则数组的支持 (#7135, @trangevi)
- [Java] 为 Java 客户端增加
getModelVersion
API (#6955, @wgottschalk)
破坏性变更
以下破坏性变更列表按其在每个类别中的重要性顺序排列。
- [Core] 已停止支持 Python 3.7。MLflow 现在要求 Python >=3.8
- [Recipes]
mlflow.pipelines
API 已被mlflow.recipes
替换 - [Tracking / Registry] 移除 Tracking 和 Model Registry REST API 的
/preview
路由 (#6667, @harupy) - [Tracking] 从 Python、Java、R 和 REST API 中移除 Experiments、Models 和 Runs 的弃用
list
API (#6785, #6786, #6787, #6788, #6800, #6868, @dbczumar) - [Tracking] 从
Get Experiment
REST API 响应中移除弃用的runs
响应字段 (#6541, #6524 @dbczumar) - [Tracking] 移除弃用的
MlflowClient.download_artifacts
API (#6537, @WeichenXu123) - [Tracking] 改变环境变量
MLFLOW_EXPERIMENT_NAME
的处理行为,使其值在创建实验时始终被使用 (#6674, @BenWilson2) - [Tracking] 更新
mlflow server
默认为--serve-artifacts
模式运行 (#6502, @harupy) - [Tracking] 更新 Filestore 后端的 Experiment ID 生成以启用线程安全并发 (#7070, @BenWilson2)
- [Tracking] 从
mlflow.evaluate()
指标键中移除dataset_name
和on_data_{name | hash}
后缀 (#7042, @harupy) - [Models / Scoring / Projects] 将模型推理和项目执行的默认环境管理器从
conda
更改为virtualenv
(#6459, #6489 @harupy) - [Models] 将 Keras 模型日志记录 API 移至
mlflow.tensorflow
flavor,并停止支持 TensorFlow Estimators (#6530, @WeichenXu123) - [Models] 移除弃用的
mlflow.sklearn.eval_and_log_metrics()
API,转而使用mlflow.evaluate()
API (#6520, @dbczumar) - [Models] 要求将
mlflow.evaluate()
模型输入指定为 URI (#6670, @harupy) - [Models] 停止支持在使用
mlflow.evaluate()
时从同一个函数返回自定义指标和 artifacts,转而使用custom_artifacts
(#7142, @harupy) - [Models] 扩展
PyFuncModel
规范以支持conda
和virtualenv
子字段 (#6684, @harupy) - [Scoring] 移除通过
Content-Type
头部定义输入格式的支持 (#6575, @tomasatdatabricks; #7254, @adriangonz) - [Scoring] 将原生服务 CLI 选项参数
--no-conda
替换为--env-manager='local'
(#6501, @harupy) - [Scoring] 移除
mlflow.sagemaker.deploy()
和mlflow.sagemaker.delete()
的公共 API,转而使用 MLflow 部署 API,例如mlflow deployments -t sagemaker
(#6650, @dbczumar) - [Scoring] 在
mlflow.deployments.predict()
方法中将输入参数df
重命名为inputs
(#6681, @BenWilson2) - [Projects] 在 MLflow Projects 的
run
CLI 命令中将参数use_conda
替换为env_manager
(#6654, @harupy) - [Projects] 修改 MLflow Projects docker 镜像构建选项,将
--skip-image-build
重命名为--build-image
并默认为False
(#7011, @harupy) - [Integrations/Azure] 从 MLflow 中移除弃用的
mlflow.azureml
模块,转而使用azure-mlflow
部署插件 (#6691, @BenWilson2) - [R] 移除 R 客户端的 conda 集成 (#6638, @harupy)
Bug 修复
- [Recipes] 修复 profile cards polyfill 的渲染问题 (#7154, @hubertzub-db)
- [Tracking] 当在
mlflow.start_run()
的tags
参数中指定时,正确设置 MLflow Run 名称 (#7228, @Cokral) - [Tracking] 修复如果设置了
mlflow.runName
标签会导致 MLflow Run 名称分配冲突的问题 (#7138, @harupy) - [Scoring] 修复 SageMaker 部署客户端
predict()
API 中不正确的 payload constructor 错误 (#7193, @dbczumar) - [Scoring] 修复更新 SageMaker 部署时
DataCaptureConfig
信息未保留的问题 (#7281, @harupy)
有关更改的完整列表,请参阅版本更新日志,并查看 mlflow.org 上的最新文档。