Parallélisme de tenseur - Amazon SageMaker

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Parallélisme de tenseur

Le parallélisme de tenseur est un type de parallélisme de modèle dans lequel des poids, des gradients et des états d'optimiseur spécifiques sont répartis entre les appareils. Contrairement au parallélisme de pipeline, qui maintient les poids individuels intacts mais partitionne l'ensemble de poids, le parallélisme de tenseur répartit les poids individuels. Cela implique généralement un calcul distribué d'opérations, de modules ou de couches spécifiques du modèle.

Le parallélisme tensoriel est requis dans les cas où un seul paramètre consomme la majeure partie de la GPU mémoire (par exemple, de grandes tables d'intégration avec un vocabulaire important ou une grande couche softmax contenant un grand nombre de classes). Dans ce cas, le traitement de ce tenseur ou de cette opération de grande taille comme une unité atomique est inefficace et nuit à l'équilibre de la charge mémoire.

Le parallélisme de tenseur est également utile pour les modèles extrêmement volumineux dans lesquels un traitement en pipeline pur ne suffit tout simplement pas. Par exemple, avec les modèles GPT à 3 échelles qui nécessitent un partitionnement sur des dizaines d'instances, un pipeline purement microbatch est inefficace car la profondeur du pipeline devient trop élevée et les frais généraux deviennent prohibitifs.

Note

Le parallélisme tensoriel est disponible PyTorch dans la bibliothèque de parallélisme des SageMaker modèles v1.6.0 et versions ultérieures.