Azure Machine Learning 中的 Kubernetes 計算目標簡介

適用於:Azure CLI ml 延伸模組 v2 (目前)Python SDK azure-ai-ml v2 (目前)

透過 Azure Machine Learning CLI/Python SDK v2,Azure Machine Learning 引進了新的計算目標 - Kubernetes 計算目標。 您可以輕鬆地啟用現有的 Azure Kubernetes Service (AKS) 叢集或已啟用 Azure Arc 的 Kubernetes (Arc Kubernetes) 叢集,以成為 Azure Machine Learning 中的 Kubenetes 計算目標,並加以使用來對模型進行定型或部署。

說明 Azure 機器學習 如何連線至 Kubernetes 的圖表。

在本文中,您會了解:

  • 運作方式
  • 使用方式情節
  • 建議最佳做法
  • KubernetesCompute 和舊版 AksCompute

運作方式

Azure Machine Learning Kubernetes 計算支援兩種 Kubernetes 叢集:

  • Azure 中的 AKS 叢集。 在 Azure 中使用自我管理 AKS 叢集,您可以取得符合合規性需求的安全性和控制,以及管理小組 ML 工作負載的彈性。
  • Azure 外部的 Arc Kubernetes 叢集。 使用 Arc Kubernetes 叢集,您可以在內部部署、跨多雲端或邊緣的任何基礎結構中定型或部署模型。

在 AKS 或 Arc Kubernetes 叢集上部署簡單的叢集擴充功能時,Azure Machine Learning 中可順暢地支援 Kubernetes 叢集,以執行定型或推斷工作負載。 使用下列簡單步驟,輕鬆地為 Azure Machine Learning 工作負載啟用和使用現有的 Kubernetes 叢集:

  1. 準備 Azure Kubernetes Service叢集Arc Kubernetes 叢集
  2. 部署 Azure Machine Learning 延伸模組
  3. 將 Kubernetes 叢集連結至 Azure Machine Learning 工作區
  4. 使用 CLI v2、SDK v2 和 Studio UI 中的 Kubernetes 計算目標。

IT 作業小組。 IT 作業小組負責前三個步驟:準備 AKS 或 Arc Kubernetes 叢集、部署 Azure Machine Learning 叢集延伸模組,以及將 Kubernetes 叢集連結至 Azure Machine Learning 工作區。 除了這些基本的計算設定步驟,IT 作業小組也會使用熟悉的工具,例如 Azure CLI 或 kubectl,為資料科學小組處理下列工作:

  • 網路和安全性設定,例如輸出 Proxy 伺服器連線或 Azure 防火牆設定、推斷路由器 (azureml-fe) 設定、SSL/TLS 終止和虛擬網路設定。
  • 針對不同的 ML 工作負載案例建立和管理執行個體類型,並取得有效率的計算資源使用率。
  • 針對與 Kubernetes 叢集相關的工作負載問題進行疑難排解。

資料科學小組。 IT 作業小組完成計算設定和計算目標建立之後,資料科學小組就可以探索 Azure Machine Learning 工作區中可用的計算目標和執行個體類型清單。 這些計算資源可用於定型或推斷工作負載。 資料科學會使用其慣用的工具或 API 來指定計算目標名稱和執行個體類型名稱。 例如,這些名稱可以是 Azure Machine Learning CLI v2、Python SDK v2 或 Studio UI。

Kubernetes 使用案例

使用 Arc Kubernetes 叢集,您可以使用 Kubernetes 在任何基礎結構內部部署和跨多雲端建置、定型和部署模型。 這會在雲端設定環境中開啟先前無法使用的一些新模式。 下表提供 Azure Machine Learning Kubernetes 計算所啟用之新使用模式的摘要:

