Ce qui se passe
Le 21 octobre 2026, vLLM annonce la prise en charge de Flint, le modèle de Recursive, dès le jour de sa sortie. Flint est un modèle à experts (MoE) de 40 milliards de paramètres dont environ 2,5 milliards actifs par token, avec un contexte de 262 000 tokens. Il existe en deux points de contrôle, NVFP4 (quantifié, entraîné en tenant compte de la quantification) et BF16, qui tournent chacun sur un seul GPU. Une requête isolée y décode à environ 500 tokens par seconde sur un GB200, même avec 100 000 tokens de contexte.
Pourquoi il est léger
L'architecture compte 49 couches, dont 35 n'attendent qu'une fenêtre glissante de 513 tokens ; seules 14 regardent tout le contexte et gardent un cache clé-valeur complet. Le cache coûte donc 28 kibioctets par token. Le reste : attention GQA avec 32 têtes de requête pour 4 têtes clé-valeur, 256 experts (top-6 sigmoïde plus un expert partagé), les deux premières couches étant denses.
Le point de contrôle NVFP4 est un fichier GGUF dont vLLM réarrange les blocs sans perte au chargement ; il tourne en poids seuls (W4A16), avec activations et cache en BF16. Selon vLLM, la précision égale l'implémentation de référence sur GSM8K, GPQA-Diamond, MRCR long contexte et une suite d'appels d'outils.
Où est le gain de vitesse
La première version, bâtie sur les couches standard de vLLM, était lente aux petits lots : un pas de décodage lançait 1 096 noyaux, réglés pour de gros lots. L'équipe les a remplacés un par un, en vérifiant chaque étape contre la référence :
- normalisation Q/K, RoPE et écriture du cache fusionnées : −8 %
- noyaux MoE pour petits lots : −27 %
- produit matrice-vecteur dense pour petits lots : −25 %
- normalisation et SiLU : −10 % · attention de décodage : −5 %
- chemin de décodage à faible latence (jusqu'à 8 requêtes) : −14 %
Au total, le décodage NVFP4 passe de 4,81 à 1,78 ms (×2,7), le BF16 de 3,53 à 2,34 ms, un préremplissage de 8 192 tokens de 207 à 145 ms, et une passe avant tombe de 1 096 à 346 noyaux. De bout en bout, 2,06 ms par token à 100 000 tokens de contexte (environ 485 tokens/s).
Lancer Flint
L'image Docker vllm/vllm-openai:flint (x86_64 et arm64, CUDA 13.0) le contient.
Le support est en cours de fusion dans vLLM (PR #62938) : avec un build à jour,
vllm serve accepte les mêmes arguments.
docker run --gpus all --ipc=host -p 8000:8000 \
-v ~/.cache/huggingface:/root/.cache/huggingface \
vllm/vllm-openai:flint RecursiveSI/flint \
--enable-auto-tool-choice --tool-call-parser glm47 \
--reasoning-parser glm47 --exclude-tools-when-tool-choice-nonePour la version NVFP4, remplacer le modèle par RecursiveSI/flint-nvfp4-gguf et
ajouter --hf-config-path RecursiveSI/flint --tokenizer RecursiveSI/flint.
Notes d'usage : Flint produit des appels d'outils et des blocs de réflexion au
format GLM-4.7, d'où les analyseurs glm47 ; l'échantillonnage par défaut est
température 1,0, top-p 0,95, top-k 20 ; la réflexion compte dans max_tokens, donc
prévoir au moins 32 000 pour les problèmes difficiles.
La limite
Les noyaux visent un seul GPU Blackwell (TP=1, cache clé-valeur en BF16) ; toute autre configuration retombe sur les couches standard de vLLM. Les 500 tokens par seconde viennent d'un GB200, un GPU de centre de données : le billet ne donne aucune mesure sur du matériel grand public.
Source : vLLM, 21 octobre 2026. Source en anglais.