共用方式為


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

本教學課程的第一部分中,您已定型一個線性迴歸模型來預測汽車價格。 在第二部分中,您將使用 Azure Machine Learning 設計工具部署模型,以供其他人使用。

注意

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

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

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

對於新專案,建議您使用與 Azure Machine Learning v2 相容的自訂元件,而且您將持續收到新的更新。

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

在本教學課程中,您已:

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

必要條件

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

重要

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

建立即時推斷管線

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

注意

[建立推斷管線] 功能支援定型管線只包含設計工具內建元件,並具有定型模型之類的元件來輸出已定型的模型。

建立即時推斷管線

  1. 從側邊導覽面板選取 [管線],然後開啟您建立的管線作業。 在詳細料頁面上,選取管線畫布上方的省略符號 ...,然後選擇 [建立推斷管線]>[即時推斷管線]

    在管線作業詳細資料頁面中建立推斷管線的螢幕擷取畫面。

    新的管線現在如下所示:

    此螢幕擷取畫面顯示管線做好部署準備後的預期設定。

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

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

    注意

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

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

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

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

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

    此螢幕擷取畫面顯示在作業詳細資料頁面中進行部署。

建立推斷叢集

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

  1. 在對話方塊中選取 [計算],以前往 [計算] 頁面。

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

    此螢幕擷取畫面顯示如何前往 [新增推斷叢集] 窗格。

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

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

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

  6. 選取 建立

    注意

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

部署即時端點

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

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

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

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

    此螢幕擷取畫面顯示如何設定新的即時端點。

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

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

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

    此螢幕擷取畫面顯示部署通知。

提示

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

測試即時端點

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

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

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

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

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

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

更新即時端點

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

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

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

    此螢幕擷取畫面顯示端點詳細資料頁面中的定型作業連結。

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

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

    此螢幕擷取畫面顯示將已定型的模型註冊為資料集。

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

    [註冊為資料資產] 的螢幕擷取畫面,其中已選取 [新增資料資產]。

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

    此螢幕擷取畫面顯示如何修改推斷管線。

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

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

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

    此螢幕擷取畫面顯示如何取代轉換元件。

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

    此螢幕擷取畫面顯示如何取代現有的即時端點。

限制

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

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

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

    此螢幕擷取畫面顯示如何修改包含 [手動輸入資料] 元件的推斷管線。

清除資源

重要

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

刪除所有內容

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

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

    在 Azure 入口網站中刪除資源群組

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

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

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

刪除個別資產

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

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

刪除資產

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

取消註冊資料集

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

在本教學課程中,您已了解如何在設計工具中建立、部署及取用機器學習模型。 若要深入了解如何使用設計工具,請參閱下列文章: