深入瞭解Azure 機器學習的工作原理

微軟技術棧發表於2022-03-17

通過閱讀本文,您將會了解到Azure 機器學習(以下簡稱:Azure 機器學習)的架構和概念,並且深入瞭解這些元件,以及它們如何協同來協助構建、部署和維護機器學習模型的過程。

工作區

機器學習工作區是 Azure 機器學習的 top-level 資源。工作區可集中用於:

  • 管理用於訓練和部署模型的資源,例如計算
  • 儲存使用 Azure 機器學習時建立的資產,包括:環境、實驗、管道、資料集、模型、端點

計算

計算目標是用於執行訓練指令碼或託管服務部署的任何一臺機器或一組機器。您可以使用本地計算機或遠端計算資源作為計算目標。您可以使用計算目標在本地機器上訓練,然後擴充套件到雲端,這個過程中無需更改訓練指令碼。

Azure 機器學習引入了2個為機器學習任務配置的虛擬機器 (VM),它們是完全託管且基於雲的:

  • 計算例項:是一個 VM,其中包括為機器學習安裝的多個工具和環境。計算例項的主要用途是用於您的開發工作站。您無需設定即可開始執行示例 notebook。計算例項也可以用作訓練和推理作業的計算目標。
  • 計算叢集:是具有多節點擴充套件能力的虛擬機器叢集。計算叢集更適合大型作業和生產的計算目標。提交作業時,叢集會自動擴充套件。它用作訓練計算目標或用於開發/測試部署。

資料集和資料儲存

Azure 機器學習資料集使您可以更輕鬆地訪問和處理資料。通過建立資料集,您可以建立對資料來源位置的引用及其後設資料的副本。由於資料保留在其現有位置,因此您不會產生額外的儲存成本,也不會面臨資料來源完整性的風險。資料儲存將連線資訊(例如您的訂閱 ID 和 token 授權)儲存在與工作區關聯的 Key Vault 中,因此您可以安全地訪問您的儲存,而無需在指令碼中對其進行 hard code。

環境

環境是對機器學習模型進行訓練或評分的環境的封裝。環境指定了圍繞訓練和評分指令碼的 Python packages、環境變數和軟體設定。

實驗

實驗是來自指定指令碼的許多執行的分組。它始終屬於工作區。當您提交執行時的時候,需要提供一個實驗名稱。執行資訊儲存在該實驗下。如果您提交實驗時該名稱不存在,則系統會自動建立一個新實驗。點選檢視詳細配置步驟

模型

最簡單的模型是一段接受輸入併產生輸出的程式碼。建立機器學習模型涉及選擇演算法、為其提供資料和調整超引數。訓練是一個生成訓練模型的迭代過程,它封裝了模型在訓練過程中學到的東西。

您可以引入在 Azure 機器學習之外訓練的模型,也可以通過向 Azure 機器學習中的計算目標提交實驗執行來訓練模型。有了模型之後就可以在工作區中註冊模型。
Azure 機器學習與框架無關。您可以使用任何流行的機器學習框架來建立模型,例如 Scikit-learn、XGBoost、PyTorch、TensorFlow 和 Chainer。

部署

將已註冊的模型部署為服務端點需要以下元件:

  • 環境:此環境封裝了執行模型進行推理所需的依賴項
  • 評分:該指令碼接受請求,使用模型對請求進行評分,並返回結果
  • 推理配置:推理配置指定將模型作為服務執行所需的環境、entry script 和其他元件

自動化

▌Azure 機器學習 CLI

Azure 機器學習 CLI 是Azure CLI 的擴充套件,Azure 平臺的跨平臺命令列介面。此擴充套件提供了自動化機器學習活動的命令。

▌機器學習管道

您可以使用機器學習管道來建立和管理將機器學習階段拼接在一起的工作流。例如,一個管道可能包括資料準備、模型訓練、模型部署和推理/評分階段。每個階段可以包含多個步驟,每個步驟都可以在各種計算目標中自動執行。
此外,管道的步驟是可重複用的,如果這些步驟的輸出沒有改變,可以在不重新執行之前步驟的情況下執行。例如,如果資料沒有更改,您可以重新訓練模型而無需重新執行繁瑣的資料準備步驟。有了管道,資料科學家在機器學習工作流的不同環節工作時進行協作。

▌監控和日誌記錄

Azure 機器學習提供以下監控和日誌記錄功能:

  • 對於資料科學家,您可以監控您的實驗並記錄訓練執行的資訊
  • 對於管理員,您可以使用 Azure Monitor 監控有關工作區、相關 Azure 資源以及資源建立和刪除等事件的資訊
  • 對於 DevOps 或 MLOps,您可以監控部署為 Web 服務的模型生成的資訊,識別部署問題並收集提交給服務的資料

更多 Azure 機器學習的工作原理,點選連結閱讀原文章

相關文章