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.
Parallelität für Experten
Ein Modell der Expertenmischung (Mixture of Experts, MoE) ist eine Art Transformatormodell, das einen spärlichen Ansatz verwendet, sodass es leichter zu trainieren ist als das Training mit herkömmlichen Modellen mit hoher Dichte. In dieser neuronalen Netzwerkarchitektur im 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 mehrere Geräte aufgeteilt werden. GPU
SMPv2 lässt sich in NVIDIAMegatron
Hugging Face Transformer-Modelle, die mit Expertenparallelität kompatibel SMP sind
SMPv2 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 verwendenGPUs, wählen Sie 2, 4 oder 8. Es wird empfohlen, 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 Schulungsskript hinzufügen und das SMP Konfigurationswörterbuch im JSON Format für den Trainingsjob-Launcher einrichten. Dabei folgen Sie dem in beschriebenen zweistufigen Prozess. Verwenden Sie die SageMaker Modellparallelitätsbibliothek v2 Sie müssen keine Änderungen an Ihrem Modell oder Ihrer PyTorch Konfiguration vornehmen. PyTorch FSDPexpert_parallel_degree
erhalten Sie unter SMPKonfigurationsparameter der v2-Kernfunktion.
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
-
SMPv2.3.0 und höher
-
SageMaker Python SDK v2.214.4 und höher
-
PyTorch v2.2.0 und später
In deinem Trainingsskript
Initialisieren Sie im Rahmen von Schritt 1 Ihr Skript mit torch.sagemaker.init()
to activate SMP v2 und umschließen Sie Ihr Modell mit dem. Fügen Sie den config
Parameter hinzu torch.sagemaker.transformAPI, um MoE API zu aktivieren. Der folgende Codeausschnitt zeigt, wie Sie SMP MoE für die generische Modellklasse AutoModelForCausalLM
aktivieren, die eine MoE-Transformator-Modellkonfiguration abruft, indem Sie die from_config
Methode für das Training von Grund auf oder die from_pretrained
Methode für die Feinabstimmung verwenden. Weitere Informationen zu der SMP MoEConfig
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
) )
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 "expert_parallel_degree":
8
}