À l'intérieur de vLLM : Anatomie d'un système d'inférence LLM à haut débit

vLLM est l'un des moteurs d'inférence open-source les plus utilisés pour les LLM, et le récent article d'Aleksa Gordić fournit une présentation technique solide de ses internes. Il s'adresse aux développeurs curieux de savoir comment sont construits les moteurs LLM modernes, ou à ceux qui envisagent de contribuer à vLLM, SGLang et des projets similaires. L'analyse est basée sur le commit 42172ad (9 août 2025) et se concentre sur le nouveau moteur V1 (V0 est obsolète).
Composants principaux du moteur
L'article commence par la configuration synchrone hors ligne, en utilisant un simple objet LLM. Le constructeur du moteur est décomposé en plusieurs parties clés :
- Configuration vLLM – Tous les paramètres pour le modèle, le cache, le parallélisme, etc.
- Processeur – Convertit les entrées brutes en requêtes du moteur central via validation et tokenisation.
- Client du moteur central – Dans l'exemple, il s'agit d'un
InprocClientqui s'exécute dans le processus ; pour la production, vous passeriez à un client multi-processus commeDPLBAsyncMPClient. - Processeur de sortie – Convertit les sorties du moteur central en sorties de requêtes destinées à l'utilisateur.
Le moteur central lui-même contient l'exécuteur de modèle (dirigeant les passages avant), un gestionnaire de sorties structurées (pour le décodage guidé), et un planificateur avec des files d'attente en attente et en cours. Le planificateur utilise une politique (FCFS ou priorité) et inclut le gestionnaire de cache KV.
Attention paginée et cache KV
Le gestionnaire de cache KV est le cœur de l'attention paginée. Il maintient une free_block_queue de blocs disponibles, souvent des centaines de milliers selon la VRAM et la taille des blocs. La taille de bloc pour un transformateur standard (non-MLA) est calculée comme suit :
2 * block_size * num_kv_heads * head_size * dtype_num_bytes
ce qui, pour les paramètres par défaut, donne une taille de bloc pratique. Ce mécanisme de pagination permet une gestion efficace de la mémoire et un débit élevé.
Fonctionnalités avancées
L'article ne s'arrête pas aux bases. Il décrit les fonctionnalités avancées qui rendent vLLM prêt pour la production :
- Préremplissage par morceaux – Divise les longs prompts en morceaux pour les entrelacer avec la génération.
- Cache de préfixes – Réutilise le cache KV pour les préfixes partagés.
- Décodage guidé – Contraint la sortie à un schéma ou une grammaire.
- Décodage spéculatif – Utilise un modèle draft pour accélérer la génération.
- P/D désagrégé – Sépare le préremplissage et le décodage sur différents GPU.
Il couvre également la mise à l'échelle vers des configurations multi-GPU et multi-nœuds, ainsi que la couche de service pour gérer le trafic web concurrent. Des benchmarks et l'auto-tuning sont mentionnés pour mesurer la latence et le débit.
Pour les développeurs qui construisent ou étendent des systèmes d'inférence LLM, cela donne un modèle mental clair de la façon dont vLLM orchestre la planification, la mémoire et l'exécution. C'est le premier d'une série, donc attendez-vous à des plongées plus approfondies dans les sous-systèmes individuels plus tard.
📖 Lire la source complète : HN LLM Tools
👀 See Also

Problèmes et solutions de contournement liés à la compaction des sessions Claude AI
La compaction par défaut dans les sessions Claude AI peut dégrader la précision de la récupération d'environ 9,75/10 à environ 5/10, provoquant des hallucinations. L'utilisateur a testé avec 418 000 tokens et a constaté que la compaction manuelle utilisant Opus maintient la précision tandis que la compaction par défaut échoue.

Le développeur partage plus de 10 serveurs MCP pour le règlement des agents IA, la réputation et les micropaiements.
Un développeur a créé BlindOracle sur Claude Code avec plus de 100 agents et a développé plus de 10 serveurs MCP pour le règlement, la réputation et les micropaiements. L'architecture comprend des prévisions privées de type commit-reveal, un scoring sur chaîne, des micropaiements par requête et une attestation vérifiable des agents.

L'extension de navigateur wearehere analyse les sites à la recherche de risques de suivi et de menaces pour la vie privée.
wearehere est une extension de navigateur qui analyse les sites web dans dix catégories incluant les cookies, les traqueurs, l'empreinte numérique des appareils et les dark patterns, puis les note en fonction des risques pour la vie privée. Elle pèse moins de 200 Ko, s'exécute localement dans le navigateur et est également disponible sous forme de package npm pour une intégration avec les agents IA via le serveur MCP barebrowse.

Mise à jour du client React OpenClaw ajoute un modèle par agent, un outil CLI et un démarrage automatique
Le client open-source OpenClaw a reçu une mise à jour majeure avec quatre fonctionnalités clés : attribution de modèle par agent, mises à jour automatiques, un nouvel outil CLI pour la gestion et démarrage automatique après le redémarrage du système.