Parallélisme des données
Le parallélisme des données entraîne un modèle plus rapidement en le répliquant sur plusieurs GPU, chaque GPU traitant une tranche différente du lot de données.
Aperçu
It is the workhorse technique that lets teams scale to dozens or thousands of accelerators.
Plongée profonde
Dans le parallélisme des données, chaque GPU contient une copie identique des poids du modèle mais traite un mini-lot distinct d'exemples d'entraînement. Chaque appareil calcule indépendamment une passe avant et arrière, produisant son propre ensemble de gradients. Avant la mise à jour des pondérations, les gradients sont moyennés sur tous les GPU à l'aide d'une opération de communication de réduction totale, de sorte que chaque réplique reste synchronisée et se comporte comme si elle avait été entraînée sur un grand lot combiné. Cela multiplie efficacement le débit : 8 GPU peuvent traiter environ 8 fois plus de données par étape. Le problème est que chaque GPU doit s'adapter à l'intégralité du modèle, à ses gradients et à l'état de l'optimiseur en mémoire. Le parallélisme simple des données n'aide donc pas lorsqu'un modèle est trop volumineux pour un seul appareil.
Aperçu technique
L'opération clé est la réduction totale, qui additionne les dégradés sur tous les appareils et redistribue le résultat. Ring all-reduce, utilisé par des bibliothèques comme NCCL et Horovod, transmet des morceaux de dégradé autour d'un anneau logique afin que la communication totale soit indépendante du nombre de GPU. DistributedDataParallel de PyTorch chevauche cette communication avec le passage arrière, déclenchant une synchronisation par gradient pour les premières couches tandis que les couches ultérieures sont encore en train de calculer, cachant une grande partie de la latence du réseau.
Impact stratégique
Coût et budget
Les décisions en matière d'architecture déterminent les performances et les coûts d'exploitation pendant des années.
Décisions plus claires
La formation technique aide les équipes à choisir la bonne pile, pas seulement la plus récente.
Contrôle qualité
De meilleurs choix d’ingénierie réduisent les incidents de fiabilité en production.
L'avenir du parallélisme des données
Le parallélisme pur des données est de plus en plus combiné avec le partitionnement et le parallélisme des modèles dans des stratégies hybrides de « parallélisme nD » pour les modèles comportant des milliards de paramètres. Attendez-vous à une compression de gradient plus intelligente, à une communication asynchrone et superposée et à une réduction totale tenant compte de la topologie qui exploite NVLink rapide au sein d'un nœud et InfiniBand plus lent entre les nœuds. À mesure que les clusters se développent, la réduction du rapport communication/calcul reste le principal défi technique pour occuper des milliers de GPU.
Mise en œuvre dans le monde réel
Formation d'un classificateur d'images ResNet sur 8 GPU sur un serveur à l'aide de PyTorch DistributedDataParallel, chaque GPU gérant 32 images sur un lot de 256.
Mise à l'échelle du pré-entraînement BERT sur des centaines de GPU avec Horovod, en utilisant ring all-reduce pour synchroniser les dégradés à chaque étape.
Affiner un modèle de recommandation sur un cluster multi-nœuds où chaque nœud traite différentes partitions d'interaction utilisateur.
Utilisation de MirroredStrategy de TensorFlow pour répartir la formation d'un modèle de vision sur plusieurs GPU sur un seul poste de travail avec un minimum de modifications de code.
Risques et garde-fous
L’optimisation d’un benchmark peut masquer des faiblesses plus larges du système.
Les coûts d’infrastructure et de maintenance sont souvent sous-estimés.
Les lacunes en matière de sécurité et d’observabilité peuvent se creuser à mesure que les systèmes deviennent plus complexes.
Feuille de route de mise en œuvre
Définissez les objectifs de latence, de qualité et de coût avant la mise en œuvre.
Benchmark dans des conditions de charge et de données réalistes.
Surveillance des instruments pour détecter les erreurs, la dérive et l'impact sur l'utilisateur.
Préparez les chemins de restauration et de réponse aux incidents avant la mise à l’échelle.
Continuez à explorer
Free newsletter
Get the daily AI briefing
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Take the Data Parallelism quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
Guide suivant
Gouvernance des données IA
Questions fréquemment posées
What is Data Parallelism?
Le parallélisme des données entraîne un modèle plus rapidement en le répliquant sur plusieurs GPU, chaque GPU traitant une tranche différente du lot de données. Il s’agit d’une technique performante qui permet aux équipes de s’adapter à des dizaines, voire des milliers d’accélérateurs.
Dans le parallélisme de données standard, que contient chaque GPU ?
Chaque GPU conserve une réplique complète du modèle et traite une partie distincte du lot de données, ce qui en fait un parallélisme de « données » plutôt qu'un parallélisme de modèle.
Quelle opération de communication maintient les répliques du modèle synchronisées à chaque étape ?
Après chaque passage en arrière, les dégradés sont combinés sur tous les appareils via une réduction totale (généralement additionnés puis moyennés) afin que chaque réplique applique la même mise à jour.
Quelle est la principale limitation du parallélisme simple des données ?
Étant donné que chaque GPU contient une copie complète de tout, le parallélisme des données n’aide en rien lorsqu’un modèle est tout simplement trop volumineux pour tenir sur un seul appareil.
Pourquoi le ring all-reduce est-il intéressant pour les grands nombres de GPU ?
Ring all-reduce transmet des morceaux de dégradé autour d'un anneau logique, de sorte que la bande passante totale envoyée par chaque GPU reste constante quel que soit le nombre de GPU participants.
Comment PyTorch DistributedDataParallel masque-t-il la latence de communication ?
DDP commence à synchroniser les gradients des couches précédentes tandis que les couches ultérieures sont encore en cours de calcul, chevauchant la communication réseau avec le calcul.