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.
Présentation de la bibliothèque de parallélisme de données distribué basée sur l' SageMaker IA
La bibliothèque SageMaker AI Distributed Data Parallelism (SMDDP) est une bibliothèque de communication collective qui améliore les performances informatiques de l'entraînement parallèle aux données distribuées. La bibliothèque SMDDP permet de réduire la surcharge de communication liée aux principales opérations de communication collective en proposant les éléments suivants.
-
La bibliothèque propose des offres
AllReduce
optimisées pour AWS.AllReduce
est une opération clé utilisée pour synchroniser les dégradés GPUs à la fin de chaque itération d'entraînement pendant l'entraînement aux données distribuées. -
La bibliothèque propose des offres
AllGather
optimisées pour AWS.AllGather
est une autre opération clé utilisée dans le cadre de l'apprentissage parallèle des données partagées, une technique de parallélisme de données économe en mémoire proposée par des bibliothèques populaires telles que la bibliothèque SageMaker AI model parallelism (SMP), DeepSpeed Zero Redundancy Optimizer (Zero) et Fully Sharded Data Parallelism (FSDP). PyTorch -
La bibliothèque optimise la node-to-node communication en utilisant pleinement l'infrastructure AWS réseau et la topologie des EC2 instances Amazon.
La bibliothèque SMDDP peut augmenter la vitesse d'entraînement en améliorant les performances à mesure que vous adaptez votre cluster d'entraînement, avec une efficacité de mise à l'échelle quasi linéaire.
Note
Les bibliothèques de formation distribuées par l' SageMaker IA sont disponibles via les conteneurs d'apprentissage AWS profond PyTorch et Hugging Face de SageMaker la plateforme de formation. Pour utiliser les bibliothèques, vous devez utiliser le SDK SageMaker Python ou le SageMaker APIs SDK direct pour Python (Boto3) ou. AWS Command Line Interface Tout au long de la documentation, les instructions et les exemples se concentrent sur l'utilisation des bibliothèques de formation distribuées avec le SDK SageMaker Python.
Opérations de communication collective SMDDP optimisées pour les ressources AWS informatiques et l'infrastructure réseau
La bibliothèque SMDDP fournit des implémentations des AllReduce
opérations AllGather
collectives optimisées pour les ressources AWS informatiques et l'infrastructure réseau.
Opération collective SMDDP AllReduce
La bibliothèque SMDDP permet un chevauchement optimal des AllReduce
opérations avec le retour en arrière, ce qui améliore considérablement l'utilisation du GPU. Il atteint une efficacité de mise à l'échelle quasi linéaire et une vitesse d'apprentissage plus rapide en optimisant les opérations du noyau entre et CPUs. GPUs La bibliothèque fonctionne AllReduce
en parallèle pendant que le GPU calcule les dégradés sans supprimer de cycles GPU supplémentaires, ce qui permet à la bibliothèque d'accélérer l'entraînement.
-
Avantages CPUs : La bibliothèque utilise deux CPUs
AllReduce
dégradés, déchargeant cette tâche du. GPUs -
Utilisation améliorée du GPU : le cluster GPUs se concentre sur le calcul des gradients, en améliorant leur utilisation tout au long de la formation.
Voici le flux de travail de haut niveau de l'opération SMDDP. AllReduce
-
La bibliothèque attribue des grades à GPUs (travailleurs).
-
À chaque itération, la bibliothèque divise chaque lot global par le nombre total d'employés (taille mondiale) et affecte de petits lots (partitions de lots) aux employés.
-
Le lot global a une taille de
(number of nodes in a cluster) * (number of GPUs per node) * (per batch shard)
. -
Une partition de lot (petit lot) est un sous-ensemble du jeu de données affecté à chaque GPU (employé) par itération.
-
-
La bibliothèque lance un script d'entraînement sur chaque employé.
-
La bibliothèque gère les copies des poids et des gradients des modèles reçus des employés à la fin de chaque itération.
-
La bibliothèque synchronise les poids et les gradients des modèles entre les employés afin d'agréger un seul modèle entraîné.
Le diagramme d'architecture qui suit est un exemple de la façon dont la bibliothèque configure le parallélisme des données pour un cluster de 3 nœuds.

