Glossaire et ressources
源码版本v0.25.1
Termes clés
| Terme | Anglais | Explication |
|---|---|---|
| Paramètres du moteur | EngineArgs | Tous les paramètres de lancement, dérive VllmConfig. vllm/engine/arg_utils.py |
| Configuration globale | VllmConfig | Agrégat des sous-configs modèle/cache/scheduling/parallélisme. vllm/config/__init__.py |
| Classe LLM offline | LLM | Entrée synchrone de génération offline, LLM.generate. vllm/entrypoints/llm.py |
| LLM asynchrone | AsyncLLM | Implémentation async de EngineClient, entrée server-side. vllm/v1/engine/async_llm.py |
| Moteur LLM | LLMEngine | Coquille fine v1, add_request/step, délègue à EngineCore. vllm/v1/engine/llm_engine.py |
| Cœur du moteur | EngineCore | Le vrai cœur, compose scheduler + worker + kv cache. vllm/v1/engine/core.py |
| Processus du cœur | EngineCoreProc | Enveloppe de processus arrière ZMQ, hérite d'EngineCore. vllm/v1/engine/core.py |
| Client du moteur | EngineCoreClient | ABC des clients Inproc/MP/AsyncMP. vllm/v1/engine/core_client.py |
| Client in-process | InprocClient | N'ouvre pas de processus, appelle step_fn directement. vllm/v1/engine/core_client.py |
| Client multi-processus | MPClient | Synchrone multi-processus, communique via ZMQ. vllm/v1/engine/core_client.py |
| Ordonnanceur | Scheduler | Files waiting/running, schedule, préemption (preemption). vllm/v1/core/sched/scheduler.py |
| File de requêtes | RequestQueue | Deux stratégies : FCFS / Priority. vllm/v1/core/sched/queue.py |
| Batching continu | Continuous Batching | Assemble dynamiquement les batches à chaque étape, mixte prefill et decode. vllm/v1/core/sched/scheduler.py |
| Préemption | Preemption | Quand la mémoire GPU est saturée, swap out les requêtes running pour libérer de la place. vllm/v1/core/sched/scheduler.py |
| Exécuteur | Executor | Trois types : UniProc/Multiproc/Ray. vllm/v1/executor/ |
| Exécuteur Ray distribué | RayDistributedExecutor | Ordonnance les workers sur un cluster Ray multi-nœuds. vllm/v1/executor/ray_distributed_executor.py |
| Worker | Worker | Unité d'exécution distribué + GPU. vllm/v1/worker/gpu_worker.py |
| Runner de modèle | GPUModelRunner | execute_model, input_batch, gestion cudagraph. vllm/v1/worker/gpu_model_runner.py |
| Micro-batch | ubatch | Dans un step, re-découpe les requêtes en micro-batchs pour s'adapter au cudagraph. vllm/v1/worker/gpu_model_runner.py |
| CUDA graph | cudagraph | Séquence de kernels préenregistrée, shape fixe, élimine le surcoût de lancement. vllm/v1/worker/gpu_model_runner.py |
| Chargeur de modèle par défaut | DefaultModelLoader | Tire les poids depuis HF/s3 etc., formats safetensors / pytorch. vllm/model_executor/model_loader/default_loader.py |
| Couche linéaire colonne-parallèle | ColumnParallelLinear | Poids découpés sur la dimension de sortie, all-gather après forward ou reduce avant RowParallel. vllm/model_executor/layers/linear.py |
| Couche linéaire QKV parallèle | QKVParallelLinear | Q/K/V découpés ensemble par head, fusionne les projections GQA/MQA. vllm/model_executor/layers/linear.py |
| Couche linéaire ligne-parallèle | RowParallelLinear | Poids découpés sur la dimension d'entrée, all-reduce après forward. vllm/model_executor/layers/linear.py |
| Gestionnaire de cache KV | KVCacheManager | Allocation et cycle de vie des blocks, inter-groupes. vllm/v1/core/kv_cache_manager.py |
| Coordonnateur de cache KV | KVCacheCoordinator | Trois variantes : Hybrid/Unitary/NoPrefixCache. vllm/v1/core/kv_cache_coordinator.py |
| Pool de blocks | BlockPool | Allocation des blocks PagedAttention + LRU du prefix cache. vllm/v1/core/block_pool.py |
| Attention paginée | PagedAttention | Découpe le KV cache en blocks pour éviter la fragmentation mémoire. csrc/attention/ |
| Cache de préfixe | Prefix Caching | Réutilise les KV blocks de préfixes communs entre requêtes. vllm/v1/core/kv_cache_manager.py |
| Backend d'attention | AttentionBackend | Couche d'abstraction FlashAttention/FlashInfer/Triton/MLA. vllm/v1/attention/backend.py |
| FlashAttention | FlashAttention | Kernel flash_attn de Dao Labs, auto-adaptatif FA2/3/4. vllm/v1/attention/backends/flash_attn.py |
| FlashInfer | FlashInfer | Kernel du projet FlashInfer, support natif GQA/FP8/large page. vllm/v1/attention/backends/flashinfer.py |
| Triton | Triton | Kernel Triton en pur Python, fallback fp32 et quantization edge. vllm/v1/attention/backends/triton_attn.py |
| Attention à latent | MLA | Multi-head Latent Attention, série DeepSeek, cache le latent + RoPE. vllm/v1/attention/backends/mla/ |
| Sampler | Sampler | forward/sample, logits → token. vllm/v1/sample/sampler.py |
| Processeur de logits | LogitsProcessor | Abstraction de transformation des logits avant sampling, classification argmax-invariant. vllm/v1/sample/logits_processor/interface.py |
| État de parallélisme | parallel_state | Singleton global des groupes de communication TP/PP/DP. vllm/distributed/parallel_state.py |
| Coordonnateur de groupe | GroupCoordinator | Encapsulation ProcessGroup, tient des groupes CPU/device. vllm/distributed/parallel_state.py |
| Parallélisme de tenseurs | TP | Tensor Parallelism, poids découpés par dimension, all-reduce/all-gather au forward. |
| Parallélisme de pipeline | PP | Pipeline Parallelism, modèle découpé par couches sur plusieurs GPU, pipeline de micro-batchs. |
Conventions de répertoire
- Code source :
vllm-project/vllm, code principal dansvllm/(Python), kernels CUDA danscsrc/. - v0.25 est passé à l'architecture v1 :
vllm/v1/est le terrain principal,vllm/engine/est surtout des alias. - Entrées :
vllm/entrypoints/(llm.pyoffline,openai/server,cli/).
Ressources officielles
- Documentation officielle vLLM
- Documentation de design vLLM
- Dépôt GitHub (tag v0.25.1, licence Apache-2.0)
Version du code source
Ce site pointe vers la version v0.25.1 ; les numéros de ligne se réfèrent à ce tag. Tous les SrcLink visent github.com/vllm-project/vllm/blob/v0.25.1/<path>#Lxx-Lyy. Pour monter de version, modifier VLLM_TAG dans docs/.vitepress/site.ts puis lancer npm run check:refs.