词汇表与资料
源码版本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。