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