Electrosens R&D
Electrosens NVIDIA DGX Spark · 11 November 2026

LLM open source sur NVIDIA GB10 DGX Spark : fine-tuning BF16, MoE et clusters — l’état de l’art à l’automne 2026

Et si vous pouviez affiner un modèle de 35 milliards de paramètres en pleine précision BF16, sans quantification, sur une simple station de travail posée sur votre bureau ? C’est le pari relevé par une démonstration communautaire qui repousse les limites de la mémoire unifiée du DGX Spark. Mais depuis, la machine a considérablement évolué : la release logicielle d’octobre 2026 (DGX OS 8), les trois optimisations MoE publiées par NVIDIA fin octobre, de nouveaux modèles open-weight comme DeepSeek V4 Flash 0731 ou Qwen3.8-27B, des clusters à deux nœuds mesurés à ~350 tok/s agrégés, des moteurs d’inférence matures — et, depuis le 7 octobre 2026, une bascule « hybrid intelligence » de Windows qui rebat les cartes. Plongée dans une prouesse technique qui pourrait bien changer la donne pour le fine-tuning local de grands modèles MoE.

Le GB10 en octobre 2026 : une promesse tenue, et une gamme qui se dédouble

Le DGX Spark n’est pas un simple PC avec une carte graphique. Il embarque le superpuce NVIDIA GB10, qui combine un processeur Grace (ARM à 20 cœurs Neoverse V2) et un GPU Blackwell sur un même substrat, avec une mémoire unifiée LPDDR5X de 128 Go accessible à la fois par le CPU et le GPU. Cette architecture, héritée des supercalculateurs DGX, élimine le goulot d’étranglement du transfert PCIe entre mémoire système et VRAM. Pour PyTorch, environ 119 Go sont utilisables – 9 Go étant réservés par le firmware GPU.

Comparé à une configuration GPU classique (par exemple, une RTX 5090 avec 32 Go de VRAM), le DGX Spark offre un espace mémoire quatre fois plus grand, mais avec une bande passante inférieure (environ 273 Go/s contre 1,8 To/s pour une H100). Ce compromis est acceptable pour l’inférence, mais pour l’entraînement, la bande passante devient un facteur limitant. Cependant, la mémoire unifiée permet de charger des modèles bien plus volumineux sans avoir à les quantifier – un avantage décisif pour la précision.

Depuis sa sortie, la machine a bénéficié de plusieurs évolutions logicielles. La mise à jour de juillet 2026 avait notamment amélioré la gestion des OOM (Out Of Memory) : selon les notes de version officielles de NVIDIA, le pilote inclus « améliore la gestion des Out-of-Memory avec l’architecture à mémoire unifiée du GB10 », et un retour utilisateur est désormais disponible lorsque le système subit une pression mémoire. La même mise à jour avait introduit une mémoire d’affichage ajustable (2 Go par défaut, 4 Go via le BIOS) et étendu le support Cloud-init (DHCP, HTTP, TFTP) pour la gestion de flotte en entreprise.

Mais le vrai tournant, c’est la release d’octobre 2026, dont le déploiement a commencé le 21 octobre, comme l’a annoncé NVIDIA sur les forums développeurs : « DGX Spark software updates began rolling out today, as a part of our October 2026 Release ». Cette mouture fait passer la pile de DGX OS 7.x à DGX OS 8, avec des pilotes rafraîchis, des conteneurs réorganisés et un firmware à reflasher dans le bon ordre. Les systèmes partenaires basés sur GB10 (Asus, Dell, HP, Acer, Lenovo) reçoivent les mêmes mises à jour, mais avec un décalage possible. À noter : les versions précises de chaque composant (CUDA Toolkit, pilote GPU, UEFI, SoC) doivent être vérifiées dans le tableau des versions logicielles publié par NVIDIA pour la release d’octobre — les numéros exacts évoluent à chaque release et ne doivent pas être recopiés d’une version antérieure.

Côté prix, la version Asus Ascent GX10 (1 To de stockage SSD NVMe) est proposée à 2 760 € en France, tandis que la version NVIDIA Founders Edition (4 To) affiche 3 689 €, selon Capital. Des tarifs agressifs qui expliquent l’engouement des développeurs, même si le verdict communautaire de mai 2026 indiquait que 70-80 % des acheteurs préféraient le Strix Halo d’AMD pour un usage généraliste. Le DGX Spark reste néanmoins le choix naturel pour les workflows CUDA-only : fine-tuning intensif, vLLM optimisé, recherche ML.

