使用 Azure Machine Learning 管理 MLOps 模型
適用於:Azure CLI ml 延伸模組 v2 (目前)Python SDK azure-ai-ml v2 (目前)
本文會說明 Azure Machine Learning 如何使用機器學習作業 (MLOps) 來管理模型的生命週期。 套用 MLOps 做法可以提高機器學習解決方案的品質與一致性。
MLOps是以 DevOps 原則和做法為基礎,可提升工作流程的效率,例如持續整合、持續部署和持續傳遞。 將這些原則套用至機器學習生命週期會導致:
- 更快速地實驗和模型開發。
- 更快速地將模型部署到生產環境。
- 更好的品質保證和端對端譜系追蹤。
MLOps 功能
MLOps 為機器學習程序提供下列功能:
- 建立可重現的機器學習管線為資料準備、定型和評分流程定義可重複且可重複使用的步驟。
- 建立可重複使用的軟體環境,以定型和部署模型。
- 隨時隨地註冊、封裝和部署模型,並追蹤使用模型所需的相關聯中繼資料。
- 機器學習生命週期治理的記錄譜系資料,例如發佈模型的人員、變更的原因,以及在生產環境中部署或使用模型的時間。
- 針對機器學習生命週期事件發出通知和警示,例如實驗完成、模型註冊、模型部署和資料漂移偵測。
- 藉由比較模型輸入、探索模型特定計量,以及檢視機器學習基礎結構上的監視和警示,來監視作業和機器學習相關的問題。
- 使用機器學習管線和 Azure Pipelines,自動化端對端機器學習生命週期,以持續測試、更新及推出新的機器學習模型。
如需 MLOps 的詳細資訊,請參閱機器學習作業。
可重現的機器學習管線
使用 Azure Machine Learning 管線,將模型定型程序中的所有步驟拼接在一起。 機器學習管線步驟可以包含資料準備、特徵擷取、超參數微調和模型評估。
在 Azure Machine Learning 工作室設計工具中,您可以複製管線來逐一查看其設計,而不會遺失舊版本。 若要在設計工具中隨時複製管線,選取頂端功能表列中的 [複製]。
如需有關 Azure Machine Learning 管線的詳細資訊,請參閱機器學習和管線。
可重複使用的軟體環境
Azure Machine Learning 環境確保您不需要進行手動軟體設定就重現組建。 環境可以追蹤和重現專案的 pip 和 conda 軟體相依性。
您可以使用模型定型和部署的環境。 如需關於環境的詳細資訊,請參閱 Azure Machine Learning 環境。
模型註冊、封裝和部署
Azure Machine Learning 可以從任何地方使用 MLOps 來註冊、封裝和部署模型。
註冊和追蹤模型
模型註冊會在 Azure 雲端的 Azure Machine Learning 工作區中儲存模型並設定其版本。 此模型登錄可讓組織和追蹤您定型的模型變得容易。
已註冊的模型是組成模型的一或多個檔案所在的邏輯容器。 例如,如果您的模型儲存在多個檔案中,您可以將檔案註冊為 Azure Machine Learning 工作區中的單一模型。 註冊之後,您就可以下載或部署已註冊的模型,並接收所有元件檔案。
您也可以註冊在 Azure Machine Learning 外部定型的模型。 Azure Machine Learning 支援可使用 Python 3.5.2 或更高版本載入的任何模型。
您可以依名稱和版本來識別已註冊的模型。 每次註冊與現有模型名稱相同的模型時,登錄都會遞加版本號碼。
您可以在註冊期間提供中繼資料標籤,並在搜尋模型時使用這些標籤。
重要
您無法刪除正在作用中部署中使用的已註冊模型。
如需如何在 Azure Machine Learning 中使用模型的詳細資訊,請參閱在 Azure Machine Learning 中使用模型。
封裝和偵錯模型
若要將模型部署到生產環境,您必須先將模型封裝到 Docker 映像中。 在大部分情況下,會在部署期間自動在背景中建立映像。 但是,您可以手動指定映像。
先部署至本機開發環境很有用,因為您可以在部署至雲端之前,進行疑難排解和偵錯。 這種做法可協助您避免在部署至 Azure Machine Learning 時發生問題。 如需如何解決常見部署問題的詳細資訊,請參閱如何針對線上端點進行疑難排解。
轉換和最佳化模型
您可以將模型轉換成 Open Neural Network Exchange (ONNX),以嘗試改善效能。 一般而言,轉換成 ONNX 可以帶來兩倍的效能提升。
如需有關 ONNX 與 Azure Machine Learning 的更多資訊,請參閱建立和加速機器學習模型。
將模型部署為端點
您可以將已定型的機器學習模型部署在本機或雲端中做為端點。 部署會使用 CPU 和 GPU 來進行推斷。
將模型部署為端點時,您必須提供下列項目:
- 用來對提交給服務或裝置的資料進行評分的模型。
- 輸入腳本,也稱為 評分腳本,可接受要求、使用模型來評分資料,並傳回回應。
- 描述模型和輸入腳本所需的 pip 和 Conda 相依性的環境。
- 模型和輸入腳本所需的任何其他資產,例如文字和資料。
重要
當您部署 MLflow 模型時,您不需要為部署提供輸入腳本或環境。 如需部署 MLflow 模型的詳細資訊,請參閱部署 MLflow 模型的指導方針。
您也可以提供目標部署平台的設定,例如虛擬機器 (VM) 系列類型、可用的記憶體和核心數目。 Azure Machine Learning 建立映像時,也會新增其所需的元件,例如執行 Web 服務所需的資產。
批次端點的批次評分
可透過批次端點支援批次評分。 如需批次評分的詳細資訊,請參閱批次端點。
使用線上端點進行即時評分
您可以使用模型搭配線上端點進行即時評分。 線上端點的計算目標可以是本機開發環境、受控線上端點或 Azure Kubernetes Service (AKS)。
將模型部署為線上端點時,您必須提供下列資訊:
- 模型或模型的集成。
- 例如,使用模型所需的相依性,即接受要求並叫用模型和 conda 相依性的腳本。
- 描述部署模型的方式和位置的部署設定。
如需部署以進行即時評分的詳細資訊,請參閱部署線上端點。
線上端點的受控制推出
部署至線上端點時,您可以使用受控推出來啟用下列案例:
- 為部署建立多個版本的端點。
- 透過將流量路由傳送至端點內的不同部署,來執行 A/B 測試。
- 透過更新端點設定中的流量百分比,在端點部署之間切換。
如需使用受控制推出部署的詳細資訊,請參閱針對用於即時推斷的新部署執行安全推出。
機器學習生命週期治理的中繼資料
Azure Machine Learning 可讓您使用中繼資料,追蹤所有機器學習資產的端對端稽核線索。 例如:
- Azure Machine Learning 資料資產可協助您對資料進行追蹤、剖析和版本設定。
- 模型可解譯性可讓您說明模型、符合法規合規性,以及了解模型如何在指定的輸入下抵達結果。
- Azure Machine Learning [作業記錄] 會儲存用來定型模型的程式碼、資料和計算的快照集。
- Azure Machine Learning 模型登錄會擷取與您模型相關聯的所有中繼資料。 例如,將模型定型的實驗、部署模型的位置,以及模型部署狀況是否良好。
- 與 Azure 整合可讓您在機器學習生命週期中對事件採取行動,例如模型註冊、部署、資料漂移和定型作業事件。
系統會自動擷取模型和資料資產的部分資訊,您也可以使用「標籤」來新增其他資訊。 當您在工作區中尋找已註冊的模型和資料資產時,可以使用標籤做為篩選條件。
注意
當您使用 Azure Machine Learning 工作室 [模型] 頁面上 [篩選依據:] 選項中的 [標籤] 時,請務必使用 TagName=TagValue
(不含空格) 而非 TagName : TagValue
。
機器學習生命週期事件通知和警示
Azure Machine Learning 會將重要事件發佈至 Azure 事件格線,其可用來通知機器學習生命週期中的事件,並將其自動化。 如需如何根據 Azure Machine Learning 事件設定事件驅動程序的詳細資訊,請參閱自訂 CI/CD 和事件驅動工作流程。
將機器學習生命週期自動化
您可以使用 Git 和 Azure Pipelines,來建立可定型機器學習模型的持續整合流程。 在一般案例中,當資料科學家將變更簽入專案的 Git 存放庫時,Azure Pipeline 會開始定型作業。
您可以檢查作業結果,以查看定型模型的效能特性。 您也可以建立將模型部署為 web 服務的管線。
Machine Learning 延伸模組 (英文) 可讓您更輕鬆地使用 Azure Pipelines。 延伸模組會提供 Azure Pipelines 的下列增強功能:
- 在定義服務連線時啟用 Azure Machine Learning 工作區選取項目。
- 允許在定型管線中建立定型模型,以觸發 Azure Pipelines 中的部署。
如需有關搭配 Azure Machine Learning 使用 Azure Pipelines 的詳細資訊,請參閱搭配 Azure Machine Learning 使用 Azure Pipelines。
分析
Microsoft Power BI 支援使用機器學習模型來進行資料分析。 如需詳細資訊,請參閱 AI 與資料流程。