Skip to content

模型库与算子层 — 概念

Model Registry — model_executor/models/registry.py

vLLM 使用注册表模式将 HuggingFace 架构名映射到模型实现:

注册机制

python
# 简化的注册
@ModelRegistry.register("LlamaForCausalLM")
class LlamaForCausalLM(nn.Module):
    ...

模型目录隔离

部分模型因特殊硬件依赖(自定义 CUDA kernel、ROCm 特化注意力)从 model_executor/models/ 移到独立包:

模型位置原因
DeepSeek V4vllm/models/deepseek_v4/自定义 CUDA/DSL kernel,需要 nvidia/ops
其他标准模型vllm/model_executor/models/无特殊依赖

Registry 通过 _resolve_module_name() 支持完全限定模块路径,自动定位外部模型包。

模型接口 Mixin

vLLM 通过 Mixin 接口声明模型的能力:

Mixin说明
SupportsLoRA支持 LoRA 适配器
SupportsMultiModal支持多模态输入
SupportsMRoPE支持多维旋转位置编码
SupportsPP支持流水线并行
HasInnerState有内部状态(如 Mamba)

注意力层

层次结构

运行时后端选择

AttentionBackendSelector 根据以下条件选择后端:

  • 硬件平台(CUDA、ROCm、CPU)
  • 模型配置(head_dim、sliding window)
  • 是否启用 CUDA Graph

核心操作

注意力层需要实现两种操作:

  1. Prefill:处理完整 prompt 的注意力
  2. Decode:单 token 的增量注意力

线性层

vLLM 的线性层支持多种并行和量化模式:

权重加载

vLLM 支持多种权重格式:

加载器支持格式
default_loaderHuggingFace safetensors/bin
gguf_loaderGGUF 格式
bitsandbytes_loaderBitsAndBytes 量化权重
tensorizer_loaderTensorizer 序列化

Fused MoE — model_executor/layers/fused_moe/

Mixture of Experts 模型的核心优化:

关键优化:

  • Fused Kernel:将 router + expert 计算融合为单个 CUDA kernel
  • Expert Parallelism:专家可以分布在多个 GPU 上
  • 负载均衡:动态调整专家分配以平衡计算负载
  • Elastic EP(弹性专家并行):支持动态扩展/缩减 EP 大小,无需中断服务
  • 双流 LoRA:MoE 的 base GEMM 和 LoRA delta 使用不同 CUDA 流并行执行

MoE 后端矩阵

后端精度硬件说明
Triton MoEFP16/BF16NVIDIA默认后端,支持双流 LoRA
CUTLASS MoEW4A8 (FP8 act)NVIDIA通过 oracle 框架路由
FlashInfer B12xNVFP4SM12x (Blackwell)融合 dispatch+GEMM+SwiGLU
Marlin MoEAWQ/W4A16NVIDIAINT4 量化专家
ROCm MoEFP16/BF16AMDROCm 特化实现

Oracle 框架

MoE 后端选择现在通过 oracle 模式统一管理:

各后端通过 is_supported_config()_supports_quant_scheme() 等方法声明能力,oracle 根据模型配置自动选择最优后端。

Gated DeltaNet (GDN) — model_executor/layers/mamba/gdn/

新增的 GDN 子系统支持混合注意力模型中的线性注意力层:

  • 从 OLMo Hybrid 模型中提取出独立的 GDN 层(减少 ~650 行)
  • 支持 CPU 后端 (mamba/ops/cpu/gdn_attention.py)
  • 各模型共享 GatedDeltaNetAttention 基类,实现自己的线性注意力变体

旋转位置编码(RoPE)

vLLM 实现了多种 RoPE 变体:

变体适用模型
Default RoPELLaMA、Mistral
LongRoPE支持更长上下文
MRoPE多模态模型
Phi3 Long RoPEPhi-3

相关概念