使用模式 資料的位置 動機 基礎結構設定和 Azure Machine Learning 實作
在雲端中定型模型,在內部部署部署模型 雲端 利用雲端計算。 因為彈性計算需求或 GPU 之類的特殊硬體。
模型必須部署在內部部署,因為安全性、合規性或延遲需求
1.雲端中的 Azure 受控計算。
2.客戶自控 Kubernetes 內部部署。
3.混合模式中的完全自動化 MLOps,包括從雲端順暢轉換為內部部署 (反之亦然) 的定型和模型部署步驟。
4.可重複,並已正確追蹤所有資產。 必要時重新定型模型,並在重新定型之後自動更新模型部署。
定型內部部署和雲端模型,並且部署至雲端和內部部署 雲端 想要將內部部署投資與雲端可擴縮性結合的組織。 將雲端和內部部署計算放在單一窗口下。 資料的單一事實來源位於雲端,可以複寫到內部部署 (也就是使用方式的消極或主動)。 雲端計算主要使用量是當內部部署資源無法使用 (使用中、維護) 或沒有特定硬體需求 (GPU) 時。 1.雲端中的 Azure 受控計算。
2.客戶自控 Kubernetes 內部部署。
3.混合模式中的完全自動化 MLOps,包括從雲端順暢轉換為內部部署 (反之亦然) 的定型和模型部署步驟。
4.可重複,並已正確追蹤所有資產。 必要時重新定型模型,並在重新定型之後自動更新模型部署。
在內部部署定型模型、在雲端中部署模型 內部部署 由於資料落地需求,資料必須保留在內部部署。
在雲端中部署模型以進行全域服務存取,或用於規模和輸送量的計算彈性。
1.雲端中的 Azure 受控計算。
2.客戶自控 Kubernetes 內部部署。
3.混合模式中的完全自動化 MLOps,包括從雲端順暢轉換為內部部署 (反之亦然) 的定型和模型部署步驟。
4.可重複,並已正確追蹤所有資產。 必要時重新定型模型,並在重新定型之後自動更新模型部署。
在 Azure 中攜帶您自己的 AKS 雲端 更多的安全性和控制。
所有私人 IP 機器學習服務,以防止資料外流。
1.Azure 虛擬網路後方的 AKS 叢集。
2.在 Azure Machine Learning 工作區及其相關聯資源相同的虛擬網路中建立私人端點。
3.完全自動化 MLOps。
內部部署的完整 ML 生命週期 內部部署 保護敏感性資料或專屬 IP,例如 ML 模型和程式碼/指令碼。 1.內部部署的輸出 Proxy 伺服器連線。
2.Azure ExpressRoute 和 Azure Arc 私人連結至 Azure 資源。
3.客戶自控 Kubernetes 內部部署。
4.完全自動化 MLOps。

限制

Azure Machine Learning 工作負載 (定型和模型推斷) 中的 KubernetesCompute 目標具有下列限制:

  • Azure Machine Learning 中預覽功能的可用性沒有保證。
    • 已識別的限制:Kubernetes 在線端點不支援模型目錄登錄中的模型(包括基礎模型)。

區分 IT 作業小組與資料科學小組的責任。 如上一節所述,管理您自己的 ML 工作負載計算和基礎結構是一項複雜的工作。 最好由 IT 作業小組完成,讓資料科學小組可以專注於 ML 模型,以提升組織效率。

為不同的 ML 工作負載案例建立並管理執行個體類型。 每個 ML 工作負載使用的計算資源量都不同,例如 CPU/GPU 和記憶體。 Azure Machine Learning 會將執行個體類型實作為具有 nodeSelector 屬性和資源要求/限制的 Kubernetes 自訂資源定義 (CRD)。 使用仔細編製的執行個體類型清單,IT 作業可以特定節點上的 ML 工作負載為目標,有效率地管理計算資源使用率。

多個 Azure Machine Learning 工作區共用相同的 Kubernetes 叢集。 Kubernetes 叢集可以多次連結至相同的 Azure Machine Learning 工作區或不同的 Azure Machine Learning 工作區,在一個工作區或多個工作區中建立多個計算目標。 因為許多客戶會圍繞 Azure Machine Learning 工作區組織資料科學專案,所以多個資料科學專案現在可以共用相同的 Kubernetes 叢集。 這可大幅降低 ML 基礎結構管理的額外負荷,並節省 IT 成本。

使用 Kubernetes 命名空間分隔小組/專案工作負載。 將 Kubernetes 叢集附加到 Azure Machine Learning 工作區時,可以為計算目標指定 Kubernetes 命名空間。 計算目標執行的所有工作負載都會放在指定的命名空間下。

KubernetesCompute 和舊版 AksCompute

透過 Azure Machine Learning CLI/Python SDK v1,您可以使用 AksCompute 目標在 AKS 上部署模型。 KubernetesCompute 目標和 AksCompute 目標都支援 AKS 整合,不過是以不同的方式支援該項目。 下表顯示其主要差異:

Capabilities AKS 與 AksCompute (舊版) 整合 AKS 與 KubernetesCompute 整合
CLI/SDK v1
CLI/SDK v2 Yes
訓練
即時推斷 Yes
批次推斷
即時推斷新功能 沒有新功能開發 作用中的藍圖

由於這些主要差異和整體 Azure Machine Learning 發展為使用 SDK/CLI v2,如果您決定使用 AKS 進行模型部署,Azure Machine Learning 建議您使用 Kubernetes 計算目標來部署模型。

其他資源

範例

您可以在 https://github.com/Azure/azureml-examples.git 中找到所有 Azure Machine Learning 範例。

如需任何 Azure Machine Learning 範例,您只需要在 Kubernetes 計算目標中更新計算目標名稱,即可完成。

下一步