跳到主要内容

MLflow 2.0.1

·5分钟阅读
MLflow maintainers
MLflow 维护者

我们很高兴地宣布 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] 在 experiments UI 中引入了对固定运行(pinning runs)的支持(#7177@harupy
  • [UI] 简化了 experiments UI 中的布局,并提供了对指标、参数和标签的自定义显示(#7177@harupy
  • [UI] 简化了 experiments UI 中的运行过滤和排序(#7177@harupy
  • [Tracking] 更新了 mlflow.pyfunc.get_model_dependencies() 以下载指定模型的所有引用的需求文件(#6733@harupy
  • [Tracking] 添加了对 mlflow.tensorflow.autolog() 使用的 Keras 模型 save_format 的支持(#7123@balvisio
  • [Models] 将 mlflow.evaluate() 状态设置为稳定(stable),因为它现在是一个生产就绪的 API
  • [Models] 简化了使用 mlflow.evaluate() 在模型评估期间指定自定义指标和自定义工件的 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] 在模型签名中添加了对不规则数组(ragged arrays)的支持(#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 后端的实验 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() 时从同一函数返回自定义指标和工件的功能,改用 custom_artifacts#7142@harupy
  • [Models] 扩展了 PyFuncModel spec 以支持 condavirtualenv 子字段(#6684@harupy
  • [Scoring] 移除了使用 Content-Type 标头定义输入格式的支持(#6575@tomasatdatabricks#7254@adriangonz
  • [Scoring] 将原生服务(native serving)的 --no-conda CLI 选项参数替换为 --env-manager='local'#6501@harupy
  • [Scoring] 移除了 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
  • [Integrations/Azure] 移除了 MLflow 中已弃用的 mlflow.azureml 模块,转而使用 azure-mlflow 部署插件(#6691@BenWilson2
  • [R] 移除了 R 客户端的 conda 集成(#6638@harupy

错误修复

  • [Recipes] 修复了 profile cards polyfill 的渲染问题(#7154@hubertzub-db
  • [Tracking] 当 MLflow 运行名称通过 tags 参数传递给 mlflow.start_run() 时,正确设置 MLflow 运行名称(#7228@Cokral
  • [Tracking] 修复了如果设置了 mlflow.runName 标签,则 MLflow 运行名称分配冲突的问题(#7138@harupy
  • [Scoring] 修复了 SageMaker 部署客户端 predict() API 中错误的 payload 构造器错误(#7193@dbczumar
  • [Scoring] 修复了更新 SageMaker 部署时 DataCaptureConfig 信息未保留的问题(#7281@harupy

有关更改的完整列表,请参阅 发行版更改日志,并查阅 mlflow.org 上的最新文档。