deepseek-v4
DeepSeek V4.1 : sa nouvelle boîte à outils d'inférence
DeepSeek-V4 Team · 14 septembre 2026 · 6 min read
Keywords: deepseek v4.1, inférence open source, deepselect, deepjit
Published: 14 septembre 2026 Author: DeepSeek-V4 Team
Trois dépôts DeepSeek mis à jour la même semaine prennent tout leur sens lorsqu'on les considère ensemble. DeepSelect accélère une opération TopK spécifique. DeepJIT compile et met en cache les kernels dispositifs. deepseek-recipe traduit les conversations au format API en prompts et analyse la sortie du modèle en réponses. Aucun ne constitue un serveur d'inférence complet, mais ensemble ils exposent des couches souvent cachées derrière un seul endpoint.
Cette distinction compte car une « inférence plus rapide » est fréquemment rapportée comme s'il s'agissait d'un seul bouton. En réalité, une requête peut perdre du temps lors de la validation, du rendu en tokens modèle, de la planification, de l'exécution sur accélérateurs, de l'échantillonnage et de la conversion en réponse streaming. Optimiser une couche peut être précieux sans produire la même amélioration en pourcentage de bout en bout.
DeepSelect : un TopK rapide et volontairement spécialisé
DeepSelect 1.0 implémente des kernels TopK pour DeepSeek Sparse Attention (DSA) et l'échantillonnage. Son README indique que DSA est utilisé dans DeepSeek V3.2, V4 et V4.1. Le projet rapporte une accélération de 2 à 20× par rapport à torch.topk standard, mais ce chiffre appartient aux formes de test prises en charge, et non à la génération complète du modèle.
Les contraintes sont concrètes. Le chemin Lightning Indexer accepte bfloat16, de petites valeurs topk inférieures ou égales à 4096, ainsi que des batches et vocabulaires petits et grands. Le chemin d'échantillonnage utilise float32, cible un vocabulaire d'environ 128K et limite également topk à 4096. Les lignes d'entrée nécessitent un alignement spécifique et les appelants peuvent devoir les aligner avec du padding.
Plusieurs options révèlent où la vitesse pratique se trouve. Si les indices n'ont pas besoin d'être ordonnés, la sortie triée doit être désactivée. Si les valeurs sont inutiles, return_value=False ignore cette sortie ; le projet indique que cela est environ 10 % plus rapide pour l'opération. Ce sont des gains au niveau API, pas une intelligence modèle mystérieuse.
Il y a aussi une politique NaN stricte. La vérification est toujours activée et le comportement par défaut trappe et aborte lorsqu'un NaN est trouvé. Cela peut être approprié pour détecter tôt une computation corrompue, mais un service d'inférence doit décider comment un crash worker est isolé et rapporté.
DeepJIT : compilation unique, réutilisation vérifiée
DeepJIT se situe plus bas dans la stack. C'est un runtime C++20 header-only pour la JIT-compilation de kernels sur les GPU NVIDIA CUDA et les NPU Huawei Ascend. L'interface partagée couvre la compilation, le caching binaire, le chargement et le launch, tandis que la source du kernel et les options spécifiques au backend restent séparées.
Le caching est sa fonctionnalité opérationnelle centrale. Les clés de cache prennent en compte la source, les includes tracked, les versions du compilateur, les options effectives du compilateur et une signature de dépendance fournie par l'application. Ce dernier champ compte quand le code généré dépend de quelque chose que le parseur d'include ne peut pas voir. Si une bibliothèque met à jour CUTLASS mais laisse la signature extra inchangée, une clé de cache apparemment valide pourrait représenter le mauvais artifact.
DeepJIT supporte les caches mémoire et disque, y compris un stockage partagé avec comportement POSIX pour le rename atomique et fsync. Plusieurs workers peuvent compiler la même entrée, puis réutiliser le résultat publié. Un cache personnel writable peut aussi précéder un cache partagé read-only. C'est une réponse pratique au coût de démarrage à froid sur les clusters, pourvu que le répertoire partagé soit de confiance.
Le support matériel n'est pas une symétrie magique. CUDA nécessite des en-têtes CUDA récents et NVCC ; Ascend nécessite la toolchain Bisheng, des en-têtes CANN, ACL et torch_npu. Le runtime unifié réduit la logique hôte dupliquée, mais les opérateurs maintiennent toujours deux écosystèmes matériels.
deepseek-recipe : la couche protocole est une vraie ingénierie
À la boundary request, deepseek-recipe fournit des bibliothèques Rust et des bindings Python pour convertir les requêtes Messages, Chat Completions et Responses en une représentation Conversation partagée. Il peut alors encoder des prompts DeepSeek V4 ou V4.1 et analyser la sortie générée dans le format attendu par l'appelant.
Le contenu pris en charge inclut le texte, les images, la réflexion et les appels d'outils client. Les paramètres de génération couvrent l'effort de raisonnement, la température, top-p et les limites de sortie. Le format Responses peut porter des namespaces d'outils et un outil personnalisé apply_patch. Pour les images V4.1, le prétraitement est fourni via OpenCV.
Les omissions sont tout aussi utiles. La bibliothèque ne fournit pas model inference, HTTP transport ou tool execution. Le web search server-side est unsupported. Elle n'impose pas strict JSON Schema ou regex outputs, ne stocke pas les conversations via previous_response_id, ou ne récupère pas les files by ID. Une équipe construisant un endpoint compatible OpenAI doit toujours fournir ces services.
Comment les couches s'articulent
| Layer | Project | Primary job | Does not provide |
|---|---|---|---|
| API and prompt | deepseek-recipe | Convert request formats; encode V4/V4.1 prompts; parse output | HTTP server, inference, tool execution |
| Kernel runtime | DeepJIT | Compile, cache, load, and launch CUDA/Ascend kernels | Model scheduler or model weights |
| Selection kernel | DeepSelect | TopK for DSA and sampling in supported shapes | End-to-end inference engine |
Une requête hypothétique entre via un service API. deepseek-recipe la valide et la normalise, puis rend le prompt correct. Un moteur d'inférence planifie le travail du modèle et utilise des kernels matériels, dont certains peuvent être compilés et mis en cache via DeepJIT. Pendant l'attention sparse ou l'échantillonnage, un appel TopK pris en charge peut utiliser DeepSelect. Les tokens générés remontent ensuite via l'analyseur recipe vers une réponse API streaming.
Ce diagramme contient une glue hypothétique importante. DeepSeek ne claim pas que installing ces trois repositories crée un serveur V4.1. Le planificateur, l'exécution distribuée, les poids, la couche HTTP, l'authentification, les quotas, l'observabilité et le véritable exécuteur d'outils restent en dehors du périmètre combiné.
Qui devrait s'y intéresser
Les ingénieurs d'inférence peuvent utiliser ces projets comme des building blocks concrets ou des références lisibles. Les équipes de plateforme API tireront la valeur la plus immédiate de deepseek-recipe ; les auteurs de kernels de DeepJIT et DeepSelect. Les développeurs d'applications appelant un modèle hébergé n'ont pas besoin de les installer.
Pour les évaluateurs, la conclusion rigoureuse est modeste : DeepSeek ouvre plus de la machinerie autour de V4 et V4.1, et les interfaces montrent où ses ingénieurs dépensent leur effort. Le benchmark de DeepSelect n'est crédible que dans ses formes publiées. DeepJIT peut réduire la recompilation, pas les tokens de génération. deepseek-recipe améliore la cohérence du protocole, pas la précision du modèle.
Ces limites rendent les versions plus utiles, pas moins. Un composant spécifié étroitement peut être benchmarké, remplacé et débogué. La mise à jour intéressante n'est pas une affirmation de vitesse dramatique ; c'est une pile devenant plus facile à inspecter couche par couche.
Sources vérifiées le 14 septembre 2026 : DeepSelect, DeepJIT et deepseek-recipe.