選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

SageMaker 分散式模型平行處理最佳實務

焦點模式
SageMaker 分散式模型平行處理最佳實務 - Amazon SageMaker AI

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

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

當您使用 SageMaker 模型平行程式庫 v2 (SMP v2) 執行分散式訓練任務時,請使用下列準則。

為分散式訓練設定正確的組態

若要預估並尋找套用 SMP v2 提供之分散式訓練技術的最佳起點,請檢閱下列清單。每個清單項目討論使用 SageMaker 模型平行處理程式庫 v2 的核心功能以及潛在權衡的優勢。

組態提示

本節提供如何決定最佳模型組態的指導方針,以透過全域批次大小需求獲得最佳輸送量。

首先,建議您不論模型的大小為何,都進行下列設定。

  1. 使用您最強大的執行個體類型。

  2. 隨時開啟混合精度,因為它為效能和記憶體減少提供了顯著的優勢。我們建議您使用 ,bfloat16因為它比 更精確float16

  3. 隨時開啟 SageMaker 分散式資料平行處理程式庫 (而非使用 NCCL),如 所示與針對 AWS 基礎設施最佳化的 SMDDP 程式庫相容。其中一個例外是tensor-parallelism-only使用案例 (hybrid_shard_degree = 1tensor_paralle_degree > 1)。

  4. 如果您的模型具有超過約 600 億個參數,我們建議您使用 延遲參數初始化。您也可以使用延遲參數初始化來加速任何模型的初始化。

  5. 我們建議您啟用 啟用檢查點

根據您的模型大小,我們建議您從下列指引開始。

  1. 使用碎片資料平行處理。

    1. 根據您想要放入 GPU 記憶體的批次大小,選擇適當的碎片資料平行程度。一般而言,您應該從最低程度開始,以適應 GPU 記憶體中的模型,同時將網路通訊造成的額外負荷降至最低。如果您看到快取排清正在發生的警告,建議您提高分裂程度。

    2. 如果有的話,world_size請根據最大本機批次大小和所需的全域批次大小來決定。

    3. 您可以嘗試啟用卸載。視案例而定,它可以解決您的記憶體需求,而不必增加分裂程度,這表示通訊更少。

  2. 同時使用 PyTorch FSDP 的碎片資料平行處理和 SMP v2 的張量平行處理,如 中介紹張量平行處理

    1. 在大型叢集上訓練時,單獨使用 FSDP 時,全域批次大小可能會變得太大,導致模型的收斂問題。一般而言,大多數研究工作會將批次大小保持在 400 萬個字符以下。在這種情況下,您可以透過使用 SMP v2 的張量平行處理編寫 PyTorch FSDP 來減少批次大小,以解決問題。

      例如,如果您有 256 個節點且序列長度為 4096,即使每個 GPU 的批次大小為 1,也會導致 8M 字符的全域批次大小。不過,當您使用張量平行處理,且每個張量平行群組的批次大小為 1 時,這會成為每個 GPU 的 1/2 批次大小,轉換為 400 萬個字符。

    2. 使用 8k 等長內容進行訓練時,16k 啟用記憶體可能會變得非常高。FSDP 不會碎片啟用,啟用可能會導致 GPUs 耗盡記憶體。在這種情況下,您可以透過使用 SMP v2 的張量平行處理編寫 PyTorch FSDP 來有效率地訓練。

參考組態

SageMaker 模型平行處理訓練團隊根據實驗提供下列參考點,其中 Llama 2 模型使用 轉換為 SMP 轉換器模型torch.sagemaker.transform,並在序列長度為 4096 的ml.p4d.24xlarge執行個體上進行訓練 (FP16 或 BF16)。

模型 模型大小 (模型參數的數量) 執行個體數量 碎片資料平行程度 張量平行程度 啟用檢查點 啟用卸載 批次大小
Llama 2 7B 1 8 1 TRUE FALSE 4
70B 32 256 1 TRUE FALSE 2
175B 64 128 4 TRUE TRUE 6

您可以從上述組態中推斷,以估算模型組態的 GPU 記憶體使用量。例如,如果您增加 100 億個參數模型的序列長度,或將模型的大小增加到 200 億,則可能需要先降低批次大小。如果模型仍然不符合,請嘗試增加張量平行處理程度。

使用 SageMaker AI 主控台和 Amazon CloudWatch 監控和記錄訓練任務

若要監控 CPU 記憶體使用率、GPU 記憶體使用率和 GPU 使用率等系統層級指標,請使用透過 SageMaker AI 主控台提供的視覺化。

  1. 在左側導覽窗格中,選擇訓練

  2. 選擇 Training jobs (訓練任務)

  3. 在主窗格中,選擇您要查看其更多詳細資訊的訓練任務名稱。

  4. 瀏覽主窗格,並找到監視器區段以查看自動化視覺效果。

  5. 若要查看訓練任務日誌,請選擇監視器區段中的檢視日誌。您可以在 CloudWatch 中存取訓練任務的分散式訓練任務日誌。如果您已啟動多節點分散式訓練,您應該會看到多個日誌串流,其標記格式為 algo-n-1234567890algo-1 日誌串流會追蹤主節點 (第 0 個) 的訓練日誌。

如需詳細資訊,請參閱監控和分析訓練任務的 Amazon CloudWatch 指標

許可

若要使用模型平行處理執行 SageMaker 訓練任務,請確定您在 IAM 角色中擁有正確的許可,例如:

下一個主題:

SMP v2 參考

上一個主題:

範例
隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。