Parallelismo tensoriale - 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 tensoriale

Il parallelismo tensoriale è un tipo di parallelismo del modello in cui pesi, gradienti e stati dell'ottimizzatore specifici del modello vengono suddivisi tra i dispositivi. A differenza del parallelismo delle pipeline, che mantiene intatti i singoli pesi ma partiziona il set dei pesi, il parallelismo tensoriale suddivide i pesi individuali. Ciò comporta in genere il calcolo distribuito di operazioni, moduli o livelli specifici del modello.

Il parallelismo tensoriale è necessario nei casi in cui un singolo parametro consuma la maggior parte della GPU memoria (ad esempio tabelle di incorporamento di grandi dimensioni con un vocabolario di grandi dimensioni o un ampio livello softmax con un gran numero di classi). In questo caso, trattare questo tensore o operazione di grandi dimensioni come un'unità atomica è inefficiente e impedisce l'equilibrio del carico di memoria.

Il parallelismo tensoriale è utile anche per modelli estremamente grandi in cui una pipeline pura semplicemente non è sufficiente. Ad esempio, con modelli in GPT scala -3 che richiedono il partizionamento su decine di istanze, una pipelining in microbatch puro è inefficiente perché la profondità della tubazione diventa troppo elevata e il sovraccarico diventa proibitivo.

Nota

Il parallelismo tensoriale è disponibile nella libreria di parallelismo dei modelli v1.6.0 e versioni successive. PyTorch SageMaker