Entraînement distribué
Accélérez l'entraînement de l'IA grâce à l'entraînement distribué ! Découvrez comment réduire le temps d'entraînement, mettre à l'échelle les modèles et optimiser les ressources pour les projets ML complexes.
La formation distribuée est une technique puissante d'apprentissage
l 'apprentissage machine (ML) qui accélère le processus de
processus de création de modèles en répartissant la charge de travail sur plusieurs processeurs, tels que des
des unités de traitement graphique (GPU) ou
unités de traitement Tensor (TPU). En tirant parti de la puissance combinée de dispositifs concurrents - qu'ils soient situés sur un seul poste de travail ou mis en réseau sur un vaste réseau de serveurs - la technologie de la simulation numérique permet de créer des modèles plus complexes.
poste de travail ou en réseau dans un vaste cluster - les développeurs peuvent réduire considérablement le temps nécessaire à l'entraînement d'architectures complexes d'apprentissage profond (DL).
architectures complexes d'apprentissage profond (DL). Cette approche est
Cette approche est essentielle pour traiter des ensembles de données massifs et développer des systèmes d'intelligence artificielle (IA) à la pointe de la technologie.
systèmes d'intelligence artificielle (IA) de pointe,
permettant des cycles d'itération plus rapides et des expérimentations plus poussées.
Stratégies de base pour la parallélisation
Pour répartir efficacement la charge de travail, les ingénieurs utilisent généralement l'une des deux stratégies principales, ou une approche hybride, conçues pour maximiser l'efficacité.
conçue pour maximiser l'efficacité :
-
Le parallélisme des données: Il s'agit de la méthode la plus courante pour des tâches telles que
la détection d'objets. Dans cette configuration, une copie complète
du modèle réside sur chaque appareil. Les données
données d'apprentissage sont divisées en petits morceaux et
chaque appareil traite simultanément un sous-ensemble différent. Pendant la phase de
phase de rétropropagation, les gradients sont calculés
indépendamment, puis synchronisés sur tous les appareils à l'aide de protocoles de communication tels que l'interface MPI (Message Passing Interface) pour mettre à jour le gradient.
l 'interface de transmission de messages (MPI) pour mettre à jour les poids du modèle de manière cohérente.
les poids du modèle de manière cohérente.
-
Parallélisme de modèle: Lorsqu'un
réseau neuronal (NN) est trop grand pour tenir dans la mémoire d'un seul GPU.
la mémoire d'un seul GPU, le parallélisme de modèle est nécessaire. Les couches ou les composants du modèle sont répartis
sur différents dispositifs. Les données circulent de manière séquentielle ou simultanée entre les dispositifs lorsqu'elles passent par le réseau.
Cette technique est essentielle pour l'entraînement des
modèles de fondation massifs et
les grands modèles de langage (LLM), où les
où le nombre de paramètres peut atteindre des trillions, ce qui nécessite des outils spécialisés comme Microsoft DeepSpeed pour gérer la mémoire.
Microsoft DeepSpeed pour gérer la mémoire.
Applications concrètes
La formation distribuée permet aux industries de résoudre des problèmes qui étaient auparavant infaisables sur le plan informatique en raison de contraintes de temps ou de mémoire.
ou de mémoire.
-
Conduite autonome: La mise au point de voitures autonomes fiables nécessite le traitement de pétaoctets de données vidéo et de capteurs.
vidéo et de données de capteurs. Les entreprises automobiles utilisent des clusters distribués à grande échelle pour former des modèles de vision pour la segmentation sémantique et le suivi d'objets en temps réel.
segmentation sémantique et le suivi d'objets en temps réel.
En utilisant l'IA dans les flux de travail de l 'industrie automobile,
les ingénieurs peuvent itérer rapidement sur les modèles critiques pour la sécurité afin d'améliorer les performances.
-
Imagerie médicale: En
l 'IA dans les soins de santé, l'analyse de scans 3D
haute résolution, tels que les IRM ou les tomodensitogrammes, nécessite d'importantes ressources informatiques. La formation distribuée permet aux chercheurs de
d'entraîner des modèles de diagnostic de haute précision sur des ensembles de données diversifiés,
sur des ensembles de données diversifiés et respectueux de la vie privée. Les frameworks tels que
NVIDIA CLARA s'appuient souvent sur des techniques distribuées
pour traiter efficacement ces images médicales complexes.
Mise en œuvre d'une formation distribuée avec YOLO
Le ultralytics simplifie la mise en œuvre de la formation Distributed Data Parallel (DDP). Vous pouvez
pouvez facilement faire évoluer votre formation de YOLO11 modèles sur plusieurs
plusieurs GPU en spécifiant simplement les indices des appareils.
from ultralytics import YOLO
# Load a pre-trained YOLO11 model
model = YOLO("yolo11n.pt")
# Train the model using two GPUs (device 0 and 1)
# The library automatically handles DDP setup for parallel processing
results = model.train(data="coco8.yaml", epochs=5, device=[0, 1])
Entraînement distribué vs. Concepts connexes
Il est important de distinguer la formation distribuée d'autres termes apparentés dans l'écosystème de l'IA :
-
vs. l'apprentissage fédéré: Bien que ces deux types d'apprentissage impliquent plusieurs appareils, leurs objectifs principaux diffèrent.
L'apprentissage distribué centralise généralement les données dans un cluster haute performance afin de maximiser la vitesse et le débit. En revanche, l'apprentissage
En revanche, l'apprentissage fédéré maintient les données décentralisées sur les appareils des utilisateurs
décentralisées sur les appareils des utilisateurs (comme les smartphones) afin de donner la priorité à la confidentialité des données, en agrégeant les mises à jour des modèles sans les modifier.
la confidentialité des données, en agrégeant les mises à jour du modèle sans que les données brutes ne quittent l'appareil source.
sans que les données brutes ne quittent l'appareil source.
-
vs. le calcul à haute performance (HPC): Le calcul à haute performance est un vaste domaine qui englobe le calcul intensif pour les simulations scientifiques, telles que les prévisions météorologiques.
des simulations scientifiques, telles que les prévisions météorologiques. L'apprentissage distribué est une application spécifique du calcul à haute performance appliquée
aux algorithmes d'optimisation des réseaux
réseaux neuronaux, en utilisant souvent des bibliothèques de communication
NVIDIA NCCL pour réduire la latence entre les GPU.
Outils et écosystème
Un solide écosystème d'outils et de plateformes à code source ouvert soutient la mise en œuvre de la formation distribuée :
-
Cadres: PyTorch offre un support natif
via son paquetage distribué, tandis que
TensorFlow propose des stratégies telles que
MirroredStrategy pour une mise à l'échelle transparente.
-
Orchestration: La gestion des ressources au sein d'un grand cluster implique souvent l'orchestration de conteneurs.
comme Kubernetes ou
Kubeflow, qui automatisent le déploiement et la mise à l'échelle des tâches de formation.
-
Infrastructure en nuage: Les principaux fournisseurs proposent des services gérés tels que
AWS SageMaker et
Google Cloud TPUs qui fournissent une infrastructure optimisée pour les charges de travail distribuées, en supprimant le fardeau de la maintenance du matériel.
charges de travail distribuées, en supprimant le fardeau de la maintenance matérielle.
-
Évolutivité universelle: Des bibliothèques comme Horovod et
Ray proposent des approches de mise à l'échelle indépendantes du cadre, ce qui permet aux développeurs d'adapter leur code à des environnements distribués avec un minimum de modifications.
d'adapter leur code à des environnements distribués avec un minimum de changements.