使用 Slurm on 執行分散式訓練工作負載 HyperPod - Amazon SageMaker

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Slurm on 執行分散式訓練工作負載 HyperPod

SageMaker HyperPod 專門用於訓練大型語言模型 (LLM) 和基礎模型 (FM) 的工作負載。這些工作負載通常需要針對 ML 基礎架構和資源使用多種平行處理技術和最佳化作業。使用時 SageMaker HyperPod,您可以使用下列 SageMaker 分散式訓練架構:

在一個上使用 SMDDP SageMaker HyperPod

SMDDP 庫是一個集體通信庫,可提高分佈式數據 parallel 培訓的計算性能。SMDDP 程式庫可搭配下列開放原始碼分散式訓練架構使用:

SMDDP 程式庫提供下列項目,解決主要集體通訊作業的通訊額外負荷。 SageMaker HyperPod

  • 該庫提供了AllGather優化的 AWS. AllGather是分片數據並行培訓中使用的關鍵操作,這是流行庫提供的一種高效內存數據並行性技術。其中包括 SageMaker 模型平行處理原則 (SMP) 程式庫、 DeepSpeed 零備援最佳化處理程式 (ZERO) 和 PyTorch 完全資料平行處理原則 (FSDP)。

  • 程式庫會充分利用 AWS 網路基礎結構和 SageMaker ML 執行個體拓撲來執行最佳化 node-to-node 通訊。

若要執行範例資料 parallel 訓練工作

探索下列使用 SMDDP 程式庫實作資料平行處理技術的分散式訓練範例。

若要在上設定使用 SMDDP 程式庫的環境 SageMaker HyperPod

以下是在上使用 SMDDP 程式庫的訓練環境需求。 SageMaker HyperPod

  • PyTorch 版本 2.0.1 及更高版本

  • 庫達版本 11.8 及更高版本

  • libstdc++執行階段版本大於 3

  • Python v3.10.x 及更高版本

  • ml.p4d.24xlargeml.p4de.24xlarge,SMDDP 程式庫支援的執行個體類型

  • imdsv2在訓練主持人上啟用

視您要執行分散式訓練工作的方式而定,有兩個選項可安裝 SMDDP 程式庫:

  • 使用 SMDDP 二進位檔案的直接安裝。

  • 使用預先安裝 SMDDP 程式庫的 SageMaker Deep Learning Containers (DLC)。

已預先安裝 SMDDP 程式庫的 Docker 映像檔,或 SMDDP 二進位檔案的 URL,列於 SMDDP 程式庫文件的支援架構中。

若要將 SMDDP 程式庫安裝在 DLAMI 上,請執行下列步驟: SageMaker HyperPod
  • pip install --no-cache-dir https://smdataparallel.s3.amazonaws.com/binary/pytorch/<pytorch-version>/cuXYZ/YYYY-MM-DD/smdistributed_dataparallel-X.Y.Z-cp310-cp310-linux_x86_64.whl

    注意

    如果您在 Conda 環境中工作,請確保您 PyTorch使用conda install而不是. pip

    conda install pytorch==X.Y.Z torchvision==X.Y.Z torchaudio==X.Y.Z pytorch-cuda=X.Y.Z -c pytorch -c nvidia
若要在泊塢視窗容器上使用 SMDDP 程式庫
  • SMDDP 程式庫已預先安裝在 SageMaker Deep Learning Containers (DLC) 上。若要尋找 SMDDP 程式庫的 SageMaker 架構 DLC 清單,請參閱 SMDDP 程式庫文件中的支援架構。 PyTorch 您還可以使用自己的 Docker 容器,並安裝了必要的依賴項來使用 SMDDP 庫。若要進一步瞭解如何設定自訂 Docker 容器以使用 SMDDP 程式庫,另請參閱。使用 SageMaker 分佈式數據 parallel 庫創建自己的 Docker 容器

    重要

    若要在 Docker 容器中使用 SMDDP 程式庫,請將目/var/log錄從主機裝載到容器/var/log中。這可以通過在運行容器時添加以下選項來完成。

    docker run <OTHER_OPTIONS> -v /var/log:/var/log ...

若要瞭解如何使用 SMDDP 執行資料 parallel 訓練工作,請參閱。如何使用分散式資料平行程式庫執行 SageMaker分散式訓練工作

在叢集上使用 SMP SageMaker HyperPod

SageMaker 模型平行處理原則 (SMP) 程式庫提供各種state-of-the-art模型平行處理技術,包括:

  • 完全分片資料平行處理

  • 專家並行

  • 具備 FP16/BF16 和 FP8 資料類型的混合式精準訓練

  • 張量並行

該 SMP 庫還與開源框架,如 PyTorch FSDP,NVIDIA 威震天和 NVIDIA 變壓器引擎兼容。

執行範例模型 parallel 訓練工作負載

SageMaker 服務團隊透過 SMP 程式庫,提供實作模型平行處理的訓練工作範例。awsome-distributed-training/3.test_cases/17.SM-modelparallelv2