Yolo Vision Shenzhen
Shenzhen
Rejoindre maintenant
Glossaire

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.

Rejoindre la communauté Ultralytics

Rejoignez le futur de l'IA. Connectez-vous, collaborez et évoluez avec des innovateurs mondiaux.

Rejoindre maintenant