Brief IA

DSpark dans llama.cpp : +31,5 % de génération sur Qwen3‑8B

🤖 Models & LLM·Tom Levy·

DSpark dans llama.cpp : +31,5 % de génération sur Qwen3‑8B

DSpark dans llama.cpp : +31,5 % de génération sur Qwen3‑8B
Key Takeaways
1DSpark dans llama.cpp fait passer la génération de Qwen3‑8B de 95,0 à 124,9 tokens/s à paramètres constants
2DSpark combine génération de brouillons en parallèle et composant séquentiel, avec filtrage par confiance
3Le support de modèles DSpark reste restreint et l'intégration dans llama.cpp est récente
4DeepSeek annonce 60–85 % de gain sur DeepSeek‑V4 face à MTP‑1, sans généralisation aux petits modèles locaux
💡Why it mattersDSpark offre une accélération mesurable de l'inférence locale sans ajout de GPU, mais son usage reste conditionné par la compatibilité des modèles et la maturité de l'intégration.
Le brief IA que lisent les pros

Le brief IA que les pros lisent chaque soir

Les 7 actus IA du jour, décryptées en 5 min. Gratuit.

Inclus dès l'inscription : notre sélection des meilleurs guides & comparatifs IA.

Choisis ton rythme

Gratuit · Pas de spam · Désabonnement en 1 clic

📄
Full Analysis

Un test local sous llama.cpp montre une hausse de débit de génération de 95,0 à 124,9 tokens/s avec DSpark sur Qwen3‑8B, à paramètres identiques. La technique de DeepSeek reste simple à activer mais son support de modèles est encore limité et son intégration dans llama.cpp est récente.

Le support DSpark reste limité et encore jeune dans llama.cpp

La prise en charge des modèles compatibles avec un brouillon DSpark est restreinte, ce qui limite l'expérimentation à un nombre réduit de configurations. L'intégration dans llama.cpp est récente et peut exposer à des bugs ou des instabilités selon le modèle et la version utilisés. Lors des mesures, la vitesse de traitement des prompts est plus faible avec DSpark qu'en exécution classique. Pour des sorties longues, l'intérêt principal réside dans le débit de génération de tokens, qui peut avoir un impact plus important sur le temps d'inférence global.

DSpark combine brouillon parallèle et séquentiel avec filtrage par confiance

DSpark associe une production de brouillons en parallèle à un composant séquentiel léger. Cette organisation permet aux positions de brouillon ultérieures de tenir compte des prédictions précédentes tout en conservant la rapidité d'une génération parallèle. Les approches strictement parallèles voient souvent la précision diminuer sur les tokens ultérieurs du bloc ; DSpark vise à y remédier. Le système peut estimer la probabilité de conservation des tokens lors de la vérification et supprimer les segments jugés à faible confiance. Dans llama.cpp, un seuil de confiance optionnel permet d'exposer ce comportement.

Protocole de test constant pour isoler l’effet de DSpark

Le banc d'essai s'appuie sur Qwen3‑8B sous llama.cpp en exécutant d'abord une référence sans décodage spéculatif, puis la même configuration avec DSpark. Le prompt reste identique, demandant une implémentation Python complète du tri fusion avec explications et complexités. Le décodage est déterministe avec une température de 0 et un top‑k fixé à 1. Les options de déchargement vers le GPU sont activées, avec -ngl all pour le modèle principal et l'activation de Flash Attention.

Résultats : de 95,0 à 124,9 tokens/s, soit environ 1,31×

Sans DSpark, le résumé de benchmark de llama.cpp affiche une génération à 95,0 tokens/s, valeur retenue comme référence. Avec DSpark, le modèle de brouillon est chargé via -md, le mode --spec-type draft-dspark est activé et --spec-draft-n-max est fixé à 3, avec déchargement du brouillon vers le GPU. Le résumé de benchmark indique alors une génération à 124,9 tokens/s. La comparaison donne un passage de 95,0 à 124,9 tokens/s, pour un gain d'environ 1,31×, soit environ 31,5 % plus rapide, tandis que la phase de prompt est mesurée plus lente avec DSpark.

Mise en place : compilation CUDA et modèles Qwen3‑8B en GGUF

La configuration passe par la construction de la dernière version de llama.cpp avec l'accélération CUDA, après installation de git, cmake et build-essential. Le dépôt officiel ggml-org/llama.cpp est cloné et les cibles binaires dont llama-cli sont construites. Les fichiers GGUF sont stockés dans /workspace/models et téléchargés via la CLI Hugging Face, avec authentification possible par variable HF_TOKEN. Le modèle principal Qwen3‑8B Q4_K_M est récupéré depuis Qwen/Qwen3‑8B‑GGUF, et le brouillon DSpark correspondant dspark‑Qwen3‑8B‑Q8_0.gguf depuis ggml‑org/Qwen3‑8B‑GGUF. Les tailles observées sont de l'ordre de 4,7G pour le modèle cible et 1,2G pour le brouillon.

Contexte : MTP plus répandue, DSpark promet de meilleurs brouillons

Plusieurs leviers d'optimisation existent au‑delà de l'ajout de GPU, dont la quantification, des kernels optimisés et des moteurs d'inférence améliorés. Côté décodage spéculatif, les approches traditionnelles recourent à un plus petit modèle de brouillon, la MTP anticipe plusieurs tokens et des variantes comme Medusa, EAGLE ou DFlash modulent la manière de générer des blocs candidats. La MTP est souvent présentée comme l'option la plus pratique pour l'inférence locale car plus simple et disponible sur davantage de modèles. DSpark peut cependant prendre l'avantage lorsque la qualité du brouillon accroît la part de tokens spéculatifs acceptés. DeepSeek rapporte des gains de 60 à 85 % par rapport à sa base MTP‑1 avec DeepSeek‑V4, des chiffres qui ne sont pas posés comme une attente pour un petit modèle local.

Brief IA — L'actualité IA en français

L'essentiel de l'actualité de l'intelligence artificielle, décrypté et expliqué chaque jour.