运行 R 作业以训练模型
本文介绍如何使用 Azure 机器学习 CLI V2 获取改编为在生产环境中运行的 R 脚本,并将其设置为作为 R 作业运行。
注意
尽管本文的标题是指训练模型,但只要符合改编文章中列出的要求,就可以实际运行任何类型的 R 脚本。
必备条件
- 一个 Azure 机器学习工作区。
- 训练作业将使用的已注册数据资产。
- 已安装 Azure CLI 和 ml 扩展。 或者在工作区中使用预安装了 CLI 的计算实例。
- 用于运行训练作业的计算群集或计算实例。
- 计算群集用于运行作业的 R 环境。
创建一个具有此结构的文件夹
为项目创建此文件夹结构:
📁 r-job-azureml
├─ src
│ ├─ azureml_utils.R
│ ├─ r-source.R
├─ job.yml
重要
所有源代码都位于 src
目录中。
准备作业 YAML
Azure 机器学习 CLI v2 具有用于不同操作的各种 YAML 架构。 可使用作业 YAML 架构在属于该项目的 job.yml 文件中提交作业。
需要收集要放入 YAML 的以下特定信息:
- 将用作数据输入的已注册数据资产的名称(及版本):
azureml:<REGISTERED-DATA-ASSET>:<VERSION>
- 你创建的环境的名称(及版本):
azureml:<R-ENVIRONMENT-NAME>:<VERSION>
- 计算群集的名称:
azureml:<COMPUTE-CLUSTER-NAME>
提示
对于需要版本(数据资产、环境)的 Azure 机器学习项目,如果不需要设置特定版本,则可以使用快捷方式 URI azureml:<AZUREML-ASSET>@latest
获取该项目的最新版本。
用于提交作业的示例 YAML 架构
编辑 job.yml 文件,使之包含以下内容。 确保替换显示的值 <IN-BRACKETS-AND-CAPS>
并删除括号。
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
# the Rscript command goes in the command key below. Here you also specify
# which parameters are passed into the R script and can reference the input
# keys and values further below
# Modify any value shown below <IN-BRACKETS-AND-CAPS> (remove the brackets)
command: >
Rscript <NAME-OF-R-SCRIPT>.R
--data_file ${{inputs.datafile}}
--other_input_parameter ${{inputs.other}}
code: src # this is the code directory
inputs:
datafile: # this is a registered data asset
type: uri_file
path: azureml:<REGISTERED-DATA-ASSET>@latest
other: 1 # this is a sample parameter, which is the number 1 (as text)
environment: azureml:<R-ENVIRONMENT-NAME>@latest
compute: azureml:<COMPUTE-CLUSTER-OR-INSTANCE-NAME>
experiment_name: <NAME-OF-EXPERIMENT>
description: <DESCRIPTION>
提交作业
在本节的以下命令中,你可能需要知道:
- Azure 机器学习工作区名称
- 工作区所在的资源组名称
- 工作区所在的订阅
从 Azure 机器学习工作室查找以下值:
- 登录并打开你的工作区。
- 在右上方的 Azure 机器学习工作室工具栏中,选择你的工作区名称。
- 可以从显示的部分复制值。
若要提交作业,请在终端窗口中运行以下命令:
将目录更改为
r-job-azureml
。cd r-job-azureml
登录 Azure。 如果从 Azure 机器学习计算实例执行此操作,请使用:
az login --identity
如果你不在计算实例上,请省略
--identity
并按照提示打开浏览器窗口进行身份验证。确保你拥有最新版本的 CLI 和
ml
扩展:az upgrade
如果你有多个 Azure 订阅,请将活动订阅设置为用于工作区的订阅。 (如果你只能访问单个订阅,则可以跳过此步骤。)将
<SUBSCRIPTION-NAME>
替换为订阅名称。 另请删除括号<>
。az account set --subscription "<SUBSCRIPTION-NAME>"
现在可以使用 CLI 提交作业。 如果你在工作区中的计算实例上执行此操作,则可以将环境变量用于工作区名称和资源组,如以下代码所示。 如果你不在计算实例上,请将这些值替换为工作区名称和资源组。
az ml job create -f job.yml --workspace-name $CI_WORKSPACE --resource-group $CI_RESOURCE_GROUP
提交作业后,可以在工作室中检查状态和结果:
- 登录到 Azure 机器学习工作室。
- 选择工作区(如果它尚未加载)。
- 在左侧导航栏中,选择“作业”。
- 选择用于训练模型的“试验名称”。
- 选择作业的“显示名称”以查看作业的详细信息和项目,包括作业中使用的指标、图像、子作业、输出、日志和代码。
注册模型
最后,训练作业完成后,如果想要部署模型,请注册该模型。 在工作室中从显示作业详细信息的页面开始。
作业完成后,请选择“输出 + 日志”以查看作业的输出。
打开 models 文件夹,验证 crate.bin 和 MLmodel 是否存在。 如果没有,请检查日志以查看是否存在错误。
在顶部工具栏上,选择“+ 注册模型”。
即使检测到 MLflow 模型类型,也不要使用该类型。 将“模型类型”从默认值“MLflow”更改为“未指定的类型”。 将它保留为 MLflow 将导致出现错误。
对于“作业输出”,请选择“模型”,即包含该模型的文件夹。
选择“下一页”。
提供要用于模型的名称。 如果需要,请添加“说明”、“版本”和“标记”。
选择“下一页”。
查看信息。
选择“注册”。
在页面顶部,你将看到模型已注册的确认信息。 确认如下所示:
如果要查看已注册的模型详细信息,请选择“单击此处转到此模型”。
后续步骤
现在,你拥有已注册的模型,请了解如何将 R 模型部署到联机(实时)终结点。