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à.
Parallelizzazione del contesto
La parallelizzazione del contesto è un tipo di parallelizzazione del modello che partiziona le attivazioni del modello lungo la dimensione della sequenza. A differenza di altre tecniche di parallelizzazione delle sequenzeLayerNorm e RMSNorm, la parallelizzazione del contesto partiziona gli input di rete e tutte le attivazioni intermedie lungo la dimensione della sequenza.
SMP v2 si integra con Transformer Engine
Modelli di Hugging Face Transformers compatibili con la parallelizzazione del contesto SMP
SMP v2 offre attualmente il supporto per la parallelizzazione del contesto per i seguenti modelli di Hugging Face Transformers.
-
GPT-NeoX
-
Llama 2 e Llama 3
Configurazione della parallelizzazione del contesto
Imposta un valore intero per il parametro che divide equamente il numero di nel clustercontext_parallel_degree. GPUs Ad esempio, se disponi di un’istanza con 8 GPU, utilizza 2, 4 o 8 per context_parallel_degree. È consigliabile iniziare con un valore context_parallel_degree basso e aumentarlo gradualmente fino a quando il modello risulta adatto alla memoria della GPU con la lunghezza della sequenza di input richiesta.
I seguenti frammenti di codice mostrano come aggiungere il modulo di inizializzazione SMP torch.sagemaker.init() allo script di addestramento e impostare il dizionario di configurazione di SMP in formato JSON per il programma di avvio del job di addestramento seguendo il processo in due fasi introdotto in Utilizzo della libreria SageMaker Model Parallelism v2. Non è necessario apportare modifiche al PyTorch modello o alla configurazione PyTorch FSDPcontext_parallel_degree, vedi Parametri di configurazione delle funzionalità principali di SMP v2.
Nello script di addestramento
Durante la Fase 1, inizializza lo script con torch.sagemaker.init() per attivare SMP v2 ed eseguire il wrapping del modello con l’API torch.sagemaker.transform.
A partire da SMP v2.6.0, è possibile utilizzare l’argomento cp_comm_type per determinare quale implementazione di contesto utilizzare. La libreria SMP attualmente supporta due implementazioni: p2p e all_gather. L'p2pimplementazione utilizza chiamate di peer-to-peer invio e ricezione per l'accumulo di valori-chiave durante l'implementazione dell'attenzione e viene eseguita in modo asincrono, consentendo sovrapposizioni con l'elaborazione. all_gatherl'implementazione, invece, utilizza l'operazione collettiva e viene eseguita in modo sincrono. AllGather
import torch.sagemaker as tsm tsm.init() from transformers import AutoModelForCausalLM model = AutoModelForCausalLM.from_config(..) model = tsm.transform(model, cp_comm_type="p2p")
Configurazione di SMP
Come parte della Fase 2, aggiungete il seguente parametro al dizionario di configurazione SMP per lo SageMaker PyTorch stimatore.
{ ..., # other SMP config parameters "context_parallel_degree": 2 }