Opération collective SMDDP AllGather
AllGather
est une opération collective dans laquelle chaque travailleur commence par un tampon d'entrée, puis concatène ou rassemble les tampons d'entrée de tous les autres travailleurs dans un tampon de sortie.
Note
L'opération AllGather
collective SMDDP est disponible dans AWS Deep Learning Containers (DLC) pour les versions 2.0.1 smdistributed-dataparallel>=2.0.1
et ultérieures PyTorch .
AllGather
est largement utilisé dans les techniques de formation distribuées telles que le parallélisme de données fragmenté où chaque collaborateur détient une fraction d'un modèle, ou une couche fragmentée. Les ouvriers appellent AllGather
avant les passes avant et arrière pour reconstruire les couches fragmentées. Les passes avant et arrière se poursuivent une fois que tous les paramètres sont collectés. Pendant le passage en arrière, chaque travailleur appelle également ReduceScatter
pour collecter (réduire) les dégradés et les diviser (les disperser) en fragments de dégradé afin de mettre à jour la couche fragmentée correspondante. Pour plus de détails sur le rôle de ces opérations collectives dans le parallélisme des données fragmentées, consultez l'implémentation du parallélisme des données partitionnées par la bibliothèque SMP, Zero
Comme AllGather les opérations collectives de ce type sont appelées à chaque itération, elles sont les principaux responsables de la surcharge de communication du GPU. L'accélération du calcul de ces opérations collectives se traduit directement par un temps d'entraînement plus court, sans aucun effet secondaire sur la convergence. Pour ce faire, la bibliothèque SMDDP propose des solutions AllGather
optimisées pour les instances P4d
SMDDP AllGather
utilise les techniques suivantes pour améliorer les performances de calcul sur les instances P4d.
-
Il transfère les données entre les instances (inter-nœuds) via le réseau Elastic Fabric Adapter (EFA) avec une topologie
maillée. EFA est la solution AWS réseau à faible latence et à haut débit. Une topologie maillée pour la communication réseau entre nœuds est mieux adaptée aux caractéristiques de l'EFA et de l'infrastructure AWS réseau. Par rapport à la topologie en anneau ou en arbre NCCL qui implique plusieurs sauts de paquets, le SMDDP évite d'accumuler de la latence due à plusieurs sauts car il n'en a besoin que d'un seul. Le SMDDP met en œuvre un algorithme de contrôle du débit réseau qui équilibre la charge de travail de chaque homologue de communication dans une topologie maillée et permet d'obtenir un débit réseau global plus élevé. -
Il adopte une bibliothèque de copie de mémoire GPU à faible latence basée sur la technologie NVIDIA GPUDirect RDMA (GDRCopy)
pour coordonner le trafic réseau local NVLink et EFA. GDRCopy, une bibliothèque de copies de mémoire GPU à faible latence proposée par NVIDIA, fournit une communication à faible latence entre les processus du processeur et les noyaux CUDA du GPU. Grâce à cette technologie, la bibliothèque SMDDP est capable de canaliser le mouvement de données intra-nœud et inter-nœud. -
Il réduit l'utilisation des multiprocesseurs de streaming GPU afin d'augmenter la puissance de calcul nécessaire à l'exécution des noyaux des modèles. Les instances P4d et P4de sont équipées de la technologie NVIDIA A100 GPUs, qui possède chacune 108 multiprocesseurs de streaming. Alors que le NCCL utilise jusqu'à 24 multiprocesseurs de streaming pour exécuter des opérations collectives, le SMDDP utilise moins de 9 multiprocesseurs de streaming. Les noyaux de calcul modélisés récupèrent les multiprocesseurs de streaming enregistrés pour accélérer les calculs.