La gamme, elle, s’est dédoublée. NVIDIA a officialisé le 2 octobre 2026 une DGX Spark à 64 Go de mémoire unifiée, vendue 4 999 $ — plus cher que la version 128 Go lancée à 3 999 $ en 2025, dans un marché mémoire en pleine flambée. Elle doit entrer en vente le 23 octobre, rapporte kod.ru, soit 1 000 $ de plus que le prix de lancement de l’originale. Une SKU au rabais qui divise la communauté, tant le prix au gigaoctet de mémoire unifiée y est défavorable. NVIDIA a d’ailleurs publié le 30 octobre un workflow edge AI dédié à cette version 64 Go, avec des benchmarks de décodage spéculatif pour Nemotron-3.5 Lightning — signe que la SKU basse capacité vise d’abord l’inférence d’agents, pas le fine-tuning lourd.

Face à elle, la concurrence s’organise : l’AMD Ryzen AI Halo 192 Go, lancé à 7 299,99 $ chez Micro Center, est le premier desktop compact capable de charger des modèles open-weight de 300 milliards de paramètres — mais les benchmarks indépendants montrent que le DGX Spark garde l’avantage en vitesse. Et NVIDIA prépare le terrain au-dessus avec la DGX Station for Windows (748 Go de mémoire cohérente, 20 PFLOPs FP4, lancement Q4 2026 via six partenaires OEM), qui n’est pas un remplacement du Spark mais un étage supérieur.

Fine-tuning haute précision : la démo 35B BF16 et ses enseignements

Le fine-tuning de grands modèles de langage (LLM) est longtemps resté l’apanage des fermes de GPU professionnelles – clusters H100, A100, ou au minimum une carte graphique avec 24 Go de VRAM. L’arrivée du DGX Spark a déjà bouleversé les habitudes en permettant l’inférence locale de modèles jusqu’à 200 milliards de paramètres en FP4. Mais l’entraînement, lui, restait un défi : la mémoire unifiée de 128 Go, bien que généreuse, semblait trop juste pour loger un modèle de 35B en BF16 avec ses gradients et optimiseurs.

Mémoire et bande passante : DGX Spark vs GPU classiquesDGX Spark — mémoire un128Go / Go/sDGX Spark — mémoire ut119Go / Go/sRTX 5090 — VRAM (Go)32Go / Go/sDGX Spark — bande pass273Go / Go/sH100 — bande passante 1800Go / Go/s

C’est dans ce contexte qu’une démonstration publiée sur les forums NVIDIA par un développeur sous le pseudonyme kreuzhofer a fait l’effet d’une petite bombe : le fine-tuning LoRA en BF16 du modèle Qwen3.5-35B-A3B – un Mixture-of-Experts (MoE) de 35 milliards de paramètres totaux, dont seulement 3 milliards actifs par token – sans aucune quantification. L’exploit repose sur une astuce de chargement qui contourne le piège du mmap, et sur l’architecture mémoire unifiée du GB10. Si les détails précis de la procédure restent encore partiellement documentés, le simple fait de pouvoir envisager un tel fine-tuning sur une machine à moins de 3 700 € ouvre des perspectives inédites pour les développeurs et chercheurs.

Depuis cette démonstration, le paysage a considérablement évolué. À l’automne 2026, le fine-tuning sur DGX Spark est devenu un sujet central, documenté par la communauté et les outils spécialisés. Le blog d’Unsloth, la bibliothèque de fine-tuning la plus populaire pour le matériel grand public, a publié un guide complet dédié au DGX Spark, confirmant que la plateforme est désormais officiellement supportée — NVIDIA a même relayé ce guide sur son blog RTX AI Garage. Les techniques vont du simple LoRA au QLoRA 4-bit, en passant par le full fine-tune en BF16 pour les modèles jusqu’à 8-12B. Pour les modèles plus gros, le LoRA reste la voie royale, avec des gains mémoire significatifs grâce à l’optimisation d’Unsloth (20 % de mémoire en moins, contexte 2× plus long pour le fine-tuning d’embeddings).

D’autres dépôts communautaires ont émergé pour industrialiser la démarche : waybarrios/dgx-spark-finetune-llm propose un pipeline LoRA complet, et spark.enverge.ai documente un tutoriel pas à pas. Le blog mikihands.com a de son côté documenté un fine-tuning de FLUX 1-dev (12B, modèle dense) sur DGX Spark, confirmant que la mémoire unifiée permet de maintenir une utilisation stable de ~71,4 Go pendant l’entraînement, avec une consommation électrique de pointe de 89-90W et une température stabilisée autour de 84-86°C. Ces chiffres donnent une idée de la marge disponible pour un modèle plus gros comme Qwen3.5-35B-A3B.

