教學課程:設計工具 - 部署機器學習模型

使用設計工具來部署機器學習模型,以預測汽車的價格。 本教學課程是兩部分系列的第二部分。

注意

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

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

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

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

本文適用於傳統預先建置元件,且與 CLI v2 和 SDK v2 不相容。

教學課程的第一部分中,您已針對汽車價格定型線性迴歸。 在第二部分中,您會部署模型,讓其他人有機會使用。 在本教學課程中,您已:

  • 建立即時推斷管線。
  • 建立推斷叢集。
  • 部署即時端點。
  • 測試即時端點。

必要條件

完成教學課程的第一個部分,了解如何在設計工具中定型和評分機器學習模型。

重要

如果您看不到這份文件中提及的圖形元素,例如工作室或設計工具中的按鈕,可能是您沒有工作區的正確權限層級。 請洽詢您的 Azure 訂用帳戶管理員,以確認您已獲得授與正確的存取層級。 如需詳細資訊,請參閱管理使用者和角色

建立即時推斷管線

若要部署您的管線,您必須先將訓練管線轉換成即時推斷管線。 此程序會移除定型元件,並新增 Web 服務輸入和輸出以處理要求。

注意

建立推斷管道所支援的定型管道必須僅含設計工具內建元件,還必須具定型模型之類元件來輸出已定型模型。

建立即時推斷管線

  1. 在管線作業詳細料頁面上,在管線畫布上方選取 [建立推斷管線]>[即時推斷管線]

    Screenshot of create inference pipeline in pipeline job detail page.

    新的管線現在如下所示:

    Screenshot showing the expected configuration of the pipeline after preparing it for deployment.

    當您選取 [建立推斷管線] 時,會發生若干情況:

    • 定型的模型會儲存為元件選擇區中的資料集元件。 您可以在 [我的資料集] 下方找到該項目。
    • 定型元件 (例如定型模型分割資料) 會遭到移除。
    • 儲存的定型模型會加回管線中。
    • 已新增 Web 服務輸入Web 服務輸出元件。 這些元件會顯示使用者資料將在何處進入管線,以及資料會在何處傳回。

    注意

    依預設,Web 服務輸入會預期與元件輸出相同的資料結構描述,此資料會連線到與其相同的下游連接埠。 在此範例中,Web 服務輸出汽車價格資料 (原始) 連線至相同的下游元件,因此,Web 服務輸入預期與汽車價格資料 (原始)相同的資料結構描述,而目標變數資料行 price 也包含在該結構描述中。 然而,對資料評分時,您不會知道目標變數值。 在這種情況下,您可以使用選取資料集中的資料行元件,來移除推斷管線中的目標變數資料行。 請確定移除目標變數資料行之 [選取資料集中的資料行] 的輸出,已連線至與 [Web 服務輸入] 之輸出相同的連接埠。

  2. 選取 [提交],並使用您在第一部分中使用的相同計算目標和實驗。

    如果這是第一項作業,您的管線可能需要 20 分鐘的時間才能完成執行。 預設計算設定的最小節點大小為 0,這表示設計工具必須在閒置之後配置資源。 重複的管線作業花費較少的時間,因為已經配置計算資源。 此外,設計工具會針對每個元件使用快取的結果,以進一步提升效率。

  3. 在左窗格中選取 [作業詳細資料] 連結,以移至即時推斷管線作業詳細資料。

  4. 在作業詳細資料頁面中選取 [部署]

    Screenshot showing deploying in job detail page.

建立推斷叢集

在出現的對話方塊中,您可以從任何現有的 Azure Kubernetes Service (AKS) 叢集進行選取,以將模型部署至其中。 如果您沒有 AKS 叢集,請使用下列步驟建立一個。

  1. 在出現的對話方塊中選取 [計算],以移至 [計算] 頁面。

  2. 在導覽功能區中,選取 [推斷叢集]>[+ 新增]

    Screenshot showing how to get to the new inference cluster pane.

  3. 在推斷叢集窗格中,設定新的 Kubernetes 服務。

  4. 輸入 aks-compute 作為計算名稱

  5. 選取附近的適用區域作為區域

  6. 選取 建立

    注意

    建立新的 AKS 服務需要約 15 分鐘。 您可以在 [推斷叢集] 頁面上查看佈建狀態。

部署即時端點

在您的 AKS 服務完成佈建後,請回到即時推斷管線以完成部署。

  1. 選取畫布上方的 [部署]

  2. 選取 [部署新的即時端點]

  3. 選取您建立的 AKS 叢集。

    Screenshot showing how to set up a new real-time endpoint.

    您也可以為即時端點變更 [進階] 設定。

    進階設定 描述
    啟用 Application Insights 診斷及資料收集 是否啟用 Azure Application Insights 以收集部署端點的資料。
    預設:false。
    評分逾時 對 Web 服務的呼叫評分時規定的逾時 (毫秒)。
    預設:60000。
    已啟用自動調整規模 是否對 Web 服務啟用自動調整。
    預設:true。
    最小複本 自動調整此 Web 服務時要使用的容器數目下限。
    預設:1。
    最大複本 自動調整此 Web 服務時,要使用的容器數目上限。
    預設:10。
    目標使用率 自動調整器應嘗試為此 Web 服務維持的目標使用率 (以百分比為單位,最高 100)。
    預設:70。
    重新整理間隔 自動調整器嘗試調整此 Web 服務的頻率 (秒)。
    預設:1。
    CPU 保留容量 要為此 Web 服務配置的 CPU 核心數目。
    預設:0.1。
    記憶體保留容量 要為此 Web 服務配置的記憶體 (GB) 數量。
    預設:0.5。
  4. 選取部署

    完成部署之後,通知中心顯示成功通知。 這可能需要幾分鐘的時間。

    Screenshot showing deployment notification.

