跳到主内容

MLflow 2.0.1

·阅读约5分钟
MLflow maintainers

我们很高兴地宣布 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() 时,为 tensorflowkeras 模型启用自动签名日志记录 (#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_nameon_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 规范以支持 condavirtualenv 子字段 (#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 上的最新文档。