Le piège du mmap : pourquoi le chargement par défaut fait planter le DGX Spark

Lorsqu’on charge un modèle avec la méthode standard safe_open() (utilisée par Hugging Face Transformers), le mécanisme de mmap (memory mapping) charge les shards du modèle dans le cache de pages du système. Ensuite, PyTorch matérialise les tenseurs en mémoire CUDA. Problème : le cache de pages et les tenseurs CUDA coexistent dans la même mémoire unifiée. Pour Qwen3.5-35B-A3B en BF16, les shards pèsent 67 Go, et la matérialisation des tenseurs en CUDA nécessite à nouveau ~67 Go, soit un total de ~134 Go – bien au-delà des 119 Go disponibles.

Le dépôt kreuzhofer rapporte un échec à 66 % du chargement (680/1026 poids), avec un OOM. C’est un piège classique des systèmes à mémoire unifiée : le mmap double la consommation mémoire apparente. La solution de contournement développée par kreuzhofer consiste à charger les shards séquentiellement sans mmap, en libérant le cache après chaque chargement. Les détails techniques exacts ne sont pas publics, mais le principe est connu : utiliser torch.load() avec map_location='cuda' et forcer la libération du cache avec torch.cuda.empty_cache() entre chaque shard.

Cette astuce permet de loger le modèle BF16 complet en mémoire unifiée, sans quantification. Selon Unsloth, le fine-tuning LoRA en BF16 nécessiterait environ 74 Go au total (modèle + adaptateurs + états optimiseurs + gradients + activations). C’est une estimation non vérifiée expérimentalement, mais plausible au vu des 119 Go disponibles – il reste une marge de 45 Go pour les données et le cache. La release d’octobre 2026 a d’ailleurs renforcé la gestion des OOM sur mémoire unifiée, ce qui rend ce type de chargement séquentiel plus robuste qu’au printemps.

La parade : une astuce de chargement pour éviter la quantification

La quantification (QLoRA 4-bit, FP8) est souvent présentée comme la seule voie pour fine-tuner de grands modèles sur du matériel grand public. Mais elle introduit une perte de précision qui peut dégrader la qualité, surtout pour des tâches fines comme le raisonnement mathématique ou l’adaptation à un domaine spécialisé. La démonstration de kreuzhofer montre qu’avec le DGX Spark, on peut s’en passer.

Source : youtube.com

Le dépôt GitHub (kreuzhofer/dgx-spark-unsloth-qwen3.5-training) fournit un script d’entraînement utilisant Docker et Unsloth. Les arguments documentés incluent --max_steps, --batch_size (exemple à 1), --dataset, --num_train_epochs. Les données sont au format JSONL (ShareGPT/ChatML). En revanche, les hyperparamètres LoRA (modules cibles, rang, alpha, optimiseur) ne sont pas spécifiés. C’est une lacune importante : sans savoir quelles couches sont ciblées (q_proj, v_proj, etc.), il est difficile de reproduire l’expérience ou d’évaluer son efficacité.

Unsloth, la bibliothèque de fine-tuning utilisée, est réputée pour son optimisation mémoire. À l’automne 2026, elle supporte officiellement le DGX Spark et propose des recettes pour LoRA, QLoRA et full fine-tune. La documentation couvre désormais les modèles MoE, y compris les 35B et plus, avec des recommandations précises sur les hyperparamètres. Axolotl, l’autre framework populaire, est également compatible, offrant une alternative pour ceux qui préfèrent une configuration par fichier YAML.

Les modèles open-weight stars du DGX Spark à l’automne 2026

