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