分享方式:


使用元件搭配 Azure Machine Learning 工作室來建立和執行機器學習管線

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

在本文中,您將了解如何使用 Azure Machine Learning 工作室和元件來建立及執行機器學習管線。 您可以不使用元件來建立管線,但元件提供更好的彈性和重複使用量。 Azure Machine Learning 管線可在 YAML 中進行定義並從 CLI 執行以 Python 撰寫,或使用拖放 UI 在 Azure Machine Learning 工作室設計工具中撰寫。 本文件著重於 Azure Machine Learning 工作室設計工具 UI。

必要條件

注意

設計工具支援兩種類型的元件:傳統預先建置的元件 (v1) 和自訂元件 (v2)。 這兩種類型的元件互不相容。

傳統預先建置元件主要提供用於資料處理和傳統機器學習工作 (例如迴歸和分類) 的預先建置元件。 傳統預建元件會繼續受到支援,但不會新增任何新的元件。 此外,傳統預建 (v1) 元件部署不支援受控的在線端點 (v2)。

自訂元件可讓您包裝自己的程式碼作為元件。 支援跨工作區共用元件,及跨工作室、CLI v2 和 SDK v2 介面的無縫製作。

對於新專案,我們強烈建議您使用與 AzureML V2 相容的自訂元件,並且會持續接收新的更新。

本文適用於自訂元件。

在您的工作區中註冊元件

若要在 UI 中使用元件建置管線,您必須首先將元件註冊到工作區。 您可以使用 UI、CLI 或 SDK 將元件註冊至工作區,以便可以共用和重複使用工作區內的元件。 註冊的元件支援自動版本設定,因此您可以更新元件,但請確保需要較舊版本的管線仍能繼續運作。

下列範例會使用 UI 來註冊元件,元件來源檔案是在azureml-examples存放庫cli/jobs/pipelines-with-components/basics/1b_e2e_registered_components 目錄中。 您必須先將存放庫複製到本機。

  1. 在 Azure Machine Learning 工作區中,瀏覽至 [元件] 頁面,然後選取 [新增元件] (兩個樣式頁面其中之一隨即出現)。

顯示元件頁面中註冊項目按鈕的螢幕擷取畫面。

顯示元件頁面中註冊項目按鈕與可包括封存的螢幕擷取畫面。

這個範例會在目錄中使用 train.yml。 YAML 檔案會定義名稱、類型、介面,包括此元件的輸入和輸出、程式碼、環境和命令。 此元件 train.py 的程式碼位於 ./train_src 資料夾底下,其描述此元件的執行邏輯。 若要深入了解元件結構描述,請參閱命令元件 YAML 結構描述參考

注意

在 UI 中註冊元件時,元件 YAML 檔案中定義的 code 只能指向 YAML 檔案找到或子資料夾的目前資料夾,這表示您無法將 ../ 指定給 code,因為 UI 無法辨識父代目錄。 additional_includes 只能指向目前或子資料夾。 目前,UI 僅支援以 command 類型註冊元件。

  1. 從 [資料夾] 選取 [上傳],然後選取要上傳的 1b_e2e_registered_components 資料夾。 從下拉式清單中選取 train.yml

顯示從本機資料夾上傳的螢幕擷取畫面。

  1. 選取底部的 [下一步],您可以確認此元件的詳細資料。 確認之後,請選取 [建立] 以完成註冊程序。

  2. 重複上述步驟,使用 score.ymleval.yml 註冊 Score 和 Eval 元件。

  3. 在成功註冊三個元件之後,您可以在工作室 UI 中看到您的元件。

螢幕擷取畫面顯示 [元件] 頁面中的已註冊元件。

使用已註冊的元件建立管線

  1. 在設計工具中建立新的管線。 請記得選取 [自訂] 選項。

    螢幕擷取畫面顯示設計工具首頁中的建立新管線。

  2. 選取自動產生名稱旁的鉛筆圖示,為管線指定有意義的名稱。

    顯示重新命名管線的螢幕擷取畫面。

  3. 在設計工具資產庫中,您可以看到 [資料]、[模型] 和 [元件] 索引標籤。 切換至 [元件] 索引標籤,您可以看到上一節註冊的元件。 如果元件太多,您可以使用元件名稱進行搜尋。

    螢幕擷取畫面顯示資產庫中的已註冊元件。

    尋找在上一節中註冊的 trainscoreeval 元件,然後拖放到畫布上。 根據預設,其會使用元件的預設版本,而且您可以在元件右窗格中將其變更為特定版本。 按兩下元件,即可叫用元件右窗格。

    螢幕擷取畫面顯示變更元件的版本。

    在此範例中,我們將會使用此路徑底下的範例資料。 選取設計工具資產庫中的新增圖示 -> 資料索引標籤、設定 Type = Folder(uri_folder),然後遵循精靈以註冊資料,將資料註冊到工作區。 資料類型必須是 uri_folder,才能與定型元件定義一致。

    顯示新增資料的螢幕擷取畫面。

    然後將資料拖放到畫布中。 現在您的管線外觀應該如以下的螢幕擷取畫面所示。

    顯示管線草稿的螢幕擷取畫面。

  4. 藉由在畫布中拖曳連線來連線資料和元件。

    顯示連接管線的 Gif。

  5. 按兩下一個元件,您會看到可在其中設定元件的右窗格。

    螢幕擷取畫面顯示元件參數設定。

    對於具有基本類型輸入 (例如數字、整數、字串和布林值) 的元件,您可以在 [輸入] 區段底下的元件詳細窗格中變更這類輸入的值。

    您也可以在右窗格中變更輸出設定 (儲存元件輸出的位置) 和執行設定 (要執行此元件的計算目標)。

    現在讓我們將 train 元件的 max_epocs 輸入升階為管線層級輸入。 如此一來,您就可以在提交管線之前,每次將不同的值指派給這個輸入。

    顯示如何將元件輸入升階為管線輸入的螢幕擷取畫面。

注意

自訂元件和設計工具傳統預先建置元件無法一起使用。

提交管線

  1. 選取右上角的 [設定與提交] 以提交管線。

    顯示 [設定] 和 [提交] 按鈕的螢幕擷取畫面。

  2. 接著您會看到逐步精靈,請遵循精靈來提交管線作業。

顯示提交精靈的螢幕擷取畫面。

在 [基本] 步驟中,您可以設定實驗、作業顯示名稱、作業描述等。

在 [輸入與輸出] 步驟中,您可以設定升階為管線層級的輸入/輸出。 在上一個步驟中,我們已將 train 元件的 max_epocs 升階為管線輸入,因此您應該可以在此處看到值並將其指派至 max_epocs

在 [執行階段設定] 中,您可以設定管線的預設資料存放區和預設計算。 這是管線中所有元件的預設資料存放區/計算。 但是請注意,如果您明確為元件設定不同的計算或資料存放區,則系統會遵守元件層級設定。 否則,會使用管線預設值。

[檢閱 + 提交] 步驟是提交之前檢閱所有設定的最後一個步驟。 如果您曾經提交管線,精靈會記住您上次的設定。

提交管線作業之後,頂端會有一則訊息,其中包含作業詳細資料的連結。 您可以選取此連結來檢閱作業詳細資料。

顯示提交訊息的螢幕擷取畫面。

在管線作業中指定身分識別

提交管線作業時,您可以指定身分識別來存取 Run settings 下的資料。 預設身分識別是 AMLToken,這表示不使用任何身分識別,同時我們支援 UserIdentityManaged。 針對 UserIdentity,作業提交者的身分識別是用來存取輸入資料,並將結果寫入輸出資料夾。 如果您指定 Managed,系統將會使用受控識別來存取輸入資料,並將結果寫入輸出資料夾。

顯示如何在管線作業中設定身分識別的螢幕擷取畫面。

下一步