Le paysage des modèles open-weight a considérablement évolué depuis la démonstration de kreuzhofer. Voici les modèles qui tournent le mieux sur le DGX Spark, selon les forums, benchmarks et tests récents :

  • DeepSeek V4 Flash 0731 : sorti le 31 juillet 2026, c’est un MoE de 284 milliards de paramètres totaux avec 13 milliards actifs par token, un contexte d’un million de tokens, et des poids mixtes FP4 + FP8 (les 48 fichiers safetensors pèsent 167 Go sur Hugging Face). Il embarque le module DSpark, un décodeur spéculatif fusionné dans le même checkpoint. Sur un seul DGX Spark, il atteint ~30 tokens/s en configuration par défaut, avec une amélioration possible via un changement de config (acceptance rate). Sur un cluster de deux DGX Spark en TP=2 avec vLLM, les mesures donnent ~41 tok/s en single-stream, ~350 tok/s agrégés à concurrence 32 et ~1 785 tok/s de prefill — des performances d’agent privé de niveau frontière, selon les tests de flowtivity.ai avec Hermes Agent. Le dépôt vLLM Recipes propose une recette officielle pour ce modèle, et les conteneurs NVIDIA NGC arm64 sont disponibles. C’est aussi l’un des modèles mis en avant lors de la keynote Microsoft du 7 octobre 2026 consacrée à l’IA locale sous Windows.
  • Qwen3.8-27B : sorti en août 2026, ce modèle de 27 milliards de paramètres (dense) atteint 34-38 tokens/s sur un seul DGX Spark selon les tests de blog.openzeka.com (20 août 2026). Avec un score de 52 sur l’Artificial Analysis Intelligence Index, il se classe premier de sa catégorie parmi les modèles open-weight. Il supporte le speculative decoding MTP (Multi-Token Prediction) : la variante Flash-Next atteint 83 à 138 tokens/s avec une accélération de 1,67× sans perte de qualité (source : banandre.com, 2 septembre 2026).
  • Qwen3.6-27B : sorti le 22 avril 2026, avec une version NVFP4 publiée le 26 juin 2026. Il offre 256K tokens de contexte, un score MMLU de 0,8446 en NVFP4, et des vitesses supérieures à 30 tok/s sur un seul Spark.
  • Ling-3.0-flash (Inclusion AI) : c’est le modèle de référence des trois optimisations MoE publiées par NVIDIA le 27 octobre 2026 sur son blog technique. Sur ce modèle, NVIDIA a ramené le temps par token de sortie de 27,71 ms à 9,72 ms, soit un gain de débit de 42,5 %. Attention toutefois : la ré-exécution du benchmark GSM8K montre que seule une partie de ce gain synthétique survit à une charge réelle — un point que la communauté a immédiatement relevé.
  • Nemotron-3.5 Lightning : mis en avant par NVIDIA le 30 octobre 2026 dans un workflow edge AI dédié à la DGX Spark 64 Go, avec benchmarks et résultats de décodage spéculatif à l’appui.

Pour les modèles plus modestes, llama.cpp reste la voie la plus simple : sur un 35B-A3B en GGUF, les mesures communautaires atteignent jusqu’à 67 tok/s sur un seul Spark — un débit qui rend l’inférence interactive confortable, même si la quantification est de rigueur.

Les trois optimisations MoE de NVIDIA : 27,71 ms → 9,72 ms par token

Le 27 octobre 2026, NVIDIA a publié sur son blog technique trois techniques pour accélérer l’inférence mixture-of-experts sur DGX Spark, avec une évaluation en batch-size 1 de Ling-3.0-flash. Le message est clair : générer des tokens plus vite commence par identifier ce qui limite l’inférence. Sur un GB10, le goulot n’est pas le calcul brut mais la bande passante mémoire (~273 Go/s) et la façon dont les experts sont sollicités à chaque token.

Source : huggingface.co

Les trois leviers — détaillés dans l’article du magazine consacré aux 42,5 % de NVIDIA — portent sur la sélection et le routage des experts, la gestion du cache et l’ordonnancement des noyaux. Le résultat mesuré : le temps par token de sortie passe de 27,71 ms à 9,72 ms. Mais la ré-exécution du GSM8K, mentionnée par blog.neticslabs.com le 31 octobre 2026, montre que le gain réel sur une charge de raisonnement est plus modeste que le chiffre synthétique. C’est une nuance essentielle : les 42,5 % sont un plafond théorique, pas une promesse de bout en bout.

Pour le fine-tuning, ces optimisations comptent indirectement : elles libèrent de la bande passante et réduisent la pression sur le pool mémoire unifié, ce qui laisse plus de marge aux activations et aux gradients pendant l’entraînement. Mais elles ne remplacent pas les techniques de chargement séquentiel décrites plus haut.

Clusters : ce que deux DGX Spark changent vraiment

Le cluster à deux nœuds est devenu le configuration de référence pour les gros modèles. Reliés par ConnectX-7 (200 Gb/s), deux DGX Spark peuvent charger jusqu’à 405 milliards de paramètres — au-delà des 284B de DeepSeek V4 Flash. En TP=2 avec vLLM et DeepSeek-V4-Flash FP8, les chiffres canoniques sont : ~41 tok/s en single-stream, ~350 tok/s agrégés à concurrence 32, et ~1 785 tok/s de prefill. C’est le passage à l’échelle le plus rentable du marché : deux machines à ~3 700 € pièce offrent un débit agrégé qu’aucune carte unique grand public ne peut approcher sur des modèles de cette taille.

