詞彙表與資料
源码版本v0.25.1
核心術語
| 術語 | 英文 | 說明 |
|---|---|---|
| 引擎參數 | EngineArgs | 全部啟動參數,派生 VllmConfig。vllm/engine/arg_utils.py |
| 全局配置 | VllmConfig | 模型/快取/排程/並行等子配置聚合體。vllm/config/__init__.py |
| LLM 離線類 | LLM | 同步離線生成入口,LLM.generate。vllm/entrypoints/llm.py |
| 非同步 LLM | AsyncLLM | EngineClient 非同步實現,服務端入口。vllm/v1/engine/async_llm.py |
| LLM 引擎 | LLMEngine | v1 薄殼,add_request/step,委託給 EngineCore。vllm/v1/engine/llm_engine.py |
| 引擎核心 | EngineCore | 真正的核心,組合 scheduler+worker+kv cache。vllm/v1/engine/core.py |
| 引擎核心行程 | EngineCoreProc | ZMQ 後臺行程殼,繼承自 EngineCore。vllm/v1/engine/core.py |
| 引擎客戶端 | EngineCoreClient | Inproc/MP/AsyncMP 客戶端 ABC。vllm/v1/engine/core_client.py |
| 同行程客戶端 | InprocClient | 不開行程,直接調 step_fn。vllm/v1/engine/core_client.py |
| 多行程客戶端 | MPClient | 多行程同步,經 ZMQ 通訊。vllm/v1/engine/core_client.py |
| 排程器 | Scheduler | waiting/running 佇列、schedule、搶佔 (preemption)。vllm/v1/core/sched/scheduler.py |
| 請求佇列 | RequestQueue | FCFS / Priority 兩種策略。vllm/v1/core/sched/queue.py |
| 連續批次 | Continuous Batching | 每步動態拼批,prefill 與 decode 混跑。vllm/v1/core/sched/scheduler.py |
| 搶佔 | Preemption | 顯存不足時把 running 請求換出,騰位置給新請求。vllm/v1/core/sched/scheduler.py |
| 執行器 | Executor | UniProc/Multiproc/Ray 三種。vllm/v1/executor/ |
| Ray 分佈式執行器 | RayDistributedExecutor | 跨節點 Ray 集群排程 worker。vllm/v1/executor/ray_distributed_executor.py |
| Worker | Worker | 分佈式環境 + GPU 執行單元。vllm/v1/worker/gpu_worker.py |
| 模型運行器 | GPUModelRunner | execute_model、input_batch、cudagraph 管理。vllm/v1/worker/gpu_model_runner.py |
| 微批 | ubatch | 在一個 step 內部把請求再切微批,適配 cudagraph。vllm/v1/worker/gpu_model_runner.py |
| CUDA 圖 | cudagraph | 預錄製的 kernel 序列,固定 shape,消除 launch 開銷。vllm/v1/worker/gpu_model_runner.py |
| 預設模型載入器 | DefaultModelLoader | 從 HF/s3 等拉權重,safetensors / pytorch 格式。vllm/model_executor/model_loader/default_loader.py |
| 列並行線性層 | ColumnParallelLinear | 權重按輸出維切分,forward 後 all-gather 或在 RowParallel 前 reduce。vllm/model_executor/layers/linear.py |
| QKV 並行線性層 | QKVParallelLinear | Q/K/V 一起按 head 切,合併 GQA/MQA 的投影。vllm/model_executor/layers/linear.py |
| 行並行線性層 | RowParallelLinear | 權重按輸入維切,forward 後 all-reduce。vllm/model_executor/layers/linear.py |
| KV 快取管理器 | KVCacheManager | block 分配與生命週期,跨 group。vllm/v1/core/kv_cache_manager.py |
| KV 快取協調器 | KVCacheCoordinator | Hybrid/Unitary/NoPrefixCache 三種。vllm/v1/core/kv_cache_coordinator.py |
| 塊池 | BlockPool | PagedAttention 塊分配 + prefix cache LRU。vllm/v1/core/block_pool.py |
| 分頁注意力 | PagedAttention | 按 block 切分 KV cache,避免連續記憶體碎片。csrc/attention/ |
| 前綴快取 | Prefix Caching | 共享前綴的 KV block 跨請求複用。vllm/v1/core/kv_cache_manager.py |
| 注意力後端 | AttentionBackend | FlashAttention/FlashInfer/Triton/MLA 抽象層。vllm/v1/attention/backend.py |
| FlashAttention | FlashAttention | Dao Labs 的 flash_attn kernel,FA2/3/4 自適應。vllm/v1/attention/backends/flash_attn.py |
| FlashInfer | FlashInfer | FlashInfer 項目 kernel,GQA/FP8/大 page 原生支持。vllm/v1/attention/backends/flashinfer.py |
| Triton | Triton | 純 Python Triton kernel,fp32 與邊緣量化兜底。vllm/v1/attention/backends/triton_attn.py |
| 潛空間注意力 | MLA | Multi-head Latent Attention,DeepSeek 系列,快取 latent + RoPE。vllm/v1/attention/backends/mla/ |
| 採樣器 | Sampler | forward/sample,logits → token。vllm/v1/sample/sampler.py |
| Logits 處理器 | LogitsProcessor | 採樣前的 logits 變換抽象,argmax-invariant 分類。vllm/v1/sample/logits_processor/interface.py |
| 並行態 | parallel_state | TP/PP/DP 通訊組全局單例。vllm/distributed/parallel_state.py |
| 組協調器 | GroupCoordinator | ProcessGroup 封裝,持 CPU/device 雙 group。vllm/distributed/parallel_state.py |
| 張量並行 | TP | Tensor Parallelism,權重按維度切,前向時 all-reduce/all-gather。 |
| 流水線並行 | PP | Pipeline Parallelism,模型按層切分到多 GPU,微批流水。 |
目錄約定
- 源碼:
vllm-project/vllm,主代碼在vllm/(Python),CUDA kernel 在csrc/。 - v0.25 已切到 v1 架構:
vllm/v1/是主戰場,vllm/engine/多為別名。 - 入口:
vllm/entrypoints/(llm.py離線、openai/server、cli/)。
官方資料
源碼版本
本站源碼版本釘定 v0.25.1,行號以該 tag 為準。所有 SrcLink 指向 github.com/vllm-project/vllm/blob/v0.25.1/<path>#Lxx-Lyy。升版本改 docs/.vitepress/site.ts 的 VLLM_TAG 再跑 npm run check:refs。