本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
內容平行處理
內容平行處理是一種模型平行處理類型,可沿著序列維度分割模型啟用。與僅分割 LayerNorm
和 的其他序列平行處理RMSNorm
,內容平行處理會沿著序列維度分割網路輸入和所有中繼啟動。
SMP v2 與 Transformer Engine
Hugging Face Transformer 模型與SMP內容平行處理相容
SMP v2 目前為下列 Hugging Face 轉換器模型提供內容平行處理支援。
-
GPT-NeoX
-
Llama 2 和 Llama 3
設定內容平行處理
將 context_parallel_degree parameter
設定為平均除以叢集GPUs中 數目的值。例如,如果您有 8 個GPU執行個體,請針對 使用 2、4 或 8context_parallel_degree
。我們建議從小context_parallel_degree
值開始逐步增加,直到模型符合所需輸入序列長度的GPU記憶體。
下列程式碼片段說明如何將SMP初始化模組新增至torch.sagemaker.init()
訓練指令碼,並針對訓練任務啟動器設定SMP組態字典JSON格式,同時遵循 中介紹的兩步驟程序使用 SageMaker 模型平行處理程式庫 v2。您不需要對 PyTorch 模型或PyTorch FSDPcontext_parallel_degree
參數的詳細資訊,請參閱 SMPv2 核心功能配置參數。
在您的訓練指令碼中
在步驟 1 中,使用 初始化指令碼torch.sagemaker.init()
以啟用 SMP v2,並使用 torch.sagemaker.transform 包裝模型API。
import torch.sagemaker as tsm tsm.init() from transformers import AutoModelForCausalLM model = AutoModelForCausalLM.from_config(..) model = tsm.transform(model)
SMP 組態
在步驟 2 中,將下列參數新增至 SageMaker PyTorch 估算器的SMP組態字典。
{ ..., # other SMP config parameters "context_parallel_degree": 2 }