教學課程:使用設計工具部署機器學習模型
在本教學課程的第一部分中,您已定型一個線性迴歸模型來預測汽車價格。 在第二部分中,您將使用 Azure Machine Learning 設計工具部署模型,以供其他人使用。
注意
設計工具支援兩種類型的元件:傳統預建元件 (v1) 和自訂元件 (v2)。 這兩種類型的元件互不相容。
「傳統預建元件」提供主要用於資料處理和傳統機器學習工作 (例如迴歸和分類) 的預建元件。 此類型的元件會繼續受到支援,但不會新增任何新元件。
「自訂元件」可讓您包裝自己的程式碼作為元件。 其支援跨工作區共用元件,以及跨 Machine Learning 工作室、CLI v2 和 SDK v2 介面的無縫製作。
對於新專案,建議您使用與 Azure Machine Learning v2 相容的自訂元件,而且您將持續收到新的更新。
本文適用於傳統預建元件,且與 CLI v2 和 SDK v2 不相容。
在本教學課程中,您已:
- 建立即時推斷管線。
- 建立推斷叢集。
- 部署即時端點。
- 測試即時端點。
必要條件
完成教學課程的第一個部分,了解如何在設計工具中定型和評分機器學習模型。
重要
如果您看不到這份文件中提及的圖形元素,例如工作室或設計工具中的按鈕,可能是您沒有工作區的正確權限層級。 請洽詢您的 Azure 訂用帳戶管理員,以確認您已獲得授與正確的存取層級。 如需詳細資訊,請參閱管理使用者和角色。
建立即時推斷管線
若要部署您的管線,您必須先將訓練管線轉換成即時推斷管線。 此程序會移除定型元件,並新增 Web 服務輸入和輸出以處理要求。
注意
[建立推斷管線] 功能支援定型管線只包含設計工具內建元件,並具有定型模型之類的元件來輸出已定型的模型。
建立即時推斷管線
從側邊導覽面板選取 [管線],然後開啟您建立的管線作業。 在詳細料頁面上,選取管線畫布上方的省略符號 ...,然後選擇 [建立推斷管線]>[即時推斷管線]。
新的管線現在如下所示:
當您選取 [建立推斷管線] 時,會發生若干情況:
- 定型的模型會儲存為元件選擇區中的資料集元件。 您可以在 [我的資料集] 下方找到該項目。
- 定型元件 (例如定型模型和分割資料) 會遭到移除。
- 儲存的定型模型會加回管線中。
- 已新增 Web 服務輸入和 Web 服務輸出元件。 這些元件會顯示使用者資料將在何處進入管線,以及資料會在何處傳回。
注意
根據預設,[Web 服務輸入] 的資料結構描述預期與連線到相同下游連接埠的元件輸出資料相同。 在此範例中,[Web 服務輸入] 和 [汽車價格資料 (原始)] 連線到相同的下游元件,因此 [Web 服務輸入] 的資料結構描述預期與 [汽車價格資料 (原始)] 相同,且目標變數資料行
price
會包含在該結構描述中。 不過,對資料評分時,您不會知道目標變數值。 在此情況下,您可以使用 [選取資料集中的資料行] 元件來移除推斷管線中的目標變數資料行。 請確定移除目標變數資料行之 [選取資料集中的資料行] 的輸出,已連線至與 [Web 服務輸入] 之輸出相同的連接埠。選取 [設定與提交],並使用您在第一部分中使用的相同計算目標和實驗。
如果這是第一項作業,您的管線可能需要 20 分鐘的時間才能完成執行。 預設計算設定的最小節點大小為 0,這表示設計工具必須在閒置之後配置資源。 重複的管線作業花費較少的時間,因為已經配置計算資源。 此外,設計工具會針對每個元件使用快取的結果,以進一步提升效率。
在左窗格中選取 [作業詳細資料],以前往即時推斷管線作業詳細資料。
在作業詳細資料頁面中選取 [部署]。
建立推斷叢集
在出現的對話方塊中,您可以從任何現有的 Azure Kubernetes Service (AKS) 叢集進行選取,以將模型部署至其中。 如果您沒有 AKS 叢集,請使用下列步驟建立一個。
在對話方塊中選取 [計算],以前往 [計算] 頁面。
在導覽功能區中,選取 [Kubernetes 叢集]>[+ 新增]。
在推斷叢集窗格中,設定新的 Kubernetes 服務。
輸入 aks-compute 作為計算名稱。
選取附近的適用區域作為區域。
選取 建立。
注意
建立新的 AKS 服務需要約 15 分鐘。 您可以在 [推斷叢集] 頁面上查看佈建狀態。
部署即時端點
在您的 AKS 服務完成佈建後,請回到即時推斷管線以完成部署。
選取畫布上方的 [部署]。
選取 [部署新的即時端點]。
選取您建立的 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。選取部署。
完成部署之後,通知中心顯示成功通知。 這可能需要幾分鐘的時間。
提示
如果您在 [設定即時端點] 方塊中針對 [計算類型] 選取 [Azure 容器執行個體],您也可以部署至 Azure 容器執行個體。 Azure 容器執行個體用於測試或開發。 針對需要少於 48 GB RAM 的低規模 CPU 型工作負載使用 Azure 容器執行個體。
測試即時端點
部署完成後,您即可移至 [端點] 頁面,以檢視您的即時端點。
在 [端點] 頁面上,選取您部署的端點。
在 [詳細資料] 索引標籤中,您可以查看更多資訊,例如 REST URI、Swagger 定義、狀態和標籤。
在 [取用] 索引標籤中,您可以找到樣本使用量程式碼、安全性金鑰及設定驗證方法。
在 [部署記錄] 索引標籤中,您可以找到即時端點的詳細部署記錄。
若要測試您的端點,請移至 [測試] 索引標籤。您可以這此輸入測試資料,然後選取 [測試] 以確認端點的輸出。
更新即時端點
您可以在設計工具中使用已定型的新模型來更新線上端點。 在線上端點詳細資料頁面上,尋找前一個定型管線作業和推斷管線作業。
您可以在設計工具首頁中找到並修改定型管線草稿。
也可以開啟定型管線作業連結,然後複製到新的管線草稿以繼續編輯。
提交修改後的定型管線之後,前往作業詳細資料頁面。
當作業完成時,以滑鼠右鍵按一下 [定型模型],然後選取 [註冊資料]。
輸入名稱並選取 [檔案] 類型。
成功註冊資料集之後,開啟推斷管線草稿,或將前一個推斷管線作業複製到新的草稿。 在推斷管線草稿中,將顯示為 MD-XXXX 節點 (連線至評分模型元件) 的前一個定型的模型,換成新註冊的資料集。
如果您需要在定型管線中更新資料前置處理部分,而且想要更新到推斷管線中,則處理方式類似於上述步驟。
您只需要將轉換元件的轉換輸出註冊為資料集。
然後,使用已註冊的資料集,手動取代推斷管線中的 TD- 元件。
以新定型的模型或轉換來修改推斷管線之後,提交管線。 當作業完成時,就部署至先前部署的現有線上端點。
限制
由於資料存放區存取限制,如果推斷管線包含 [匯入資料] 或 [匯出資料] 元件,則部署至即時端點時會自動移除這些元件。
如果您在即時推斷管線中具有資料集,且想要將其部署至即時端點,目前此流程僅支援從 Blob 資料存放區註冊的資料集。 如果您想要使用其他類型資料存放區中的資料集,可以使用 [選取資料行] 來與初始資料集連線,並設定選取所有資料行、將 [選取資料行] 的輸出註冊為檔案資料集,然後將即時推斷管線中的初始資料集取代為這個新註冊的資料集。
如果您的推斷圖表包含 [手動輸入資料] 元件,而該元件並未連線至與 [Web 服務輸入] 元件相同的連接埠,則在 HTTP 呼叫處理期間不會執行 [手動輸入資料] 元件。 因應措施是將 [手動輸入資料] 元件的輸出註冊為資料集,然後在推斷管線草稿中,將 [手動輸入資料] 元件取代為已註冊的資料集。
清除資源
重要
您可以使用您所建立的資源,作為其他 Azure Machine Learning 教學課程和操作說明文章的先決條件。
刪除所有內容
如果您不打算使用所建立的任何資源,請刪除整個資源群組,以免產生任何費用。
在 Azure 入口網站中,於視窗左側選取 [資源群組]。
在清單中,選取您所建立的資源群組。
選取 [刪除資源群組]。
刪除資源群組同時會刪除您在設計工具中建立的所有資源。
刪除個別資產
在建立實驗的設計工具中,藉由選取個別資產,再選取 [刪除] 按鈕,即可刪除個別資產。
您在這裡建立的計算目標會在不使用時自動調整為零個節點。 如此可將費用降至最低。 如果您想要刪除計算目標,請採取下列步驟:
您可以選取每個資料集並選取 [取消註冊],從工作區中將資料集取消註冊。
若要刪除資料集,請使用 Azure 入口網站或 Azure 儲存體總管移至儲存體帳戶,並手動刪除這些資產。
相關內容
在本教學課程中,您已了解如何在設計工具中建立、部署及取用機器學習模型。 若要深入了解如何使用設計工具,請參閱下列文章: