執行 R 工作來定型模型
本文說明如何採用您調整為在生產環境中執行的 R 指令碼,並使用 Azure Machine Learning CLI V2 將它設定為以 R 工作的形式執行。
注意
雖然本文的標題是指定型模型,但只要符合調整文章中所列的需求,您就能實際執行任何類型的 R 指令碼。
必要條件
- Azure Machine Learning 工作區。
- 訓練工作會使用的已註冊資料資產。
- 已安裝的 Azure CLI 和 ml 延伸模組。 或者,在工作區中使用計算執行個體,此執行個體已預先安裝 CLI。
- 要執行定型工作的計算叢集或計算執行個體。
- 計算叢集用來執行工作的 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 工作室中找到這些值:
- 登入並開啟您的工作區。
- 在右上方的 Azure Machine Learning 工作室工具列中,選取您的工作區名稱。
- 您可以從出現的區段複製值。
若要提交工作,請在終端機視窗中執行下列命令:
將目錄變更為
r-job-azureml
。cd r-job-azureml
登入Azure。 如果您要從 Azure Machine Learning 計算執行個體執行此作業,請使用:
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
提交工作之後,您可以在 Studio 中檢查狀態和結果:
- 登入 Azure Machine Learning Studio。
- 如果工作區未載入,請選取您的工作區。
- 在左側導覽中,選取 [工作]。
- 選取您用來定型模型的實驗名稱。
- 選取工作的顯示名稱,以檢視工作的詳細資料和成品,包括計量、影像、子工作、輸出、記錄和程式碼。
註冊模型
最後,完成定型工作之後,如果您想要部署模型,請註冊模型。 從頁面開始顯示您的工作詳細資料。
工作完成後,請選取 [輸出 + 記錄] 以檢視工作的輸出。
開啟 models 資料夾,以確認 crate.bin 和 MLmodel 存在。 如果沒有,請檢查記錄以查看是否有錯誤。
在頂端的工具列上,選取 [+ 註冊模型]。
請勿使用 MLflow 模型類型,即使偵測到它也一樣。 將模型類型從預設 MLflow 變更為未指定的類型。 將它保留為 MLflow 將會導致錯誤。
針對 [工作輸出],選取 [模型],即包含模型的資料夾。
選取 [下一步]。
提供您想要用於模型的名稱。 如有需要,請新增 [描述]、[版本] 和 [標記]。
選取 [下一步]。
檢閱資訊。
選取註冊。
在頁面頂端,您會看到確認模型已註冊。 確認看起來如下所示:
如果您想要檢視已註冊的模型詳細資料,選取 [請按這裡以前往此模型]。
下一步
現在您已擁有已註冊的模型,請瞭解如何 將 R 模型部署到線上 (即時) 端點。