Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Un modello Mixture of Experts (MoE) è un tipo di modello di trasformatore che utilizza un approccio semplificato, che lo rende più leggero per l'addestramento rispetto ai modelli ad alta densità tradizionali. In questa architettura di rete neurale MoE, per ogni input viene utilizzato solo un sottoinsieme dei componenti del modello denominati esperti. Questo approccio offre diversi vantaggi, tra cui un addestramento più efficiente e un'inferenza più rapida, anche con modelli di dimensioni maggiori. In altre parole, con lo stesso budget di calcolo per l'addestramento di un modello a piena densità, puoi adattare un modello o un set di dati più grande quando usi MoE.
Un modello MoE è composto da più esperti, ciascuno costituito da una rete neurale, in genere una rete feed-forward (FFN). Una rete di porte chiamata router determina quali token vengono inviati a quale esperto. Questi esperti sono specializzati nell'elaborazione di aspetti specifici dei dati di input, per consentire al modello di addestrarsi più rapidamente, ridurre i costi di elaborazione e ottenere al contempo la stessa qualità delle prestazioni del modello ad alta densità equivalente. Per saperne di più su Mixture of Experts in generale, consulta il blog Appliing Mixture of Experts in LLM Architectures nel
Il parallelismo esperto è un tipo di parallelismo che consente di suddividere gli esperti di un modello MoE tra dispositivi GPU.
SMP v2 si integra con NVIDIA Megatron
Modelli Hugging Face Transformer compatibili con il parallelismo SMP Expert
SMP v2 offre attualmente un supporto esperto per il parallelismo per i seguenti modelli di trasformatori Hugging Face.
Configura il parallelismo esperto
Infattiexpert_parallel_degree
, si seleziona un valore per il grado di parallelismo esperto. Il valore deve dividere equamente il numero di GPUs nel cluster. Ad esempio, per suddividere il modello utilizzando un'istanza con 8 GPUs, scegliete 2, 4 o 8. Ti consigliamo di iniziare con un numero piccolo e di aumentarlo gradualmente fino a quando il modello non si adatta alla memoria della GPU.
I seguenti frammenti di codice mostrano come aggiungere il modulo di inizializzazione SMP allo script di formazione e torch.sagemaker.init()
impostare il dizionario di configurazione SMP in formato JSON per Training Job Launcher seguendo il processo in due fasi introdotto in. Usa la libreria di parallelismo dei SageMaker modelli v2 Non è necessario apportare modifiche al modello o alla configurazione FSDP. PyTorch PyTorch expert_parallel_degree
, vedi Parametri di configurazione delle funzionalità principali di SMP v2.
Nota
Puoi usare il parallelismo esperto con. Parallelismo ibrido dei dati frammentati Nota che il parallelismo esperto attualmente non è compatibile con il parallelismo tensoriale.
Nota
Questa funzionalità di formazione per esperti sul parallelismo è disponibile nella seguente combinazione di librerie di e libreria: SageMaker PyTorch
-
SMP v2.3.0 e versioni successive
-
SageMaker Python SDK v2.214.4 e versioni successive
-
PyTorch v2.2.0 e versioni successive
Nel tuo script di allenamento
Come parte della Fase 1, inizializza lo script con torch.sagemaker.init()
per attivare SMP v2 e avvolgi il modello con l'torch.sagemaker.transformAPI, aggiungendo il config
parametro all'API per attivare MoE. Il seguente frammento di codice mostra come attivare SMP MoE per la classe del modello generico AutoModelForCausalLM
estraendo una configurazione del modello di trasformatore MoE utilizzando il metodo per l'addestramento da zero o il from_config
metodo per la messa a punto. from_pretrained
Per ulteriori informazioni sulla classe SMP, vedere. MoEConfig
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
)
)
Configurazione SMP
Come parte del passaggio 2, aggiungete il seguente parametro al dizionario di configurazione SMP per lo SageMaker PyTorch stimatore.
{
..., # other SMP config parameters
"expert_parallel_degree": 8
}