

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.

# Expertenparallelität
<a name="model-parallel-core-features-v2-expert-parallelism"></a>

Ein *Mixture-of-Experts*-Modell (MoE) ist eine Art Transformer-Modell, das einen Ansatz mit *geringer Dichte* verwendet, sodass es leichter zu trainieren ist als das Training mit herkömmlichen Modellen mit hoher Dichte. In der neuronalen Netzwerkarchitektur von MoE wird für jede Eingabe nur eine Teilmenge der Modellkomponenten, die als *Experten* bezeichnet werden, verwendet. Dieser Ansatz bietet mehrere Vorteile, darunter effizienteres Training und schnellere Inferenz, selbst bei einer größeren Modellgröße. Mit anderen Worten: Mit dem gleichen Budget für das Training eines Modells mit hoher Dichte können Sie ein größeres Modell oder einen größeren Datensatz einfügen, wenn Sie MoE verwenden.

Ein MoE-Modell besteht aus mehreren *Experten*, die jeweils aus einem neuronalen Netzwerk bestehen, in der Regel einem Feed-Forward-Netzwerk (FFN). Ein Gate-Netzwerk, das als *Router* bezeichnet wird, bestimmt, welche Token an welchen Experten gesendet werden. Diese Experten sind auf die Verarbeitung bestimmter Aspekte der Eingabedaten spezialisiert, sodass das Modell schneller trainiert werden kann, die Datenverarbeitungskosten reduziert werden und gleichzeitig dieselbe Leistungsqualität wie bei dem Modell mit hoher Dichte erreicht wird. Weitere Informationen zu Mixture of Experts im Allgemeinen finden Sie im Blog [Anwendung von Mixture of Experts in LLM-Architekturen](https://developer.nvidia.com/blog/applying-mixture-of-experts-in-llm-architectures/) auf der *NVIDIA-Entwickler-Website*.

*Expertenparallelität* ist eine Art von Parallelität, bei der Experten eines MoE-Modells auf verschiedene GPU-Geräte aufgeteilt werden.

SMP v2 ist in [NVIDIA Megatron](https://github.com/NVIDIA/Megatron-LM) integriert, um Expertenparallelität zur Unterstützung von MoE-Trainingsmodellen zu implementieren, und läuft auf FSDP. PyTorch APIs Sie verwenden Ihren PyTorch FSDP-Trainingscode unverändert und aktivieren die SMP-Expertenparallelität für das Training von MoE-Modellen.

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

SMP v2 bietet derzeit Unterstützung der Expertenparallelität für die folgenden Transformer-Modelle von Hugging Face.
+ [Mixtral](https://huggingface.co/docs/transformers/en/model_doc/mixtral)

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

Für `expert_parallel_degree` wählen Sie einen Wert für den Grad der Expertenparallelität aus. Der Wert muss die Anzahl der in Ihrem Cluster gleichmäßig teilen. GPUs Um beispielsweise Ihr Modell zu teilen, während Sie eine Instanz mit 8 verwenden GPUs, wählen Sie 2, 4 oder 8. Wir empfehlen, mit einer kleinen Zahl zu beginnen und diese schrittweise zu erhöhen, bis das Modell 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 `expert_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).

**Anmerkung**  
Sie können Expertenparallelität mit [Parallelität hybrider fragmentierter Daten](model-parallel-core-features-v2-sharded-data-parallelism.md) verwenden. Beachten Sie, dass die Expertenparallelität derzeit nicht mit der Tensor-Parallelität kompatibel ist.

**Anmerkung**  
Diese Schulungsfunktion für Experten im Bereich Parallelität ist in der folgenden Kombination aus Bibliotheken von SageMaker und der Bibliothek verfügbar: PyTorch   
SMP v2.3.0 und höher
Das SageMaker Python SDK v2.214.4 und höher
PyTorch v2.2.0 und höher

### In Ihrem Trainingsskript
<a name="model-parallel-core-features-v2-expert-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, wobei Sie der API den `config`-Parameter hinzufügen, um MoE zu aktivieren. Der folgende Codeausschnitt zeigt, wie Sie SMP MoE für die generische Modellklasse `AutoModelForCausalLM` aktivieren, indem Sie mit der `from_config`-Methode für das Training von Grund auf oder mit der `from_pretrained`-Methode für die Optimierung eine MoE-Transformer-Modellkonfiguration abrufen. Weitere Informationen zur SMP-`MoEConfig`-Klasse finden Sie unter [`torch.sagemaker.moe.moe_config.MoEConfig`](distributed-model-parallel-v2-reference.md#model-parallel-v2-torch-sagemaker-reference-moe).

```
# Import the torch.sagemaker.transform API and initialize.
import torch.sagemaker as tsm
tsm.init()

# Import transformers AutoModelForCausalLM class.
from transformers import AutoModelForCausalLM

# Import the SMP-implementation of MoE configuration class.
from torch.sagemaker.moe.moe_config import MoEConfig

# Define a transformer model with an MoE model configuration
model = AutoModelForCausalLM.from_config({{MoEModelConfig}})

# Wrap it by torch.sagemaker.transform with the SMP MoE configuration.
model = tsm.transform(
    model, 
    config=MoEConfig(
        smp_moe={{True}},
        random_seed={{12345}},
        moe_load_balancing="{{sinkhorn}}",
        global_token_shuffle={{False}},
        moe_all_to_all_dispatcher={{True}},
        moe_aux_loss_coeff={{0.001}},
        moe_z_loss_coeff={{0.001}}
    )
)
```

### SMP-Konfiguration
<a name="model-parallel-core-features-v2-expert-parallelism-configure-in-estimator-config"></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 Schätzer hinzu. SageMaker PyTorch 

```
{   
    ..., # other SMP config parameters
    "expert_parallel_degree": {{8}}
}
```