什么是 Azure 机器学习 CLI 和 Python SDK v2?

适用范围:Azure CLI ml 扩展 v2(最新版)Python SDK azure-ai-ml v2(最新版)

Azure 机器学习 CLI v2 和 Azure 机器学习 Python SDK v2 在不同的接口之间引入了功能和术语一致性。 为了建立这种一致性,命令语法在某些情况下与第一个版本 (v1) 有很大的不同。

Azure 机器学习 CLI v2

Azure 机器学习 CLI v2 (CLI v2) 是 Azure CLI 的最新扩展。 CLI v2 以 az ml <名词><动词><选项> 格式提供命令来创建和维护 Azure ML 资产与工作流。 资产或工作流本身是使用 YAML 文件定义的。 YAML 文件定义资产或工作流的配置 - 它是什么、在哪里运行,等等。

CLI v2 命令的几个示例:

  • az ml job create --file my_job_definition.yaml
  • az ml environment update --name my-env --file my_updated_env_definition.yaml
  • az ml model list
  • az ml compute show --name my_compute

CLI v2 用例

CLI v2 对于以下情况非常有用:

  • 无需学习特定的编程语言即可加入到 Azure ML

    YAML 文件定义资产或工作流的配置 - 它是什么、在哪里运行,等等。 使用的任何自定义逻辑/IP(例如数据准备、模型训练、模型评分)都可以保留在脚本文件中,这些文件将在 YAML 中引用,但不能用作 YAML 本身的一部分。 Azure ML 支持 Python、R、Java、Julia 或 C# 语言的脚本文件。 只需学习 YAML 格式和命令行就能使用 Azure ML。 你可以坚持使用自己选择的脚本文件。

  • 易于部署和自动化

    使用命令行执行可以简化部署和自动化,因为可以从任何产品/服务/平台调用工作流,使用户能够调用命令行。

  • 托管推理部署

    Azure ML 提供终结点来简化实时部署和批量推理部署的模型部署。 此功能仅通过 CLI v2 和 SDK v2 提供。

  • 管道中的可重用组件

    Azure ML 引入了用于跨管道管理和重用通用逻辑的组件。 此功能仅通过 CLI v2 和 SDK v2 提供。

Azure 机器学习 Python SDK v2

Azure ML Python SDK v2 是一个更新的 Python SDK 包,它使用户能够:

  • 提交训练作业
  • 管理数据、模型和环境
  • 执行托管推理(实时和批量)
  • 使用 Azure ML 管道将多个任务和生产工作流拼接到一起

SDK v2 与 CLI v2 功能相当,在 SDK 与 CLI 之间使用资产(名词)和操作(动词)的方式是一致的。 例如,若要列出资产,在 CLI 和 SDK 中都可以使用 list 操作。 同一 list 操作可用于列出计算、模型、环境等。

SDK v2 用例

SDK v2 对于以下情况非常有用:

  • 使用 Python 函数生成单个步骤或复杂工作流

    SDK v2 允许生成单个命令或命令链,例如 python 函数 - 命令具有名称和参数,需要输入并返回输出。

  • 逐步从简单概念转向复杂概念

    使用 SDK v2 可以:

    • 构造单个命令。
    • 在该命令的基础上添加超参数扫描。
    • 将该命令连同其他各种命令逐个添加到管道中。

    鉴于机器学习的迭代性,这种构造非常有用。

  • 管道中的可重用组件

    Azure ML 引入了用于跨管道管理和重用通用逻辑的组件。 此功能仅通过 CLI v2 和 SDK v2 提供。

  • 托管推理

    Azure ML 提供终结点来简化实时部署和批量推理部署的模型部署。 此功能仅通过 CLI v2 和 SDK v2 提供。

我应该使用 v1 还是 v2?

CLI v2

Azure 机器学习 CLI v1 已弃用。 我们建议对于以下情况使用 CLI v2:

  • 你是 CLI v1 用户
  • 你想使用新的功能,例如可重用组件、托管推理
  • 你不想使用 Python SDK - 通过 CLI v2,可以将 YAML 与 python、R、Java、Julia 或 C# 语言脚本配合使用
  • 你曾经是 R SDK 的用户 - Azure ML 不支持 R 语言的 SDK。 但是,CLI v2 支持 R 语言脚本。
  • 你想使用基于命令行的自动化/部署
  • 不需要 Spark 作业。 此功能目前在 CLI v2 为预览版。

SDK v2

我们未计划 Azure 机器学习 Python SDK v1 的弃用日期。 如果你为 Python SDK v1 投入了很多并且不需要 SDK v2 提供的任何新功能,可以继续使用 SDK v1。 但是,对于以下情况,请考虑使用 SDK v2:

  • 你想使用新的功能,例如可重用组件、托管推理
  • 你正在启动一个新的工作流或管道 - 所有新功能和未来投入将在 v2 中引入
  • 你想利用 Python SDK v2 改进的可用性 - 使用 Python 函数编写作业和管道的功能、从简单任务到复杂任务的轻松演变,等等。
  • 不需要 Spark 作业。 此功能目前在 SDK v2 为预览版。

后续步骤