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.
Kontextparallelität
Kontextparallelität ist eine Art von Modellparallelität, bei der die Modellaktivierungen entlang der Sequenzdimension fragmentiert werden. Im Gegensatz zu anderen Techniken der SequenzparallelitätLayerNorm und RMSNorm partitionieren, partitioniert die Kontextparallelität die Netzwerkeingänge und alle dazwischenliegenden Aktivierungen entlang der Sequenzdimension.
SMP v2 ist für Kontextparallelität in die Transformer Engine
Transformer-Modelle von Hugging Face, die mit der SMP-Kontextparallelität kompatibel sind
SMP v2 bietet derzeit Unterstützung der Kontextparallelität für die folgenden Transformer-Modelle von Hugging Face.
-
GPT-NeoX
-
Llama 2 und Llama 3
Kontextparallelität konfigurieren
Legen Sie einen ganzzahligen Wert für den context_parallel_degree Parameter fest, der die Anzahl der in Ihrem Cluster gleichmäßig verteilt. GPUs Wenn Sie z. B. eine 8-GPU-Instance haben, verwenden Sie 2, 4 oder 8 für context_parallel_degree. Wir empfehlen, mit einem kleinen context_parallel_degree-Wert zu beginnen und ihn schrittweise zu erhöhen, bis das Modell mit der erforderlichen Länge der Eingabesequenz in den GPU-Speicher passt.
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 Verwendung der SageMaker-Modellparallelitätsbibliothek v2 beschriebenen zweistufigen Prozess. Sie müssen keine Änderungen an Ihrem PyTorch Modell oder Ihrer PyTorch FSDP-Konfigurationcontext_parallel_degree erhalten Sie unter Konfigurationsparameter für die Kernfunktionen von SMP v2.
In Ihrem Trainingsskript
Initialisieren Sie im Rahmen von Schritt 1 Ihr Skript mit torch.sagemaker.init(), um SMP v2 zu aktivieren, und umschließen Sie Ihr Modell mit der torch.sagemaker.transform-API.
Ab SMP v2.6.0 können Sie das Argument cp_comm_type verwenden, um zu bestimmen, welche Implementierung der Kontextparallelität verwendet werden soll. Die SMP-Bibliothek unterstützt derzeit zwei Implementierungen: p2p und all_gather. Die p2p Implementierung verwendet peer-to-peer Send-Receive-Aufrufe zur Akkumulation von Schlüsselwerten während der Aufmerksamkeitsimplementierung und wird asynchron ausgeführt, sodass Überschneidungen mit der Datenverarbeitung möglich sind. all_gatherDie Implementierung verwendet stattdessen die kollektive Operation und wird synchron ausgeführtAllGather.
import torch.sagemaker as tsm tsm.init() from transformers import AutoModelForCausalLM model = AutoModelForCausalLM.from_config(..) model = tsm.transform(model, cp_comm_type="p2p")
SMP-Konfiguration
Fügen Sie im Rahmen von Schritt 2 den folgenden Parameter zum SMP-Konfigurationswörterbuch für den SageMaker PyTorch Schätzer hinzu.
{ ..., # other SMP config parameters "context_parallel_degree": 2 }