執行 R 工作來定型模型

適用於:Azure CLI ml 延伸模組 v2 (目前)

本文說明如何採用您調整為在生產環境中執行的 R 指令碼,並使用 Azure Machine Learning CLI V2 將它設定為以 R 工作的形式執行。

注意

雖然本文的標題是指定型模型,但只要符合調整文章中所列的需求,您就能實際執行任何類型的 R 指令碼。

必要條件

使用此結構建立資料夾

為您的專案建立此資料夾結構:

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

重要

全部原始碼都會在 src 目錄中。

準備工作 YAML

Azure Machine Learning CLI v2 針對不同的作業有不同的 YAML 結構描述。 您可以使用作業 YAML 架構,在屬於此專案的job.yml檔案中提交作業。

您需要收集要放入 YAML 的特定資訊片段:

  • 您用來作為資料輸入的已註冊資料資產名稱(含版本): azureml:<REGISTERED-DATA-ASSET>:<VERSION>
  • 您建立的環境名稱 (含版本):azureml:<R-ENVIRONMENT-NAME>:<VERSION>
  • 計算叢集的名稱:azureml:<COMPUTE-CLUSTER-NAME>

提示

針對需要版本 (資料資產、環境) 的 Azure Machine Learning 成品,如果您不需要設定特定版本,您可以使用捷徑 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 Machine Learning 工作區名稱
  • 工作區所在的資源群組名稱
  • 工作區所在的訂用帳戶

Azure Machine Learning 工作室中找到這些值:

  1. 登入並開啟您的工作區。
  2. 在右上方的 Azure Machine Learning 工作室工具列中,選取您的工作區名稱。
  3. 您可以從出現的區段複製值。

螢幕快照:尋找 CLI 命令中要使用的值。

若要提交工作,請在終端機視窗中執行下列命令:

  1. 將目錄變更為 r-job-azureml

    cd r-job-azureml
    
  2. 登入Azure。 如果您要從 Azure Machine Learning 計算執行個體執行此作業,請使用:

    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
    

提交工作之後,您可以在 Studio 中檢查狀態和結果:

  1. 登入 Azure Machine Learning Studio
  2. 如果工作區未載入,請選取您的工作區。
  3. 在左側導覽中,選取 [工作]
  4. 選取您用來定型模型的實驗名稱
  5. 選取工作的顯示名稱,以檢視工作的詳細資料和成品,包括計量、影像、子工作、輸出、記錄和程式碼。

註冊模型

最後,完成定型工作之後,如果您想要部署模型,請註冊模型。 從頁面開始顯示您的工作詳細資料。

  1. 工作完成後,請選取 [輸出 + 記錄] 以檢視工作的輸出。

  2. 開啟 models 資料夾,以確認 crate.binMLmodel 存在。 如果沒有,請檢查記錄以查看是否有錯誤。

  3. 在頂端的工具列上,選取 [+ 註冊模型]

    此螢幕快照顯示已開啟 [輸出] 區段的 Studio 作業區段。

  4. 請勿使用 MLflow 模型類型,即使偵測到它也一樣。 將模型類型從預設 MLflow 變更未指定的類型。 將它保留為 MLflow 會導致錯誤。

  5. 針對 [工作輸出],選取 [模型],即包含模型的資料夾。

  6. 選取 [下一步]。

  7. 提供您想要用於模型的名稱。 如有需要,請新增 [描述]、[版本] 和 [標記]

  8. 選取 [下一步]。

  9. 檢閱資訊。

  10. 選取註冊

在頁面頂端,您會看到確認模型已註冊。 確認看起來如下所示:

顯示成功註冊範例的螢幕快照。

如果您想要檢視已註冊的模型詳細資料,選取 [請按這裡以前往此模型]

下一步

現在您已擁有已註冊的模型,請瞭解如何 將 R 模型部署到線上 (即時) 端點