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 ist eine Art von Modellparallelität, bei der die Modellaktivierungen entlang der Sequenzdimension aufgeteilt werden. Im Gegensatz zu anderen Techniken der SequenzparallelitätLayerNorm
und RMSNorm
alle dazwischenliegenden Aktivierungen entlang der Sequenzdimension.
SMP v2 ist in Transformer Engine
Hugging Face Transformer-Modelle, die mit der SMP-Kontextparallelität kompatibel sind
SMP v2 bietet derzeit Unterstützung für Kontext-Parallelität für die folgenden Hugging Face Face-Transformatormodelle.
-
GPT-NeoX
-
Llama 2 und Llama 3
Kontext-Parallelität konfigurieren
Legen Sie einen ganzzahligen Wert für den context_parallel_degree
Parameter fest, der die Anzahl der GPUs in Ihrem Cluster gleichmäßig verteilt. Wenn Sie beispielsweise über eine 8-GPU-Instanz verfügen, 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 unter beschriebenen zweistufigen Prozess. Verwenden Sie die SageMaker Modellparallelitätsbibliothek v2 Sie müssen keine Änderungen an Ihrem Modell oder Ihrer FSDP-Konfiguration vornehmen. PyTorch PyTorch context_parallel_degree
erhalten Sie unter Konfigurationsparameter für die Kernfunktion von SMP v2.
In deinem Trainingsskript
Initialisieren Sie im Rahmen von Schritt 1 Ihr Skript mit, um SMP v2 torch.sagemaker.init()
zu aktivieren und Ihr Modell mit der torch.sagemaker.transform API zu verpacken.
Ab SMP v2.6.0 können Sie das Argument verwenden, cp_comm_type
um zu bestimmen, welche Implementierung der Kontextparallelität verwendet werden soll. Die SMP-Bibliothek unterstützt derzeit zwei Implementierungen: und. p2p
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 Rechenleistung möglich sind. all_gather
Die 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
}