View a markdown version of this page

Parallelität hybrider fragmentierter Daten - Amazon SageMaker KI

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 fragmentierter Daten

Parallelität fragmentierter Daten ist eine verteilte Trainingstechnik, die Speicher spart und den Zustand eines Modells (Modellparameter, Steigungen und Optimierer-Zustände) auf mehrere Geräte aufteilt. Auf diese Weise können Sie mithilfe des freigewordenen GPU-Speichers ein größeres Modell aufnehmen oder die Batchgröße erhöhen. Die SMP-Bibliothek bietet die Möglichkeit, Sharded Data Parallelism mit Fully Sharded Data Parallel (FSDP) auszuführen. PyTorch PyTorch FSDP verwendet standardmäßig Shards für die gesamte Gruppe der verwendeten GPUs. In SMP v2 bietet die Bibliothek diese Shard-Datenparallelität zusätzlich zu PyTorch FSDP an, indem sie PyTorch Hybrid Sharding (HYBRID_SHARD) erweitert, eine der von FSDP bereitgestellten Sharding-Strategien:,,. PyTorch FULL_SHARD SHARD_GRAD_OP HYBRID_SHARD _HYBRID_SHARD_ZERO2 Die Erweiterung von Hybrid-Sharding auf diese Weise hilft bei der Implementierung von skalierbarem Sharding, wie im Blog Scaling of Gigantic-Model Training on for FSDP beschrieben. Near-linear AWS PyTorch

Die SMP-Bibliothek macht sie einfach zu verwenden HYBRID_SHARD und für eine beliebige konfigurierbare Anzahl von GPUs _HYBRID_SHARD_ZERO2 verfügbar. Sie erweitert das native PyTorch FSDP, das Sharding auf einen einzelnen Knoten () oder alle GPUs () unterstützt. HYBRID_SHARD FULL_SHARD PyTorch FSDP-Aufrufe können unverändert bleiben, und Sie müssen das hybrid_shard_degree Argument nur zur SMP-Konfiguration hinzufügen, wie im folgenden Codebeispiel gezeigt. Sie müssen den Wert des sharding_strategy Arguments im PyTorch FSDP-Wrapper für Ihr Modell nicht ändern. PyTorch Sie können 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 Verwenden Sie die SageMaker Modellparallelitätsbibliothek v2 beschriebenen zweistufigen Prozess. Sie müssen keine Änderungen an Ihrem PyTorch Modell oder Ihrer PyTorch FSDP-Konfiguration vornehmen. Weitere Informationen zum Parameter hybrid_shard_degree erhalten Sie unter Konfigurationsparameter für die Kernfunktionen von SMP v2.

SMP-Konfigurationswö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 = ...