Parallelismo ibrido dei dati frammentati - Amazon SageMaker

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à.

Parallelismo ibrido dei dati frammentati

Il parallelismo dei dati condivisi è una tecnica di addestramento distribuito che consente di risparmiare memoria e che suddivide lo stato di un modello (parametri del modello, gradienti e stati dell'ottimizzatore) tra i dispositivi. Ciò consente di adattare un modello più grande o di aumentare la dimensione del batch utilizzando la memoria GPU liberata. La libreria SMP offre la capacità di eseguire il parallelismo di dati condivisi con PyTorch Fully Sharded Data Parallel (FSDP). PyTorch Per impostazione predefinita, FSDP ripartisce l'intero set di GPU utilizzate. In SMP v2, la libreria offre questo parallelismo di dati condivisi oltre a PyTorch FSDP estendendo lo sharding PyTorch ibrido (HYBRID_SHARD), che è una delle strategie di sharding fornite da FSDP:,,,. PyTorch FULL_SHARD SHARD_GRAD_OP HYBRID_SHARD _HYBRID_SHARD_ZERO2 Estendere lo sharding ibrido in questo modo aiuta a implementare scale-aware-sharding , come descritto nel blog, la scalabilità quasi lineare della formazione su modelli gigantici su FSDP. AWS PyTorch

La libreria SMP la rende facile da usare HYBRID_SHARD e _HYBRID_SHARD_ZERO2 su qualsiasi numero configurabile di GPU, estendendo l' PyTorch FSDP nativo che supporta lo sharding su un singolo nodo () o su tutte le GPU (). HYBRID_SHARD FULL_SHARD PyTorch Le chiamate FSDP possono rimanere invariate ed è sufficiente aggiungere l'hybrid_shard_degreeargomento alla configurazione SMP, come illustrato nel seguente esempio di codice. Non è necessario modificare il valore dell'sharding_strategyargomento nel wrapper PyTorch FSDP del modello. PyTorch Puoi passare ShardingStrategy.HYBRID_SHARD come valore. In alternativa, la libreria SMP sovrascrive la strategia dello script e la imposta ShardingStrategy.HYBRID_SHARD se si specifica un valore uguale o maggiore di 2 per il parametro. hybrid_shard_degree

I seguenti frammenti di codice mostrano come aggiungere il modulo di inizializzazione SMP allo script di training 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. Inizia con la libreria di parallelismo dei SageMaker modelli v2 Non è necessario apportare modifiche al modello o alla configurazione FSDP. PyTorch PyTorch Per ulteriori informazioni sul parametro hybrid_shard_degree, vedi Parametri di configurazione delle funzionalità principali di SMP v2.

Dizionario di configurazione SMP

{ "hybrid_shard_degree": 16 }

Nello script di addestramento

import torch.sagemaker as tsm tsm.init() # Set up a PyTorch model model = ... # Wrap the PyTorch model using the PyTorch FSDP module model = FSDP( model, ... ) # Optimizer needs to be created after FSDP wrapper optimizer = ...