Parallelität hybrider Sharded Data - Amazon SageMaker

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 FSDP FULL_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 lineare Skalierung des Trainings mit gigantischen Modellen auf for beschrieben. AWS PyTorch FSDP

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 FSDP Weitere Informationen zum Parameter hybrid_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 = ...