Parallelismo ibrido dei dati frammentati - Amazon SageMaker AI

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 FSDP FULL_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 PyTorch FSDP

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_degreeargomento alla SMP configurazione, come illustrato nel seguente esempio di codice. Non è necessario modificare il valore dell'sharding_strategyargomento 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 FSDP Per ulteriori informazioni sul parametro hybrid_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 = ...