Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Parallelität hybrider Sharded Data
Sharded Data Parallelism ist eine speichersparende verteilte Trainingstechnik, bei der der Status eines Modells (Modellparameter, Gradienten und Optimierungsstatus) auf mehrere Geräte aufgeteilt wird. Auf diese Weise können Sie mithilfe des freigewordenen Speichers ein größeres Modell anpassen oder die Batchgröße erhöhen. GPU Die SMP Bibliothek bietet die Möglichkeit, Sharded Data Parallelität mit PyTorch Fully Sharded Data Parallel () auszuführen. FSDP PyTorch FSDPStandardmäßig werden Shards für den gesamten verwendeten Satz verwendet. GPUs In SMP Version 2 bietet die Bibliothek diese Shard-Datenparallelität zusätzlich PyTorch FSDP durch die Erweiterung von PyTorch Hybrid Sharding (HYBRID_SHARD
), einer der Sharding-Strategien von:,,,. PyTorch FSDPFULL_SHARD
SHARD_GRAD_OP
HYBRID_SHARD
_HYBRID_SHARD_ZERO2
Die Erweiterung des Hybrid-Shardings auf diese Weise hilft bei der Implementierung, scale-aware-sharding wie im Blog Nahezu
Die SMP Bibliothek ermöglicht eine einfache Bedienung HYBRID_SHARD
und _HYBRID_SHARD_ZERO2
ermöglicht eine beliebige konfigurierbare Anzahl von Anwendungen. Sie erweitert das native GPUs PyTorch FSDP System, das Sharding auf einen einzelnen Knoten () oder auf alle () unterstützt. HYBRID_SHARD
GPUs FULL_SHARD
PyTorch FSDPAufrufe können unverändert bleiben, und Sie müssen nur das hybrid_shard_degree
Argument zur SMP Konfiguration hinzufügen, wie im folgenden Codebeispiel gezeigt. Sie müssen den Wert des sharding_strategy
Arguments im PyTorch FSDP Wrapper, der Ihr PyTorch Modell umgibt, nicht ändern. Sie können den Wert ShardingStrategy.HYBRID_SHARD
als Wert übergeben. Alternativ überschreibt die SMP Bibliothek die Strategie im Skript und setzt sie auf, ShardingStrategy.HYBRID_SHARD
wenn Sie für den hybrid_shard_degree
Parameter einen Wert gleich oder größer als 2 angeben.
Die folgenden Codefragmente zeigen, wie Sie das SMP Initialisierungsmodul torch.sagemaker.init()
zu Ihrem Trainingsskript hinzufügen und das SMP Konfigurationswörterbuch im JSON Format für den Trainingsjob-Launcher einrichten. Dabei folgen Sie dem in beschriebenen zweistufigen Prozess. Verwenden Sie die SageMaker Modellparallelitätsbibliothek v2 Sie müssen keine Änderungen an Ihrem Modell oder Ihrer PyTorch Konfiguration vornehmen. PyTorch FSDPhybrid_shard_degree
erhalten Sie unter SMPKonfigurationsparameter der v2-Kernfunktion.
SMPKonfigurationswörterbuch
{ "hybrid_shard_degree": 16 }
Im Trainingsskript
import torch.sagemaker as tsm tsm.init() # Set up a PyTorch model model = ... # Wrap the PyTorch model using the PyTorch FSDP module model = FSDP( model, ... ) # Optimizer needs to be created after FSDP wrapper optimizer = ...