什么是 Azure 机器学习 CLI 和 Python SDK v2?
适用范围:Azure CLI ml 扩展 v2(最新版)Python SDK azure-ai-ml v2(最新版)
Azure 机器学习 CLI v2 (CLI v2) 和 Azure 机器学习 Python SDK v2 (SDK v2) 引入了跨接口的功能和术语的一致性。 为了建立这种一致性,命令语法在某些情况下与第一个版本 (v1) 有很大的不同。
CLI v2 和 SDK v2 之间的功能没有差异。 基于命令行的 CLI 在 CI/CD MLOps 类型的场景中可能更方便,而 SDK 可能更便于开发。
Azure 机器学习 CLI v2
Azure 机器学习 CLI v2 是 Azure CLI 的最新扩展。 CLI v2 以 az 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 机器学习。
YAML 文件定义资产或工作流的配置,例如它是什么及其运行位置? 使用的任何自定义逻辑或 IP(例如数据准备、模型训练和模型评分)都可以保留在脚本文件中。 这些文件在 YAML 中引用,但不属于 YAML 本身。 机器学习支持 Python、R、Java、Julia 或 C# 语言的脚本文件。 只需学习 YAML 格式和命令行就能使用机器学习。 你可以坚持使用自己选择的脚本文件。
利用轻松部署和自动化。
使用命令行执行使部署和自动化更简单,因为可以从任何产品或平台调用工作流,从而允许用户调用命令行。
使用托管推理部署。
机器学习提供终结点,可简化实时部署和批量推理部署的模型部署。 此功能仅通过 CLI v2 和 SDK v2 提供。
在管道中重复使用组件。
机器学习引入了用于跨管道管理和重用通用逻辑的组件。 此功能仅通过 CLI v2 和 SDK v2 提供。
Azure 机器学习 Python SDK v2
Azure 机器学习 Python SDK v2 是一个更新的 Python SDK 包,它使用户能够:
- 提交训练作业。
- 管理数据、模型和环境。
- 执行托管推理(实时和批量)。
- 使用机器学习管道将多个任务和生产工作流拼结到一起。
SDK v2 与 CLI v2 功能相当,在 SDK 与 CLI 之间使用资产(名词)和操作(动词)的方式是一致的。 例如,若要列出资产,可以在 SDK 和 CLI 中使用 list
操作。 可使用同一 list
操作列出计算、模型、环境等。
SDK v2 用例
SDK v2 对于以下情况非常有用:
使用 Python 函数生成单个步骤或复杂工作流。
SDK v2 允许生成单个命令或 Python 函数等命令链。 该命令具有名称和参数,需要输入并返回输出。
逐步从简单概念转向复杂概念。
使用 SDK v2 可以:
- 构造单个命令。
- 在该命令的基础上添加超参数扫描。
- 将该命令连同其他各种命令逐个添加到管道中。
由于机器学习的迭代性,这种构造非常有用。
在管道中重复使用组件。
机器学习引入了用于跨管道管理和重用通用逻辑的组件。 此功能仅通过 CLI v2 和 SDK v2 提供。
使用托管推理。
机器学习提供终结点,可简化实时部署和批量推理部署的模型部署。 此功能仅通过 CLI v2 和 SDK v2 提供。
我应该使用 v1 还是 v2?
对 CLI v1 的支持将于 2025 年 9 月 30 日结束。
建议将 CLI 和 SDK v1 的代码迁移到 CLI 和 SDK v2。 有关详细信息,请参阅升级 v2。
CLI v2
Azure 机器学习 CLI v1 已弃用。 对 v1 扩展的支持将于 2025 年 9 月 30 日结束。 你将在该日期之前能够安装和使用 v1 扩展。
建议在 2025 年 9 月 30 日之前转换为 ml
或 v2 扩展。
SDK v2
我们未计划 Azure 机器学习 Python SDK v1 的弃用日期。 如果你为 Python SDK v1 投入了很多并且不需要 SDK v2 提供的任何新功能,可以继续使用 SDK v1。 但是,对于以下情况,请考虑使用 SDK v2:
- 你想使用新的功能,例如可重用组件、托管推理。
- 正在启动新的工作流或管道。 所有新功能和未来投资都将在 v2 中引入。
- 你想利用 Python SDK v2 改进的可用性,使用 Python 函数编写作业和管道的功能、从简单任务到复杂任务的轻松演变,等等。