提示

如果您在 [即時端點設定] 方塊中選取 [計算類型]Azure 容器執行個體,您也可以部署 AZURE 容器執行個體 (ACI)。 Azure 容器執行個體用於測試或開發。 將 ACI 用於需要少於 48 GB RAM 的低規模 CPU 型工作負載。

測試即時端點

部署完成後,您即可移至 [端點] 頁面,以檢視您的即時端點。

  1. 在 [端點] 頁面上,選取您部署的端點。

    在 [詳細資料] 索引標籤中,您可以查看更多資訊,例如 REST URI、Swagger 定義、狀態和標籤。

    在 [取用] 索引標籤中,您可以找到樣本使用量程式碼、安全性金鑰及設定驗證方法。

    在 [部署記錄] 索引標籤中,您可以找到即時端點的詳細部署記錄。

  2. 若要測試您的端點,請移至 [測試] 索引標籤。您可以這此輸入測試資料,然後選取 [測試] 以確認端點的輸出。

更新即時端點

您可以在設計工具中使用已定型的新模型來更新線上端點。 在線上端點詳細資料頁面上,尋找前一個定型管線作業和推斷管線作業。

  1. 您可以在設計工具首頁直接找到並修改定型管線草稿。

    也可以開啟定型管線作業連結,然後複製到新的管線草稿以繼續編輯。

    Screenshot showing training job link in endpoint detail page.

  2. 提交修改後的定型管線之後,前往作業詳細資料頁面。

  3. 當作業完成時,以滑鼠右鍵按一下 [定型模型],然後選取 [註冊資料]

    Screenshot showing register trained model as dataset.

    輸入名稱並選取 [檔案] 類型。

    Screenshot of register as a data asset with new data asset selected.

  4. 成功註冊資料集之後,開啟推斷管線草稿,或將前一個推斷管線作業複製到新的草稿。 在推斷管線草稿中,將顯示為 MD-XXXX 節點 (連線至評分模型元件) 的前一個定型的模型,換成新註冊的資料集。

    Screenshot showing how to modify inference pipeline.

  5. 如果您需要在定型管線中更新資料前置處理部分,而且想要更新到推斷管線中,則處理方式類似於上述步驟。

    您只需要將轉換元件的轉換輸出註冊為資料集。

    然後使用已註冊的資料集,手動取代推斷管線中的 TD- 元件。

    Screenshot showing how to replace transformation component.

  6. 以新定型的模型或轉換來修改推斷管線之後,提交管線。 當作業完成時,就部署至先前部署的現有線上端點。

    Screenshot showing how to replace existing real-time endpoint.

限制

  • 由於資料存放區存取限制,如果推斷管線包含匯入資料匯出資料元件,則部署至即時端點時會自動移除該元件。

  • 如果您在即時推斷管線中具有資料集,且想要將其部署至即時端點,目前此流程僅支援從 Blob 資料存放區註冊的資料集。 如果您想要使用其他類型資料存放區中的資料集,可以使用 [選取資料行] 來與初始資料集連線,並設定選取所有資料行、將 [選取資料行] 的輸出註冊為 [檔案資料集],然後將即時推斷管線中的初始資料集取代為這個新註冊的資料集。

  • 如果您的推斷圖表包含「手動輸入資料」元件,而該元件並未連線至與「Web 服務輸入」元件相同的連接埠,則在 HTTP 呼叫處理期間將不會執行「手動輸入資料」元件。 因應措施是將「手動輸入資料」元件的輸出註冊為資料集,然後在推斷管線草稿中,將「手動輸入資料」元件取代為已註冊的資料集。

    Screenshot showing how to modify inference pipeline containing enter data manually component.

清除資源

重要

您可以使用您所建立的資源,作為其他 Azure Machine Learning 教學課程和操作說明文章的先決條件。

刪除所有內容

如果您不打算使用所建立的任何資源,請刪除整個資源群組,以免產生任何費用。

  1. 在 Azure 入口網站中,於視窗左側選取 [資源群組]

    Delete resource group in the Azure portal

  2. 在清單中,選取您所建立的資源群組。

  3. 選取 [刪除資源群組]

刪除資源群組同時會刪除您在設計工具中建立的所有資源。

刪除個別資產

在建立實驗的設計工具中,藉由選取個別資產,再選取 [刪除] 按鈕,即可刪除個別資產。

您在這裡建立的計算目標會在不使用時自動調整為零個節點。 如此可將費用降至最低。 如果您想要刪除計算目標,請採取下列步驟:

Delete assets

您可以選取每個資料集並選取 [取消註冊],從工作區中將資料集取消註冊。

Unregister dataset

若要刪除資料集,請使用 Azure 入口網站或 Azure 儲存體總管移至儲存體帳戶,並手動刪除這些資產。

下一步

在本教學課程中,您已了解在如何設計工具中建立、部署和使用機器學習模型的關鍵步驟。 若要深入了解您可以如何使用設計工具,請參閱下列連結: