Kontext-Parallelität - 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.

Kontext-Parallelität

Kontextparallelität ist eine Art von Modellparallelität, bei der die Modellaktivierungen entlang der Sequenzdimension aufgeteilt werden. Im Gegensatz zu anderen Techniken der Sequenzparallelität, die nur das UND partitionieren, partitioniert die Kontextparallelität die Netzwerkeingänge LayerNorm und RMSNorm alle dazwischenliegenden Aktivierungen entlang der Sequenzdimension.

SMPv2 ist in die Transformer Engine integriert, um Kontextparallelität zu gewährleisten, und kann in Verbindung mit und verwendet werden. PyTorch FSDP SMP Tensor-Parallelität Sie können alle drei Parallelitäten gleichzeitig für das Modelltraining aktivieren. Kontext-Parallelität ist vorteilhaft für Trainingsmodelle mit großen Aktivierungsgrößen und langen Sequenzlängen. Sie beschleunigt die Berechnung von Aufmerksamkeitswerten und Aufmerksamkeitsergebnissen, da jedes Gerät nur einen Teil der Werte und Ergebnisse entlang der Sequenzdimension berechnen kann. Die Tensorparallelität beschleunigt zwar auch die Berechnung durch Partitionierung entlang der verborgenen Dimension, doch der Vorteil der Kontextparallelität ist größer, da die Rechenanforderungen quadratisch mit der Sequenzdimension steigen.

Hugging Face Transformer-Modelle, die mit Kontext-Parallelität kompatibel SMP sind

SMPv2 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

Stellen Sie context_parallel_degree parameter für einen Wert ein, der die Anzahl der GPUs in Ihrem Cluster gleichmäßig verteilt. Wenn Sie beispielsweise eine GPU 8-Instanz haben, verwenden Sie 2, 4 oder 8 fürcontext_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 Schulungsskript 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 PyTorch Konfiguration vornehmen. PyTorch FSDP Weitere Informationen zum Parameter context_parallel_degree erhalten Sie unter SMPKonfigurationsparameter der v2-Kernfunktion.

In deinem Trainingsskript

Initialisieren Sie im Rahmen von Schritt 1 Ihr Skript mit, um SMP v2 torch.sagemaker.init() zu aktivieren, und umschließen Sie Ihr Modell mit dem torch.sagemaker.transformAPI.

import torch.sagemaker as tsm tsm.init() from transformers import AutoModelForCausalLM model = AutoModelForCausalLM.from_config(..) model = tsm.transform(model)

SMPKonfiguration

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 }