跳至主内容

MLflow 2.0.1

· 5 min read
MLflow maintainers
MLflow maintainers

我们很高兴地宣布 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() 启用时,开启对 tensorflowkeras 模型的自动签名记录 (#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] 将 getModelVersion API 添加到 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 中移除已弃用的 list APIs,用于 experiments、models 和 runs(#6785, #6786, #6787, #6788, #6800, #6868, @dbczumar
  • [跟踪] 从 Get Experiment REST API 响应中移除已弃用的 runs 响应字段 (#6541, #6524 @dbczumar)
  • [跟踪] 删除已弃用的 MlflowClient.download_artifacts API (#6537, @WeichenXu123)
  • [跟踪] 更改 MLFLOW_EXPERIMENT_NAME 环境变量处理的行为,使在创建实验时始终使用该值 (#6674, @BenWilson2)
  • [跟踪] 将 mlflow server 更新为默认以 --serve-artifacts 模式运行 (#6502, @harupy)
  • [跟踪] 更新 Filestore 后端的 Experiment ID 生成以支持线程安全的并发 (#7070, @BenWilson2)
  • [跟踪] 从 mlflow.evaluate() 指标键中移除 dataset_nameon_data_{name | hash} 后缀 (#7042, @harupy)
  • [Models / Scoring / Projects] 将模型推理和项目执行的默认环境管理器从 conda 更改为 virtualenv (#6459, #6489 @harupy)
  • [Models] 将 Keras 模型记录 API 移动到 mlflow.tensorflow flavor,并放弃对 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 规范以支持 condavirtualenv 子字段 (#6684, @harupy)
  • [评分] 删除使用 Content-Type 头定义输入格式的支持 (#6575, @tomasatdatabricks; #7254, @adriangonz)
  • [评分] 将用于原生服务的 --no-conda CLI 选项参数替换为 --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 的 run CLI 命令中,将 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