运行 R 作业以训练模型

适用于:Azure CLI ml 扩展 v2(当前版本)

本文介绍如何使用 Azure 机器学习 CLI V2 获取改编为在生产环境中运行的 R 脚本,并将其设置为作为 R 作业运行。

注意

尽管本文的标题是指训练模型,但只要符合改编文章中列出的要求,就可以实际运行任何类型的 R 脚本。

必备条件

创建一个具有此结构的文件夹

为项目创建此文件夹结构:

📁 r-job-azureml
├─ src
│  ├─ azureml_utils.R
│  ├─ r-source.R
├─ job.yml

重要

所有源代码都位于 src 目录中。

  • r-source.R 文件是你改编为在生产环境中运行的 R 脚本。 请确保按照此脚本中的步骤创建并记录模型
  • azureml_utils.R 文件是必需的。 使用此源代码来获取文件的内容。

准备作业 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 机器学习工作室查找以下值:

  1. 登录并打开你的工作区。
  2. 在右上方的 Azure 机器学习工作室工具栏中,选择你的工作区名称。
  3. 可以从显示的部分复制值。

屏幕截图:查找要在 CLI 命令中使用的值。

若要提交作业,请在终端窗口中运行以下命令:

  1. 将目录更改为 r-job-azureml

    cd r-job-azureml
    
  2. 登录 Azure。 如果从 Azure 机器学习计算实例执行此操作,请使用:

    az login --identity
    

    如果你不在计算实例上,请省略 --identity 并按照提示打开浏览器窗口进行身份验证。

  3. 确保你拥有最新版本的 CLI 和 ml 扩展:

    az upgrade
    
  4. 如果你有多个 Azure 订阅,请将活动订阅设置为用于工作区的订阅。 (如果你只能访问单个订阅,则可以跳过此步骤。)将 <SUBSCRIPTION-NAME> 替换为订阅名称。 另请删除括号 <>

    az account set --subscription "<SUBSCRIPTION-NAME>"
    
  5. 现在可以使用 CLI 提交作业。 如果你在工作区中的计算实例上执行此操作,则可以将环境变量用于工作区名称和资源组,如以下代码所示。 如果你不在计算实例上,请将这些值替换为工作区名称和资源组。

    az ml job create -f job.yml  --workspace-name $CI_WORKSPACE --resource-group $CI_RESOURCE_GROUP
    

提交作业后,可以在工作室中检查状态和结果:

  1. 登录到 Azure 机器学习工作室
  2. 选择工作区(如果它尚未加载)。
  3. 在左侧导航栏中,选择“作业”。
  4. 选择用于训练模型的“试验名称”。
  5. 选择作业的“显示名称”以查看作业的详细信息和项目,包括作业中使用的指标、图像、子作业、输出、日志和代码。

注册模型

最后,训练作业完成后,如果想要部署模型,请注册该模型。 在工作室中从显示作业详细信息的页面开始。

  1. 作业完成后,请选择“输出 + 日志”以查看作业的输出。

  2. 打开 models 文件夹,验证 crate.binMLmodel 是否存在。 如果没有,请检查日志以查看是否存在错误。

  3. 在顶部工具栏上,选择“+ 注册模型”。

    屏幕截图显示工作室的“作业”部分,“输出”部分打开。

  4. 即使检测到 MLflow 模型类型,也不要使用该类型。 将“模型类型”从默认值“MLflow”更改为“未指定的类型”。 将它保留为 MLflow 将导致出现错误

  5. 对于“作业输出”,请选择“模型”,即包含该模型的文件夹。

  6. 选择“下一页”。

  7. 提供要用于模型的名称。 如果需要,请添加“说明”、“版本”和“标记”。

  8. 选择“下一页”。

  9. 查看信息。

  10. 选择“注册”。

在页面顶部,你将看到模型已注册的确认信息。 确认如下所示:

屏幕截图显示了成功注册的示例。

如果要查看已注册的模型详细信息,请选择“单击此处转到此模型”。

后续步骤

现在,你拥有已注册的模型,请了解如何将 R 模型部署到联机(实时)终结点