Le cluster a aussi ses limites. La latence inter-nœuds pénalise les petits batchs, et le fine-tuning distribué reste expérimental : la plupart des recettes communautaires (Unsloth, Axolotl) ciblent un seul nœud, et le passage à deux nœuds pour l’entraînement demande une configuration NCCL soignée. Pour l’inférence d’agents, en revanche, c’est déjà une réalité : les tests de flowtivity.ai avec Hermes Agent sur deux Spark montrent un comportement d’agent privé de niveau frontière, sans appel API externe.

Moteurs d’inférence : vLLM, llama.cpp, TensorRT-LLM — et le piège du « out of the box »

Trois familles de moteurs cohabitent sur le GB10. llama.cpp est le plus simple : GGUF, quantification, jusqu’à 67 tok/s sur un 35B-A3B, idéal pour l’usage interactif. vLLM est le plus performant pour les gros modèles et le serving multi-utilisateurs, mais il ne tourne pas « out of the box » sur le GB10 : il faut une recette adaptée (vLLM Recipes), des conteneurs NGC arm64 et une configuration TP explicite. TensorRT-LLM est pré-installé dans DGX OS et offre les meilleures performances sur les modèles supportés, au prix d’une conversion de checkpoint.

Source : recipes.vllm.ai

La release d’octobre 2026 a réorganisé les conteneurs et rafraîchi les pilotes, ce qui a amélioré la compatibilité vLLM — mais aussi introduit des régressions sur certains workflows, comme le documente l’article du magazine consacré à DGX OS 8. La règle pratique : vérifier la version du conteneur NGC avant de lancer un run de fine-tuning, et ne pas mélanger les recettes d’avant et d’après octobre.

Pour multiplexer plusieurs modèles sur les 128 Go, le duo LiteLLM + llama-swap s’est imposé : il permet de basculer d’un modèle à l’autre sans recharger, en gardant les poids chauds en mémoire unifiée. C’est la réponse pragmatique au problème du « un seul gros modèle à la fois ».

Windows « hybrid intelligence » : ce que le 7 octobre 2026 change pour le GB10

Le 7 octobre 2026, Microsoft a publié un billet fondateur qui acte un changement de doctrine : Windows ne se contente plus d’héberger des runtimes IA, il prétend devenir le chef d’orchestre de votre parc de calcul. Le « tissu de calcul unifié » met NPU, GPU et GB10 dans le même sac, et la keynote a mis en avant DeepSeek V4 Flash comme modèle de démonstration de l’IA locale.

Pour le DGX Spark, la réalité est plus nuancée. Windows ne remplace pas DGX OS : le Spark tourne sous Ubuntu Server ARM, et les workflows de fine-tuning (Unsloth, Axolotl, vLLM) restent sur Linux. Ce que Windows apporte, c’est une couche d’orchestration côté client — un PC Windows peut piloter un Spark sur le réseau et exposer ses agents. La DGX Station for Windows (748 Go, 20 PFLOPs FP4, Q4 2026) est la machine de référence de cette vision, pas le Spark. En clair : le 7 octobre change la façon dont Windows parle au Spark, pas ce que le Spark sait faire.

Ce qu’octobre 2026 a changé côté logiciel (et pourquoi ça compte pour le fine-tuning)

Trois évolutions méritent d’être retenues pour quiconque fine-tune sur GB10. D’abord, DGX OS 8 : nouveau socle, pilotes rafraîchis, conteneurs réorganisés, firmware à reflasher dans le bon ordre. Ensuite, la gestion des OOM renforcée : le retour utilisateur en cas de pression mémoire permet de diagnostiquer un run qui échoue, au lieu de voir le processus tué sans explication. Enfin, les optimisations MoE publiées fin octobre, qui réduisent la pression sur la bande passante et laissent plus de marge aux activations.

Les réglages qui font ou cassent un run restent les mêmes : rang et alpha du LoRA (un rang trop élevé fait exploser la mémoire des optimiseurs), learning rate (plus bas en BF16 qu’en 4-bit), longueur de séquence (le contexte long coûte cher en activations), et surtout le chargement séquentiel sans mmap pour les modèles dont les shards dépassent la moitié de la mémoire disponible. Sur un 35B-A3B en BF16, c’est ce dernier point qui fait la différence entre un OOM à 66 % et un run qui aboutit.

Sources

Article recherché et rédigé automatiquement · Magazine Electrosens
📬 Restez à la pointe
Recevez chaque semaine les nouveautés de ce magazine par email.
💬 Une remarque, une correction ?
Aidez-nous à améliorer cet article. Nous prenons en compte vos retours.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *