Aller au contenu principal
Vantaige
DeepSpeed screenshot
D

DeepSpeed

Gratuit

DeepSpeed est la bibliothèque d'optimisation d'apprentissage profond open source de Microsoft, conçue pour l'entraînement et l'exécution de grands modèles de langage sur plusieurs GPU. Elle propulse BLOOM 176B, Megatron-Turing 530B et d'innombrables pipelines de fine-tuning grâce à son optimiseur de mémoire ZeRO.

Fonctionnalités :Open SourceAPI

DeepSpeed est une bibliothèque d'optimisation d'apprentissage profond construite sur PyTorch, développée par Microsoft et publiée en 2020 sous licence Apache 2.0. Elle résout un problème spécifique et complexe : permettre l'entraînement et l'exécution de modèles de langage trop volumineux pour tenir sur un seul GPU ou un seul nœud, sans obliger les équipes à créer des systèmes distribués sur mesure en partant de zéro. Avec plus de 42 000 étoiles sur GitHub et un historique de versions allant jusqu'à la v0.18.9 (mars 2026), c'est le framework d'entraînement distribué généraliste le plus largement adopté dans le domaine du machine learning open source.

La technologie phare de DeepSpeed est l'optimiseur ZeRO (Zero Redundancy Optimizer), qui élimine la redondance de mémoire se produisant normalement lorsque les états du modèle sont dupliqués sur des GPU en parallélisme de données. ZeRO Stage 1 fragmente les états de l'optimiseur sur les GPU, Stage 2 ajoute la fragmentation des gradients, et Stage 3 fragmente les paramètres du modèle eux-mêmes. ZeRO-Infinity va encore plus loin en déchargeant la mémoire vers la RAM du CPU et les SSD NVMe, permettant le fine-tuning de modèles à mille milliards de paramètres sur du matériel qui serait autrement largement insuffisant. Au-delà de ZeRO, DeepSpeed offre le parallélisme de pipeline, le parallélisme de tenseurs automatique (AutoTP, lancé en mars 2025), l'entraînement Mixture of Experts, le parallélisme de séquences pour des contextes de plusieurs millions de tokens, ainsi qu'un moteur d'inférence avec fusion de noyaux et quantification. Il s'intègre nativement avec Hugging Face Transformers et Accelerate, PyTorch Lightning, et la stack GPT-NeoX d'EleutherAI.

Ce que fait réellement DeepSpeed en mai 2026

DeepSpeed est une bibliothèque Python que vous installez aux côtés de PyTorch. Vous lui transmettez un fichier de configuration JSON (ds_config.json) spécifiant quel niveau ZeRO utiliser, s'il faut décharger les états de l'optimiseur ou les paramètres vers le CPU, s'il faut utiliser la précision mixte, ainsi que des dizaines d'autres paramètres de réglage. Vous enveloppez ensuite votre boucle d'entraînement avec le moteur DeepSpeed. À ce stade, DeepSpeed gère automatiquement la fragmentation des paramètres sur les GPU, la communication des gradients, la gestion de la mémoire et la sauvegarde des points de contrôle (checkpoints).

