Azure 基礎結構上 AI 工作負載的計算建議 (IaaS)
本文提供在 Azure 基礎結構上執行 AI 工作負載的組織 (IaaS) 的計算建議。 慣用的方法是使用 Azure AI 平臺即服務 (PaaS) 解決方案來啟動 AI 採用。 不過,如果您有 Azure GPU 的存取權,請遵循本指南,在 Azure IaaS 上執行 AI 工作負載。
AI 工作負載需要特製化虛擬機(VM)來處理高計算需求和大規模數據處理。 選擇正確的 VM 可優化資源使用,並加速 AI 模型開發和部署。 下表提供建議計算選項的概觀。
AI 階段 | 虛擬機器映像 | 生成式 AI | 非行性 AI(複雜模型) | 非行性 AI (小型模型) |
---|---|---|---|---|
訓練 AI 模型 | 資料科學虛擬機器 | GPU (偏好使用 ND 系列。或者,搭配乙太網路互連的 VM 使用 NC 系列) | GPU (偏好使用 ND 系列。或者,搭配乙太網路互連的 VM 使用 NC 系列) | 記憶體優化 (CPU) |
推斷 AI 模型 | 資料科學虛擬機器 | GPU (NC 或 ND 系列) | GPU (NC 或 ND 系列) | 計算最佳化 (CPU) |
挑選正確的虛擬機映像
選擇適當的虛擬機映像,例如 資料科學虛擬機器,以快速存取適用於 AI 工作負載的預先設定工具。 此選項可節省時間和資源,同時提供有效率 AI 處理所需的軟體
從 資料科學虛擬機器 影像開始。 資料科學虛擬機器 映像提供預先設定的數據科學工具存取權。 這些工具包括 PyTorch、TensorFlow、scikit-learn、Jupyter、Visual Studio Code、Azure CLI 和 PySpark。 搭配 GPU 使用時,映像也包含 Nvidia 驅動程式、CUDA 工具組和 cuDNN。 這些影像可作為基準映像。 如果您需要更多軟體,請在開機時透過腳本加以新增,或內嵌至自定義映像。 它們會與您的協調流程解決方案保持相容性。
視需要尋找替代影像。 如果 資料科學虛擬機器 映射不符合您的需求,請使用 Azure Marketplace 或其他搜尋方法來尋找替代影像。 例如,使用 GPU 時,您可能需要 包含 InfiniBand 驅動程式、NVIDIA 驅動程式、通訊連結庫、MPI 連結庫和監視工具的 Linux 映像 。
挑選虛擬機大小
選取適當的虛擬機大小,與您的 AI 模型複雜度、數據大小和成本限制一致。 比對硬體與定型或推斷需求可發揮最大效率,並防止使用量過低或多載。
縮小虛擬機選項的範圍。 選擇最新的虛擬機 SKU,以獲得最佳定型和推斷時間。 針對定型,請選取支援 RDMA 和 GPU 互連的 SKU,以在 GPU 之間進行高速數據傳輸。 若要推斷,請避免使用 InfiniBand 的 SKU,這是不必要的。 範例包括 ND MI300X v5 系列、 ND H100 v5 系列、 NDm A100 v4 系列和 ND A100 v4 系列。
檢查虛擬機定價。 使用 Linux 和 Windows VM 定價頁面取得一般成本概觀。 如需詳細的估計值,請使用 Azure 定價計算機。
請考慮現成實例。現成實例對於推斷案例具有成本效益,且數據遺失風險最低。 現成實例可藉由以折扣方式利用未使用的數據中心容量來大幅節省成本。 不過,您可以隨時回收此容量,因此現成實例最適合處理中斷的工作負載。 定期檢查點數據,以在收回時將遺失降到最低。 如需詳細資訊,請參閱 在 Azure CycleCloud 中使用現成 VM。
選擇計算協調流程解決方案
計算協調流程解決方案可協助跨虛擬機叢集管理 AI 工作。 即使是簡單的部署,協調器也能協助降低成本,並確保環境可重現。 協調器可協助您確保只使用特定時間所需的計算。 根據您的排程、容器化和調整需求選取協調流程工具,以改善作業和延展性。
針對開放原始碼排程器使用 Azure CycleCloud。 Azure CycleCloud 非常適合開放原始碼排程器,例如 Slurm、Grid 引擎或扭力/PBS。 它提供彈性的叢集管理、可自定義的設定,以及進階排程功能。 叢集中的虛擬機需要設定 AI 工作負載執行。 CycleCloud 和 Batch 的虛擬機是非持續性的。 協調器會在需要時建立和移除 VM,以協助節省成本。 如需詳細資訊,請參閱 適用於 Slum 的 Azure CycleCloud 工作區。
使用 Azure Batch 進行內建排程。 Azure Batch 提供內建排程功能,不需要額外的軟體安裝或管理。 它有消費定價模式,沒有授權費用。 它也支援原生容器化工作。 如需部署最佳做法,請參閱 Azure Batch Accelerator。
使用 Azure Kubernetes Service (AKS) 進行容器調整。 AKS 是一項受控服務,可用來跨叢集部署、調整及管理容器。 它適用於大規模在容器中執行 AI 工作負載。 如需詳細資訊,請參閱 使用 Azure Kubernetes Service 來裝載 GPU 型工作負載。
手動協調作業以進行更簡單的工作。 如果協調流程需求最少,請手動管理 AI 資源。 針對小規模工作負載,請考慮下列步驟:
- 定義您的工作流程。 瞭解您的工作流程端對端,包括相依性和作業順序。 請考慮如何在任何步驟處理失敗。
- 記錄和監視作業。 為您的作業實作明確的記錄和監視架構。
- 驗證必要條件。 請確定您的環境符合所有工作流程需求,包括必要的連結庫和架構。
- 使用版本控制。 使用版本控制來追蹤和管理變更。
- 將工作自動化。 使用腳本來自動化數據前置處理、定型和評估。
考慮容器
容器提供一致且可重現的環境,可有效率地進行調整。 容器可簡化環境之間的轉換,使其對於可調整的 AI 解決方案至關重要。
安裝驅動程式。 確定已安裝必要的驅動程式,以在各種案例中啟用容器功能。 針對叢集組態,通常需要 Pyxis 和 Enroot 之類的工具。
使用 NVIDIA Container Toolkit。 此工具組可在容器內啟用 GPU 資源。 安裝所有必要的驅動程式,例如 CUDA 和 GPU 驅動程式,並使用您慣用的容器運行時間和引擎來執行 AI 工作負載。