创建 Azure 机器学习作业

已完成

操作机器学习模型的第一步是将它作为 Azure 机器学习作业运行。 可以将单个脚本作为“命令”作业运行,也可以将脚本组作为“管道”作业运行

数据科学团队在 Jupyter 笔记本中提供他们的工作,即在该笔记本中加载、转换和训练数据。 若要为生产准备代码和模型,你需要:

  • 将笔记本重构为脚本。
  • 请参阅作业定义中的脚本。
  • 触发作业以训练模型。

将代码重构为脚本

若要使机器学习模型可供生产使用,你应首先准备好用于生产的代码。 具有需要转换为生产代码的 Jupyter 笔记本时,你需要:

  • 清理不必要的代码。
  • 将代码导出到 Python 脚本。
  • 在脚本中使用函数。

通过在脚本中使用函数,可以更轻松地测试代码质量。 当你有要执行的脚本时,可以使用 Azure 机器学习作业来运行代码。

定义 Azure 机器学习作业

为了在 Azure 机器学习中定义作业,可以创建 YAML 文件。 无论你是想将一个脚本作为命令作业运行,还是想将多个脚本按顺序作为管道来运行。 对于命令和管道作业,你需要创建 YAML 文件,其中详细包含:

  • 要运行的脚本。
  • 每个脚本的输入和输出内容。
  • 将用于运行脚本的计算。
  • 需要安装在计算上以运行脚本的环境。

下面的 YAML 中显示了运行 main.py 脚本时将已注册的数据资产用作输入的命令作业示例:

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
code: src
command: >-
  python main.py 
  --diabetes-csv ${{inputs.diabetes}}
inputs:
  diabetes:
    path: azureml:diabetes-data:1
    mode: ro_mount
environment: azureml:basic-env-scikit@latest
compute: azureml:aml-instance
experiment_name: diabetes-data-example
description: Train a classification model on diabetes data using a registered dataset as input.

在 YAML 文件中,你将找到需要包含的必需详细信息:

  • code 指存储要运行的脚本的本地文件夹。 command 键指定应使用 diabetes-csv 参数的 inputs.diabetes 值来执行 src 文件夹中的 main.py 脚本。
  • 将 Azure 机器学习工作区中已注册的数据资产 diabetes-data 的版本 1 装载到要用作脚本输入的计算中。
  • 计算实例 aml-instance 将用于运行脚本。
  • 在运行脚本之前,将在计算实例上安装最新版本的已注册的自定义 basic-env-scikit 环境。

若要测试作业的 YAML 定义,可以使用 CLI v2 来触发它。

触发 Azure 机器学习作业

每当想要运行 Azure 机器学习作业时,都可以使用 CLI v2。 CLI v2 可以安装在本地设备上,也可以使用 Azure Cloud Shell。

无论是要从本地设备还是使用 Azure Cloud Shell 触发运行,首先都需要安装 Azure 机器学习扩展。

使用以下命令在 Windows 上安装扩展:

az extension add -n ml -y

在为 CLI 安装 Azure 机器学习扩展并获得访问要使用的 Azure 订阅的权限后,可以使用以下命令提交 Azure 机器学习作业:

az ml job create --file job.yml

注意

若要详细了解如何使用 CLI (v2) 管理 Azure 机器学习作业,请转到 az ml 作业参考文档