Calcul Distribué
Répartition des calculs d'entraînement d'un grand modèle sur plusieurs serveurs ou machines fonctionnant en réseau.
Le calcul distribué consiste à diviser un travail de calcul en sous-tâches exécutées en parallèle sur plusieurs machines reliées par un réseau. En IA, il est surtout utilisé pour entraîner des modèles volumineux (LLM, vision, diffusion) lorsque une seule machine n’a pas assez de mémoire GPU/CPU ou mettrait trop de temps.
Comment ça fonctionne
Deux approches sont courantes :
- Parallélisme de données : chaque machine traite un lot de données différent, calcule des gradients, puis on agrège ces gradients (souvent via all-reduce) pour mettre à jour un modèle partagé.
- Parallélisme de modèle : on découpe le modèle lui-même (couches, tenseurs) entre plusieurs GPU, utile quand le modèle ne tient pas en mémoire sur un seul appareil.
La coordination repose sur des mécanismes de communication (réseau, interconnexion GPU), des bibliothèques (NCCL, MPI) et des frameworks (PyTorch DDP, Horovod, DeepSpeed).
À quoi ça sert
- Accélérer l’entraînement en réduisant le temps total.
- Entraîner plus grand (modèles et batch sizes plus élevés).
- Améliorer l’utilisation des ressources (clusters, cloud).
Exemple concret
Un entraînement sur 8 GPU peut multiplier le débit (images/s, tokens/s), mais impose de gérer la synchronisation, la latence réseau et la tolérance aux pannes.