DeepSeek ouvre le code de son framework d'inférence DeepInfer

Le 20 octobre, DeepSeek a publié sur GitHub, en open source, le framework d'inférence à grande échelle qu'il utilise en interne, DeepInfer, sous licence Apache 2.0. La page d'accueil du dépôt le présente comme un framework d'inférence haute performance destiné aux modèles DeepSeek ; la version ouverte fournit les fonctions essentielles pour l'inférence hors ligne et le service à grande échelle. Un seul modèle est pour l'instant pris en charge : DeepSeek-V4.1-Flash.

Selon des informations publiques, DeepSeek a également ouvert en parallèle un composant d'encodage et de décodage de Tokens nommé deepseek-recipe, et affirme que, sur la base de ce framework, un cluster unique de V4.1 Flash atteint un débit de 155 000 milliards de Tokens par jour. Ce chiffre de débit vient de l'entreprise elle-même : la section performances du README ne présente que des courbes de débit et de latence, sans valeurs précises, et aucune mesure indépendante n'a été publiée à ce stade.

Ce que contient le dépôt

Les capacités énumérées dans le README se répartissent en quatre blocs.

Le premier concerne les noyaux de calcul et l'environnement d'exécution : FlashMLA, DeepGEMM, DeepEP, TileKernels et DeepSelect y sont intégrés, avec une série de noyaux personnalisés écrits en TileLang. DeepSeek a dévoilé les premiers de ces noms lors de sa semaine open source de l'an dernier et dans quelques publications ultérieures ; ils sont désormais réunis dans une enveloppe qui permet de lancer directement un service.

Le deuxième bloc regroupe les stratégies de parallélisme : pour l'attention, parallélisme de données associé à un parallélisme de contexte équilibré ; pour la partie MoE, parallélisme d'experts avec équilibrage de charge (EPLB).

Le troisième est le décodage spéculatif, qui s'appuie sur DSpark, ouvert fin juin par DeepSeek avec l'Université de Pékin, auquel s'ajoute un mécanisme de vérification planifié selon la confiance, avec une longueur de brouillon de 5 par défaut.

Le quatrième rassemble quelques détails d'ingénierie : l'ordonnancement des lots côté CPU chevauche l'exécution sur l'appareil et est activé par défaut ; l'attention à fenêtre glissante ne rejoue qu'un suffixe borné, ce qui économise une partie du calcul de préremplissage ; la sortie structurée accepte des contraintes par expression régulière, JSON Schema et grammaire EBNF.

L'environnement de test est décrit avec précision : 4 GPU SM100 pour le préremplissage et 64 pour le décodage, tous dans le même domaine scale-up. Les scripts de reproduction sont publiés avec le reste.

Deux plateformes matérielles, des capacités inégales

Deux familles de matériel sont listées : les GPU Nvidia de la série SM100 et les NPU Ascend 950 de Huawei. Les prérequis sont respectivement CUDA 13 et CANN 9.2, un compilateur GCC 13 ou supérieur et Python 3.12.

Deux capacités portent toutefois la mention « NVIDIA uniquement ». La première est l'inférence invariante au lot : une même requête donne la même sortie, quelles que soient les autres requêtes regroupées avec elle dans le lot. La seconde est l'échantillonnage déterministe : à entrée et paramètres d'échantillonnage identiques, le résultat est identique. Les deux sont très utiles aux équipes qui font de l'évaluation et des tests de régression, mais elles ne sont pour l'instant accessibles que sur les cartes Nvidia.

Le README reconnaît aussi honnêtement ce qui manque : le système de KV Cache, la séparation en trois étages entre encodage visuel, préremplissage et décodage, ainsi que l'équilibrage de charge entre les réplicas à parallélisme de données ne figurent pas dans cette version. Le dépôt indique que la plupart des fonctions du moteur nécessaires au déploiement désagrégé sont déjà implémentées, mais quiconque voudrait monter un service comparable à celui que DeepSeek exploite en ligne devra ajouter lui-même ces couches.

Les ouvertures de code mises bout à bout

DeepSeek ouvre son infrastructure morceau par morceau. En avril de l'an dernier, l'entreprise a publié dans le dépôt open-infra-index un document expliquant qu'elle n'ouvrirait pas directement l'intégralité du code de son moteur d'inférence interne, mais qu'elle comptait apporter à la communauté des améliorations de conception et des composants utilisables de façon autonome, par exemple pour des projets existants comme vLLM.

Le rythme suivant a globalement respecté cette logique : les bibliothèques de noyaux ont d'abord été publiées séparément, DSpark, le framework de décodage spéculatif, est sorti fin juin, et en septembre DeepSeek a dévoilé sur arXiv DSec, le socle de bac à sable pour l'entraînement d'agents. DeepInfer est la première fois que ces pièces sont assemblées en un framework déployable de manière autonome. Comparé à l'annonce d'il y a plus d'un an, selon laquelle seuls des composants seraient fournis, la porte s'est entrouverte un peu plus.

Pour les entreprises chinoises qui déploient V4.1 Flash en privé, il existe désormais une implémentation de référence officielle. Quant aux frameworks communautaires comme vLLM et SGLang, les optimisations de noyaux de DeepSeek risquent d'arriver d'abord dans son propre framework, avant d'être portées par la communauté. Le jour de sa mise en ligne, le dépôt dépassait déjà les trois mille étoiles ; la section des issues et les benchmarks externes à venir diront mieux que la courbe officielle ce qu'il donne dans les salles machines des autres.

Sources : README du dépôt GitHub DeepInfer de DeepSeek (pour vérifier le modèle pris en charge, le matériel, les fonctions réservées à NVIDIA, le nombre de cartes de test et la licence), CocoLoop, document explicatif d'open-infra-index de DeepSeek ; le débit par cluster est un chiffre de l'entreprise, non remesuré par des tiers.