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.
Ein Modell der Expertenmischung (Mixture of Experts, MoE) ist eine Art Transformatormodell, das einen spärlichen Ansatz verwendet, sodass das Training im Vergleich zu herkömmlichen Modellen mit hoher Dichte leichter zu trainieren ist. In dieser neuronalen Netzwerkarchitektur von MoE wird für jede Eingabe nur eine Teilmenge der Komponenten des Modells, 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 demselben Rechenbudget für das Training eines Modells mit voller Dichte können Sie bei Verwendung von MoE ein größeres Modell oder einen größeren Datensatz anpassen.
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 Rechenkosten reduziert werden und gleichzeitig die gleiche Leistungsqualität wie das Modell mit hoher Dichte erreicht wird. Weitere Informationen zu Mixture of Experts im Allgemeinen finden Sie im Blog Applying Mixture of Experts in LLM Architectures
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
Hugging Face Transformer-Modelle, die mit der Parallelität von SMP Expert kompatibel sind
SMP v2 bietet derzeit Expertenunterstützung für Parallelität für die folgenden Hugging Face Face-Transformatormodelle.
Konfigurieren Sie Parallelität für Experten
Für expert_parallel_degree
wählen Sie einen Wert für den Grad der Expertenparallelität aus. Der Wert muss die Anzahl der GPUs in Ihrem Cluster gleichmäßig verteilen. 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 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 expert_parallel_degree
erhalten Sie unter Konfigurationsparameter für die Kernfunktion von SMP v2.
Anmerkung
Sie können Expertenparallelität mit verwenden. Parallelität hybrider Sharded Data Beachten Sie, dass die Expertenparallelität derzeit nicht mit der Tensorparallelität kompatibel ist.
Anmerkung
Diese Schulungsfunktion für Experten zur Parallelität ist in der folgenden Kombination aus Bibliotheken von und der Bibliothek verfügbar: SageMaker 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 deinem Trainingsskript
Initialisieren Sie im Rahmen von Schritt 1 Ihr Skript mit, um SMP v2 torch.sagemaker.init()
zu aktivieren, und schließen Sie Ihr Modell mit der torch.sagemaker.transform API zusammen. Fügen Sie der API den config
Parameter hinzu, um MoE zu aktivieren. Der folgende Codeausschnitt zeigt, wie Sie SMP MoE für die generische Modellklasse aktivieren, die eine MoE-Transformator-Modellkonfiguration AutoModelForCausalLM
abruft, indem Sie die Methode für das Training von Grund auf oder die from_config
Methode für die Feinabstimmung verwenden. from_pretrained
Weitere Informationen zur MoEConfig
SMP-Klasse finden Sie unter. torch.sagemaker.moe.moe_config.MoEConfig
# 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
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
"expert_parallel_degree": 8
}