Présentation du projet DeepInfer
DeepInfer est le framework d’inférence publié par DeepSeek‑AI sous licence Apache 2.0. Il a été conçu pour alimenter les services de production à grande échelle de DeepSeek et supporte le modèle propriétaire DeepSeek‑V4.1‑Flash. Le code cible les GPU NVIDIA SM100 et les NPU Huawei Ascend 950, ce qui le rend compatible avec les deux principaux fournisseurs de matériel d’accélération IA.
Architecture et optimisations techniques
Le moteur intègre plusieurs kernels optimisés – FlashMLA, DeepGEMM, DeepEP, TileKernels, DeepSelect et des kernels personnalisés TileLang – afin de réduire la latence de calcul matriciel. La parallélisation s’appuie sur trois schémas : Attention DP / balanced CP, MoE EP et EPLB, permettant de répartir la charge de travail entre les unités de traitement. Deux mécanismes de décodage avancés sont exposés via des variables d’environnement :
DEEPINFER_ENABLE_MTP_VARLEN=1
DEEPINFER_USE_NEXTN_DECODE=5 active la vérification planifiée par confiance (DSpark) et fixe la longueur maximale du draft à cinq tokens. Le decoder SWA bounded replay limite le travail de pré‑remplissage en ne rejouant qu’un suffixe borné, configurable avec DEEPINFER_YOCO_PREFILL_TRUNCATION_MODE=compact
DEEPINFER_YOCO_PREFILL_KEEP_TOKENS=140. L’ordonnancement asynchrone, activé par défaut, superpose la planification de lots CPU à l’exécution sur le dispositif, éliminant ainsi le surcoût de synchronisation. Deux options de cohérence – batch‑invariant inference (DEEPINFER_BATCH_INVARIANT=1) et deterministic sampling – garantissent que les sorties restent identiques quel que soit le découpage du lot ou le nombre de threads, conditionnées aux GPU NVIDIA.Performances mesurées et contraintes d’utilisation
Les auteurs rapportent des mesures réalisées sur 4 GPU SM100 pour le pré‑remplissage et 64 GPU pour le décodage, chaque configuration étant isolée dans un domaine de montée en charge. Le build nécessite Linux, GCC ≥ 13.0, Python 3.12, CUDA 13 (NVIDIA) ou CANN 9.2 (Ascend). Le dépôt ne fournit pas de système de cache KV ni de mécanisme de désagrégation pré‑remplissage/décodage ; ces composants doivent être intégrés séparément pour obtenir un service d’inférence complet. De plus, la répartition de charge entre les réplicas en data‑parallel reste à implémenter, ce qui impose aux opérateurs de concevoir une couche d’équilibrage externe.
Implications et limites pour les déploiements LLM
En s’appuyant sur vLLM et en s’inspirant de SGLang et TensorRT‑LLM, DeepInfer combine des concepts éprouvés avec des extensions propriétaires. La dépendance à un cache KV externe et à une infrastructure de load‑balancing signifie que le framework s’adresse principalement aux équipes disposant d’une stack d’inférence déjà établie. La prise en charge native de deux architectures matérielles élargit le champ d’application, mais la configuration spécifique (variables d’environnement, modes de pré‑remplissage) requiert une connaissance fine du pipeline de génération. Enfin, la disponibilité du code source ouvre la porte à des contributions communautaires, tout en laissant la responsabilité de la robustesse opérationnelle aux intégrateurs.