Aller au contenu

DeepSeek DeepInfer : son moteur d'inférence de production passe en open source

DeepSeek DeepInfer, le moteur derrière V4.1 Flash, passe sous licence Apache 2.0. Ce qu'il contient, ce qui manque encore et qui peut vraiment le faire tourner.

Piotr Sobolewski4 min de lecture

Cet article dans d’autres langues :العربيةDeutschEnglishEspañolItaliano日本語Polski简体中文

Dans cet article
  1. Qu’est-ce que DeepSeek DeepInfer ?
  2. Pourquoi ça fait autant de bruit ?
  3. Y a-t-il un piège ?
  4. Comment essayer DeepInfer ?
  5. FAQ

Le 20 octobre, DeepSeek a annoncé sur X qu’il publie en open source DeepInfer, son framework interne d’inférence. C’est sur lui que tourne le service de production DeepSeek-V4.1-Flash. Le code est sur GitHub sous licence Apache 2.0, et le fil de discussion à son sujet est arrivé en tête de Hacker News.

Qu’est-ce que DeepSeek DeepInfer ?

C’est le moteur qui prend les poids d’un modèle et les transforme en service opérationnel : il répartit le travail entre les accélérateurs, regroupe les requêtes en batchs et génère des tokens aussi vite et aussi peu cher que possible. D’après le README, c’est « the high-performance inference framework that powers DeepSeek’s large-scale production services », et la version publiée propose l’inférence hors ligne avec les fonctions clés pour servir à grande échelle.

On y trouve notamment :

  1. Les kernels maison de DeepSeek : FlashMLA, DeepGEMM, DeepEP, TileKernels et DeepSelect, des bibliothèques déjà publiées par l’entreprise, plus des kernels écrits en TileLang.
  2. Le parallélisme pour un modèle MoE (mixture-of-experts) : data parallelism pour l’attention et expert parallelism avec équilibrage des experts (EPLB).
  3. DSpark, un décodage spéculatif avec des tokens brouillons, où le modèle estime combien d’entre eux valent la peine d’être vérifiés.
  4. SWA bounded replay, qui limite le recalcul du prefill à un court segment final.
  5. L’échantillonnage déterministe (même entrée, même résultat ; pour l’instant sur NVIDIA uniquement) et les structured outputs avec regex, JSON Schema ou grammaire EBNF.

Détail intéressant : dans les remerciements, on lit que DeepInfer a été « originally built primarily on vLLM », avec des inspirations venues de SGLang et TensorRT-LLM.

Pourquoi ça fait autant de bruit ?

D’abord, c’est un virage à 180 degrés. Au printemps 2025, DeepSeek expliquait dans le dépôt open-infra-index avoir envisagé de publier tout le moteur, avant d’y renoncer : le code était un fork de vLLM très modifié, lié à l’infrastructure interne, et l’équipe n’avait pas le temps de maintenir un gros projet. À la place, DeepSeek promettait d’extraire des bibliothèques séparées. Aujourd’hui, on a droit au moteur complet.

Ensuite, le passage à l’échelle. Selon un résumé de Zhihu Frontier d’un billet technique de DeepSeek sur Zhihu, un seul cluster traite 155 000 milliards de tokens par jour, avec 96 % de succès dans le cache d’entrée, un temps moyen jusqu’au premier token d’environ 400 ms et une génération de 230 tokens par seconde (jusqu’à 300 pour le code). Ce sont des chiffres de production fournis par l’entreprise elle-même, donc prenons-les avec du recul.

Enfin, la souplesse matérielle. Deux plateformes sont prises en charge : les GPU NVIDIA d’architecture SM100 (Blackwell) et Huawei Ascend 950. Un accélérateur chinois dans le moteur de production de l’un des labos les plus en vue, c’est un sujet en soi, comme le montrent les commentaires sur HN (de « a nuclear bomb » aux questions sur les motivations).

En plus, DeepSeek a publié la bibliothèque deepseek-recipe qui, selon Zhihu Frontier, prend en charge les API Chat Completions, Responses et Messages, avec une tokenisation identique à celle de l’API officielle.

Y a-t-il un piège ?

Il y en a quelques-uns, et le README les liste ouvertement :

  1. Il manque des briques pour un service complet : un système de KV cache, la séparation du prefill et du décodage sur des nœuds distincts (même si l’essentiel de la logique est déjà dans le moteur) et le load balancing entre répliques.
  2. Un seul modèle : pour l’instant, seul DeepSeek-V4.1-Flash est pris en charge.
  3. Du matériel haut de gamme : les benchmarks du README ont été mesurés sur 4 GPU SM100 pour le prefill et 64 pour le décodage. Ce n’est pas sur la carte graphique de la maison qu’on va le lancer (et ce n’est pas le but ;)).

C’est donc plutôt une recette pour les entreprises et les clouds qui hébergent les modèles DeepSeek qu’un outil pour un passionné équipé d’un seul GPU. Mais puisque les optimisations de production sont désormais publiques, d’autres projets peuvent les reprendre : l’équipe de LightSeek a écrit sur X que son moteur TokenSpeed « will learn from and adopt these optimizations ».

Comment essayer DeepInfer ?

Si nous avons accès à des GPU SM100 ou à des Ascend 950, il suffit de Linux, Python 3.12, GCC 13+ et CUDA 13 (ou CANN 9.2 pour Ascend). On compile le projet avec ./build.sh, puis on lance python examples/offline_inference.py. Au premier lancement, le script télécharge depuis Hugging Face le checkpoint DeepSeek-V4.1-Flash-1017.

Sans ce matériel, le plus simple est de tester le modèle lui-même, par exemple DeepSeek V4.1 Flash gratuit dans OpenCode. Et si d’autres modèles ouverts nous intéressent, l’article sur Reflection Beam vaut le détour.

FAQ

DeepInfer est-il gratuit ?

Oui. Le code est sous licence Apache 2.0, on peut donc aussi l’utiliser commercialement.

DeepInfer fonctionne-t-il avec d’autres modèles que ceux de DeepSeek ?

Pas pour l’instant. Le README ne mentionne que DeepSeek-V4.1-Flash.

DeepInfer remplace-t-il vLLM ?

Pas vraiment. Il est issu de vLLM, mais il est spécialisé pour les modèles DeepSeek et deux plateformes matérielles, et il lui manque encore, entre autres, un système de KV cache pour un service complet.