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 liberata. GPU La SMP libreria offre la capacità di eseguire il parallelismo dei dati frammentati con PyTorch Fully Sharded Data Parallel (). FSDP PyTorch FSDPper impostazione predefinita, i frammenti vengono utilizzati su tutto il set utilizzato. GPUs Nella SMP v2, la libreria offre questo parallelismo di dati frammentati oltre all'estensione dello sharding PyTorch ibrido (HYBRID_SHARD
), che è una delle strategie di sharding fornite PyTorch FSDP da:,,,. PyTorch FSDPFULL_SHARD
SHARD_GRAD_OP
HYBRID_SHARD
_HYBRID_SHARD_ZERO2
L'estensione dello sharding ibrido in questo modo aiuta a implementare scale-aware-sharding quanto descritto nel blog La scalabilità quasi lineare della formazione su modelli gigantici su for. AWS
La SMP libreria la rende facile da usare HYBRID_SHARD
e _HYBRID_SHARD_ZERO2
su qualsiasi numero configurabile diGPUs, estendendo la versione nativa PyTorch FSDP che supporta lo sharding su un singolo nodo () o su tutti (). HYBRID_SHARD
GPUs FULL_SHARD
PyTorch FSDPle chiamate possono rimanere invariate ed è sufficiente aggiungere l'hybrid_shard_degree
argomento alla SMP configurazione, come illustrato nel seguente esempio di codice. Non è necessario modificare il valore dell'sharding_strategy
argomento nel PyTorch FSDP wrapper del PyTorch modello. Puoi passare ShardingStrategy.HYBRID_SHARD
come valore. In alternativa, la SMP libreria sovrascrive la strategia nello script e la imposta su ShardingStrategy.HYBRID_SHARD
se specificate un valore uguale o maggiore di 2 per il hybrid_shard_degree
parametro.
I seguenti frammenti di codice mostrano come aggiungere il modulo di SMP inizializzazione torch.sagemaker.init()
allo script di training e impostare il dizionario di SMP configurazione in JSON formato 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. PyTorch PyTorch FSDPhybrid_shard_degree
, vedi SMPparametri di configurazione delle funzionalità principali di v2.
SMPdizionario di configurazione
{ "hybrid_shard_degree": 16 }
Nello script di allenamento
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 = ...