

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
<a name="model-parallel-core-features-v2-context-parallelism"></a>

*Kontextparallelität* ist eine Art von Modellparallelität, bei der die Modellaktivierungen entlang der Sequenzdimension fragmentiert werden. Im Gegensatz zu anderen Techniken der [Sequenzparallelität](https://arxiv.org/abs/2205.05198), die nur die `LayerNorm` 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](https://docs.nvidia.com/deeplearning/transformer-engine/index.html) integriert und kann in Verbindung mit FSDP und SMP verwendet werden. PyTorch [Tensor-Parallelität](model-parallel-core-features-v2-tensor-parallelism.md) Sie können alle drei Parallelitäten gleichzeitig für das Modelltraining aktivieren. Kontextparallelität ist für Trainingsmodelle mit großen Aktivierungsgrößen und langen Sequenzlängen von Vorteil. 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.

## Transformer-Modelle von Hugging Face, die mit der SMP-Kontextparallelität kompatibel sind
<a name="model-parallel-core-features-v2-context-parallelism-supported-models"></a>

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
+ [Mistral 7B](https://huggingface.co/mistralai/Mistral-7B-v0.3)

## Kontextparallelität konfigurieren
<a name="model-parallel-core-features-v2-context-parallelism-configure"></a>

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 [Verwenden Sie die SageMaker Modellparallelitätsbibliothek v2](model-parallel-use-api-v2.md) beschriebenen zweistufigen Prozess. Sie müssen keine Änderungen an Ihrem PyTorch Modell oder Ihrer [PyTorch FSDP-Konfiguration](https://pytorch.org/docs/stable/fsdp.html#module-torch.distributed.fsdp) vornehmen. Weitere Informationen zum Parameter `context_parallel_degree` erhalten Sie unter [Konfigurationsparameter für die Kernfunktionen von SMP v2](distributed-model-parallel-v2-reference.md#distributed-model-parallel-v2-reference-init-config).

### In Ihrem Trainingsskript
<a name="model-parallel-core-features-v2-context-parallelism-configure-in-script"></a>

Initialisieren Sie im Rahmen von [Schritt 1](model-parallel-use-api-v2.md#model-parallel-adapt-pytorch-script-v2) Ihr Skript mit `torch.sagemaker.init()`, um SMP v2 zu aktivieren, und umschließen Sie Ihr Modell mit der [`torch.sagemaker.transform`](distributed-model-parallel-v2-reference.md#model-parallel-v2-torch-sagemaker-reference-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_gather`Die Implementierung verwendet stattdessen die kollektive Operation und wird synchron ausgeführt`AllGather`.

```
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
<a name="model-parallel-core-features-v2-context-parallelism-configure-in-estimator"></a>

Fügen Sie im Rahmen von [Schritt 2](model-parallel-use-api-v2.md#model-parallel-launch-a-training-job-v2) den folgenden Parameter zum SMP-Konfigurationswörterbuch für den SageMaker PyTorch Schätzer hinzu.

```
{   
    ..., # other SMP config parameters
    "context_parallel_degree": 2
}
```