L'optimiseur ZeRO est le cœur du système. Avant ZeRO, l'entraînement d'un modèle 13B en float16 nécessitait environ 26 Go par GPU uniquement pour les poids du modèle, plus les états de l'optimiseur (les estimations de moment d'Adam ajoutent environ 3 fois la taille du modèle) et les gradients, poussant les besoins totaux en mémoire par GPU à 80 Go ou plus pour une seule réplique. ZeRO Stage 3 fragmente tout cela sur N GPU, de sorte qu'un modèle 13B réparti sur 8 A100 de 40 Go nécessite environ 5 Go par GPU pour les paramètres, libérant ainsi de l'espace pour la taille de lot (batch size) et les activations. C'est ce mécanisme qui a permis à des équipes disposant de budgets GPU modestes d'exécuter des tâches de pré-entraînement et de fine-tuning qui nécessitaient auparavant une infrastructure spécialisée.

ZeRO-Infinity, annoncé en mai 2021, a démontré l'entraînement d'un modèle de 32 mille milliards de paramètres sur 32 GPU en déchargeant vers le NVMe. Cela reste le plafond théorique de ce que le système peut coordonner. En pratique, la plupart des utilisateurs en production exécutent ZeRO-2 ou ZeRO-3 avec déchargement vers le CPU sur des clusters de 8 à 256 GPU pour des modèles de l'ordre de 7B à 70B.

Les ajouts récents incluent DeepCompile (avril 2025), qui applique des optimisations au niveau du compilateur aux graphes d'entraînement distribués ; Arctic Long Sequence Training (juin 2025) pour la prise en charge de séquences de plusieurs millions de tokens ; AutoTP pour le parallélisme de tenseurs automatique avec les modèles Hugging Face (mars 2025) ; et le moteur de déchargement sans interruption ZenFlow (août 2025). Les travaux sur SuperOffload ont reçu une mention honorable à l'ASPLOS 2026, la principale conférence sur les systèmes.

DeepSpeed-Chat, sorti le 12 avril 2023, a marqué un tournant : un pipeline RLHF de bout en bout couvrant le fine-tuning supervisé, l'entraînement du modèle de récompense et le PPO, le tout dans un seul script. Le système a entraîné un modèle 13B en 1,25 heure sur un seul GPU A6000 et un modèle 175B en une journée sur 64 GPU, revendiquant un débit 15 fois supérieur à celui de trlX et trl. Le fil de discussion de lancement sur Hacker News en avril 2023 a suscité des centaines de commentaires débattant de la possibilité pour le RLHF open source d'atteindre de manière réaliste la qualité de GPT-4 :

"Le fine-tuning n'atteindra pas la qualité de GPT-4 sans des modèles de base plus grands et une optimisation poussée." -- valine, Hacker News, 12 avril 2023

Ce débat était visionnaire. DeepSpeed-Chat a suffisamment abaissé la barrière à l'entrée de l'entraînement RLHF pour que des équipes auparavant exclues de ce domaine pour des raisons de coûts puissent itérer. L'écart avec les modèles de pointe s'est considérablement réduit depuis 2023, en partie grâce à des outils d'infrastructure comme celui-ci.

Où se situe DeepSpeed par rapport à PyTorch FSDP et Megatron-LM

DeepSpeed n'existe pas en vase clos. Deux frameworks sont en concurrence pour les mêmes charges de travail d'entraînement, et la réponse honnête quant à celui qu'il faut utiliser dépend fortement de la taille du modèle, du matériel et de l'expérience de l'équipe.

PyTorch FSDP (Fully Sharded Data Parallel) est intégré au cœur de PyTorch depuis la version 1.12 et implémente nativement la fragmentation des paramètres de type ZeRO dans le runtime. L'avantage de FSDP réside dans sa simplicité et son débit brut à moyenne échelle. Des benchmarks indépendants montrent que FSDP s'exécute jusqu'à 5 fois plus vite par itération que DeepSpeed ZeRO-3 pour les modèles de la gamme 100M-1B, car l'intégration native à PyTorch évite la surcharge au niveau de Python et utilise des chemins reduce-scatter fusionnés et optimisés. La configuration de FSDP se fait dans le code Python, sans fichier JSON externe. Le compromis pratique : FSDP ne peut pas décharger vers le NVMe, il est donc limité par la RAM totale du GPU et du CPU. Pour les modèles qui rentrent dans cette enveloppe (moins d'environ 30B en float16 sur un nœud bien équipé), FSDP devient de plus en plus le choix par défaut dans Hugging Face Trainer et TorchTitan. DeepSpeed l'emporte lorsque le déchargement NVMe ou une mémoire de classe ZeRO-Infinity est nécessaire, et à partir de 10B+ paramètres, où son implémentation mature de ZeRO-3 et son parallélisme de pipeline redeviennent compétitifs.

Megatron-LM est le framework de recherche de NVIDIA pour l'entraînement de modèles transformer à très grande échelle avec des noyaux de parallélisme de tenseurs ajustés manuellement. L'implémentation du parallélisme de tenseurs (TP) de Megatron-LM est la plus minutieusement optimisée pour le matériel NVIDIA A100/H100 avec NVLink. Ses architectures de modèles (GPT, BERT, T5) sont spécifiquement conçues pour le TP ; chaque tête d'attention et matrice de poids MLP est répartie sur les GPU avec des noyaux CUDA personnalisés. La limite réside dans le couplage étroit de l'architecture : l'exécution d'une nouvelle architecture de modèle via Megatron nécessite un effort d'ingénierie important. AutoTP de DeepSpeed, en revanche, gère le parallélisme de tenseurs de manière plus automatique pour les modèles Hugging Face. Fait crucial, Megatron-LM et DeepSpeed ne sont pas de stricts concurrents : le modèle Megatron-Turing NLG 530B (le plus grand entraînement de modèle dense documenté publiquement) a utilisé Megatron-LM pour le parallélisme de tenseurs au sein des nœuds et DeepSpeed ZeRO pour le parallélisme de données entre les nœuds. Les utilisateurs qui ont besoin du plafond absolu de débit spécifique à NVIDIA combinent souvent les deux.

Si vous utilisez Anyscale ou Ray Train pour des charges de travail distribuées, DeepSpeed s'intègre via l'interface Ray-DeepSpeed, que les équipes ont présentée lors d'un meetup conjoint en octobre 2025. Pour le suivi des expériences et le versionnage des modèles en parallèle de l'entraînement, les équipes associent DeepSpeed à MLflow. Pour le service d'inférence des modèles entraînés, vLLM est le choix dominant, bien que le propre moteur d'inférence de DeepSpeed reste compétitif pour le traitement par lots hors ligne. Les modèles de la série LLaMA fine-tunés constituent l'une des charges de travail DeepSpeed les plus courantes dans la communauté open source.

À quoi ressemble la réalité du flux de travail d'entraînement

L'écart entre la documentation et l'expérience quotidienne de l'utilisation de DeepSpeed est réel, et quiconque écrit honnêtement sur cet outil se doit de l'aborder.

La configuration d'une session d'entraînement ZeRO-3 à partir de zéro implique la rédaction d'un fichier ds_config.json contenant des dizaines de paramètres : niveau ZeRO, périphérique de déchargement (CPU ou NVMe), taille de bucket allgather, taille de bucket reduce, stage3_gather_16bit_weights_on_model_save, overlap_comm, etc. Les noms des paramètres ne sont pas toujours intuitifs. Une virgule mal placée, un champ mal orthographié ou une incohérence entre le type d'optimiseur dans la configuration et l'optimiseur instancié en Python empêchera silencieusement l'entraînement de démarrer ou, pire encore, lancera l'entraînement pour ensuite planter au milieu d'une époque. Il s'agit de la catégorie de demande d'assistance la plus courante dans les tickets GitHub de DeepSpeed.

La régression des performances d'une version à l'autre de la bibliothèque est une préoccupation documentée. Le ticket GitHub #7499 fait état d'une régression de 10 % du débit d'entraînement dans ZeRO-3 entre la v0.13.1 et la v0.15.4 jusqu'à la v0.16.9 sur des configurations 8x A100, les configurations ZeRO-1 et ZeRO-2 n'étant pas affectées :

"Après la mise à jour de DeepSpeed, lors de l'utilisation de la configuration DeepSpeed Zero3, les performances d'entraînement se sont détériorées d'environ 10 % par rapport à la version 0.13.1." -- frozenleaves, GitHub deepspeedai/DeepSpeed issue #7499, 2024

Ce type de régression est un problème sérieux pour les pipelines de production qui dépendent d'un débit stable. La solution d'atténuation utilisée par la plupart des équipes est le verrouillage des dépendances (dependency pinning), mais cela crée sa propre charge de maintenance.

Le parallélisme de pipeline (PP) dans DeepSpeed nécessite de modifier le code de l'architecture du modèle pour définir explicitement les limites des couches. Ce n'est pas trivial pour tout ce qui n'est pas un transformer standard de type GPT. ZeRO-3, en revanche, est agnostique vis-à-vis de l'architecture, c'est pourquoi la plupart des équipes optent pour ZeRO-3 + parallélisme de données avant d'envisager le PP.

L'utilisation du GPU avec ZeRO-3 sur de petits modèles ou de petits clusters peut être médiocre. La discussion GitHub #5488 documente des all-gathers fragmentés qui ne parviennent pas à se chevaucher avec le calcul sur des exécutions multi-nœuds avec des modèles plus petits. Le remède consiste généralement à utiliser ZeRO-2 ou à passer à FSDP pour cette échelle, mais diagnostiquer le problème d'utilisation en premier lieu nécessite des outils de profilage (Nsight, PyTorch Profiler) qui ont leurs propres courbes d'apprentissage.

Quand cela fonctionne bien, c'est véritablement transformateur. Exécuter un modèle de 70B paramètres sur 8 GPU A100-80GB avec ZeRO-3 est une capacité qualitativement différente de tout ce qui était à la disposition des chercheurs il y a cinq ans. Les frictions existent, mais elles sont proportionnelles à l'ampleur de ce que l'outil permet de réaliser.

À qui s'adresse DeepSpeed

DeepSpeed est conçu pour les ingénieurs ML et les chercheurs qui ont besoin d'entraîner ou de fine-tuner de grands modèles de langage (7B+) sur une infrastructure multi-GPU. L'utilisateur typique a une connaissance pratique de PyTorch, a atteint les limites de mémoire GPU avec un entraînement naïf en parallélisme de données, et est prêt à investir 1 à 2 jours dans la configuration et le débogage pour débloquer un entraînement à une échelle qui était autrement impossible.

Les équipes des instituts de recherche (EleutherAI l'a utilisé pour GPT-NeoX, BigScience pour BLOOM), les grandes entreprises technologiques (LinkedIn a documenté l'utilisation de ZeRO++ pour la distillation de LLM pour les systèmes de recommandation en novembre 2025) et les startups bien financées effectuant de l'instruction-tuning, du RLHF ou du pré-entraînement entrent toutes dans cette catégorie. L'intégration de Hugging Face Accelerate signifie que vous pouvez ajouter DeepSpeed à de nombreux scripts d'entraînement existants avec des modifications de code minimes, ce qui élargit quelque peu son accessibilité.

Ce que DeepSpeed n'est pas

DeepSpeed n'est pas adapté aux modèles de moins de 1B paramètres. À cette échelle, FSDP est plus simple à configurer, plus rapide en pratique et intégré à PyTorch. La surcharge liée à la configuration de ds_config.json et le risque de régressions liées aux versions ne sont pas justifiés lorsque le modèle tient déjà sur deux ou trois GPU standards.

Ce n'est pas un service hébergé ou une plateforme cloud. Il n'y a pas de SaaS DeepSpeed. Vous apportez votre propre puissance de calcul. Azure, AWS, GCP ou les clusters sur site (on-premise) fonctionnent tous, mais la responsabilité opérationnelle vous incombe entièrement.

Ce n'est pas un système de service d'inférence pour le trafic API en direct. Le moteur d'inférence de DeepSpeed est conçu pour l'inférence par lots optimisée pour le débit, et non pour le traitement de requêtes à faible latence. Pour les API d'inférence en production, vLLM est le choix dominant. DeepSpeed Inference est utile pour les tâches par lots hors ligne où le coût d'une infrastructure de traitement par lots continu (continuous batching) n'est pas justifié.

Ce n'est pas un outil adapté aux débutants. La documentation est exhaustive mais suppose une familiarité avec les concepts des systèmes distribués (NCCL, opérations collectives, hiérarchies de mémoire). Les chercheurs novices en matière d'entraînement distribué ont tout intérêt à commencer par l'interface plus simple de Hugging Face Accelerate, puis à ajouter la configuration DeepSpeed une fois qu'ils ont compris la signification des paramètres.

Ce n'est pas non plus un remplacement direct (drop-in) de Megatron-LM sur le matériel NVIDIA à très grande échelle. Pour les modèles denses de 500B+ où le débit en FLOP est la contrainte contraignante, les noyaux de parallélisme de tenseurs de Megatron-LM sont difficiles à battre. DeepSpeed l'emporte lorsque la flexibilité de la mémoire et la portabilité inter-matérielle comptent plus que le débit de pointe.

Avis des utilisateurs

Aucun avis pour l'instant. Soyez le premier à partager votre expérience !

Se connecter pour écrire un avis.

Présent dans les collections

Listes sélectionnées incluant DeepSpeed.

Articles associés

Guides et articles en lien avec DeepSpeed.