本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
啟用卸載
當開啟啟用檢查點與管道平行處理,且微批次數量大於一時,啟用卸載是可進一步減少記憶體使用量的附加功能。啟動卸載非同步移動對應於目前未在中執行的微批次的檢查點啟動。CPU在GPU需要微批次向後傳遞的激活之前,此功能將卸載的激活從. CPU
注意
此功能適用於 PyTorch SageMaker 模型平行程式庫 v1.6.0 及更新版本。
如何使用啟用卸載
當微批次數量大於 1,且已開啟啟用檢查點時,使用啟用卸載以減少記憶體使用量 (請參閱啟用檢查點)。當未使用啟用檢查點時,啟用卸載不具任何效果。當僅搭配單一微批次使用時,此作法不會節省記憶體。
若要使用啟用卸載,請在 modelparallel
配置設定 "offload_activations": True
。
啟動卸載會將nn.Sequential
模組中的檢查點啟動以非同步方式移動。CPUPCIe連結上的資料傳輸與GPU計算重疊。在運算特定檢查點層的向前傳遞之後,卸載會立即發生。在特定微批次的向後傳遞需要它們之前GPU不久,激活被加載回。的 CPU-GPU 轉移與計算相似重疊。
若要調整將啟動載入回到的早期程度GPU,您可以使用組態參數 "activation_loading_horizon"
(預設值設定為 4,必須int
大於 0)。較大的啟動載入時間會導致啟動重新載入到GPU先前的版本。如果時間太大,可能減少啟用卸載所造成的節省記憶體影響。如果時間太小,則可能無法及時載入啟用,進而減少重疊並降低效能。
提示
對於具超過 1000 億個參數的大型模型,啟用卸載很有幫助。
設定 SageMaker PyTorch 估算器
mpi_options = { "enabled" : True, "processes_per_host" : 8, # 8 processes "custom_mpi_options" : "--mca btl_vader_single_copy_mechanism none " } smp_options = { "enabled":True, "parameters": { "microbatches": 4, "pipeline_parallel_degree": 2, # alias for "partitions" "placement_strategy": "cluster", "tensor_parallel_degree": 2, # tp over 2 devices "ddp": True, "offload_activations": True, "activation_loading_horizon": 4 # optional. default is 4. } }