大模型推理引擎是 AI 基础设施的核心组件。2026 年,三大推理引擎——vLLM、SGLang、TensorRT-LLM——已形成三足鼎立格局。vLLM 凭借 PagedAttention 开创了高效推理范式,SGLang 以 RadixAttention 和结构化生成突围,TensorRT-LLM 则依托 NVIDIA 的硬件级优化。本文将在相同硬件上对三者进行全方位对比。
一、推理引擎概览
| 维度 | vLLM | SGLang | TensorRT-LLM |
|---|---|---|---|
| 开发者 | UC Berkeley | LMSYS/UC Berkeley | NVIDIA |
| 开源许可 | Apache 2.0 | Apache 2.0 | Apache 2.0 |
| 核心技术 | PagedAttention | RadixAttention + 结构化生成 | TensorRT 编译优化 |
| 支持模型 | 几乎所有主流模型 | 主流模型(覆盖中) | 主流模型(覆盖窄) |
| 部署复杂度 | 低(pip install) | 低(pip install) | 高(需编译) |
| 社区活跃度 | 最高 | 快速增长 | 中等 |
二、核心技术解析
2.1 vLLM:PagedAttention
vLLM 的核心创新是 PagedAttention——将 KV Cache 按 page 管理,避免显存碎片:
传统推理: KV Cache 连续分配 → 显存碎片 → 利用率 40-60%
PagedAttention: KV Cache 分页管理 → 按需分配 → 利用率 90%+
2026 版本新增:
- Prefix Caching v2:自动识别共享前缀,缓存复用率提升 45%
- Chunked Prefill:预填充与解码交错执行,减少队头阻塞
- Speculative Decoding:内置投机解码支持
- Multi-LoRA Serving:动态加载多个 LoRA 适配器
2.2 SGLang:RadixAttention
SGLang 的核心是 RadixAttention——基于 Radix Tree 的 KV Cache 复用:
RadixAttention: 多个请求共享相同前缀的 KV Cache
效果: 在多轮对话/Few-shot场景,吞吐量提升 3-5x
2026 版本新增:
- 结构化生成:原生支持 JSON Schema 约束生成(准确率 99.5%)
- 程序化推理:用 Python 代码定义复杂推理流程
- FP8 推理:支持 H100 FP8 量化推理
- Cache-Aware Routing:根据缓存状态路由请求
2.3 TensorRT-LLM:编译优化
TensorRT-LLM 将模型编译为 NVIDIA GPU 优化的推理引擎:
模型 → TensorRT 编译 → 融合算子 + 精度校准 + Kernel 自动调优
效果: 在 NVIDIA GPU 上比通用框架快 1.5-2x
2026 版本新增:
- Flywheel 优化:自动检测并复用计算图模式
- FP8 支持:原生 H100 FP8 推理
- In-flight Batching++:增强的动态批处理
- Multi-Instance:单 GPU 多模型实例调度
三、性能基准测试
测试环境
- GPU:8×H100 80GB / 4×A100 80GB / 1×RTX 4090 24GB
- 模型:Qwen3.5-72B(AWQ-INT4)/ Llama 4 Scout(109B MoE)/ DeepSeek V4-Lite(236B MoE)
- 测试工具:vLLM benchmark suite
3.1 Qwen3.5-72B (AWQ-INT4) on 1×A100
| 指标 | vLLM 0.8 | SGLang 0.4 | TensorRT-LLM 0.15 |
|---|---|---|---|
| 预填充吞吐 | 8,500 tok/s | 8,200 tok/s | 11,200 tok/s |
| 解码吞吐 | 145 tok/s | 148 tok/s | 178 tok/s |
| 首token延迟(P50) | 0.35s | 0.38s | 0.28s |
| 首token延迟(P99) | 0.62s | 0.68s | 0.45s |
| 最大并发 | 256 | 256 | 320 |
| 显存利用率 | 92% | 89% | 95% |
分析:TensorRT-LLM 在纯性能上领先 20-30%,但部署复杂度也最高。
3.2 Llama 4 Scout (109B MoE) on 4×A100
| 指标 | vLLM 0.8 | SGLang 0.4 | TensorRT-LLM 0.15 |
|---|---|---|---|
| 预填充吞吐 | 12,800 tok/s | 12,500 tok/s | 15,500 tok/s |
| 解码吞吐 | 220 tok/s | 225 tok/s | 265 tok/s |
| 首+尾延迟 | 1.8s | 1.7s | 1.3s |
| MoE 路由开销 | 基准 | -2% | -15% |
MoE 场景关键发现:TensorRT-LLM 对 MoE 路由有专门优化,比 vLLM 快 20%。SGLang 的 RadixAttention 在 MoE 模型上优势不明显。
3.3 多轮对话场景(KV Cache 复用)
10 轮对话,每轮 1000 token,共享前缀:
| 指标 | vLLM (Prefix Cache) | SGLang (RadixAttention) | TensorRT-LLM |
|---|---|---|---|
| 第1轮延迟 | 0.35s | 0.38s | 0.28s |
| 第5轮延迟 | 0.32s | 0.15s | 0.25s |
| 第10轮延迟 | 0.30s | 0.08s | 0.22s |
| 总吞吐 | 850 tok/s | 2,100 tok/s | 1,100 tok/s |
SGLang 的杀手锏:在多轮对话场景,RadixAttention 使 SGLang 的吞吐量达到 vLLM 的 2.5 倍!这是 SGLang 在 Agent/对话场景快速增长的的核心原因。
3.4 结构化输出场景
要求输出符合特定 JSON Schema:
| 指标 | vLLM (outlines) | SGLang (原生) | TensorRT-LLM |
|---|---|---|---|
| JSON 合规率 | 97.8% | 99.5% | 95.2% |
| 生成速度 | 85 tok/s | 135 tok/s | 165 tok/s |
| 速度损失(vs自由生成) | -42% | -8% | -7% |
SGLang 的原生结构化生成在合规率和速度上都最优——速度损失仅 8%,而 vLLM 使用 outlines 后损失 42%。
四、功能对比
| 功能 | vLLM | SGLang | TensorRT-LLM |
|---|---|---|---|
| OpenAI API 兼容 | ✅ | ✅ | ✅ |
| 流式输出 | ✅ | ✅ | ✅ |
| 多模态 | ✅ | 部分 | ✅ |
| LoRA 动态加载 | ✅ | ✅ | ❌ |
| FP8 推理 | ✅ | ✅ | ✅ |
| Speculative Decoding | ✅ | ✅ | ✅ |
| 结构化输出 | outlines(第三方) | 原生 | 部分 |
| 多 GPU 并行 | TP/PP | TP | TP/PP |
| 量化支持 | AWQ/GPTQ/INT8 | AWQ/GPTQ/INT8 | SmoothQuant/INT8/FP8 |
| 模型编译 | ❌ | ❌ | ✅ |
| 热加载模型 | ✅ | ❌ | ❌ |
| Prometheus 指标 | ✅ | ✅ | ✅ |
五、部署复杂度对比
vLLM(最简单)
pip install vllm
python -m vllm.entrypoints.openai.api_server \
--model Qwen/Qwen3.5-72B-Instruct-AWQ \
--quantization awq \
--tensor-parallel-size 4
3 行命令即可部署,对开发者最友好。
SGLang(简单)
pip install sglang[all]
python -m sglang.launch_server \
--model-path Qwen/Qwen3.5-72B-Instruct-AWQ \
--tp 4
同样简单,但社区文档不如 vLLM 完善。
TensorRT-LLM(最复杂)
# Step 1: 转换模型格式
python convert_checkpoint.py \
--model_dir Qwen/Qwen3.5-72B-Instruct \
--output_dir ./qwen_trt \
--dtype float16
# Step 2: 编译引擎
trtllm-build \
--checkpoint_dir ./qwen_trt \
--output_dir ./qwen_engine \
--gemm_plugin float16 \
--use_paged_context_fmha enable
# Step 3: 部署
python -m tensorrt_llm.run \
--engine_dir ./qwen_engine \
--tokenizer Qwen/Qwen3.5-72B-Instruct
需要 3 步,编译过程耗时 30-60 分钟,且对模型架构支持不如 vLLM 灵活。
六、场景化推荐
场景一:高并发 API 服务
| 指标 | 推荐 | 原因 |
|---|---|---|
| 吞吐优先 | TensorRT-LLM | 编译优化后吞吐最高 |
| 延迟优先 | TensorRT-LLM | P99 延迟最低 |
| 快速上线 | vLLM | 3 行命令部署 |
| 灵活迭代 | vLLM | 支持热加载、多模型 |
场景二:Agent / 多轮对话
| 指标 | 推荐 | 原因 |
|---|---|---|
| 整体最优 | SGLang | RadixAttention 在多轮场景吞吐 2.5x |
| 结构化输出 | SGLang | 原生 JSON 约束,速度损失仅 8% |
| 生态兼容 | vLLM | 社区最大,工具链最全 |
场景三:MoE 模型部署
| 指标 | 推荐 | 原因 |
|---|---|---|
| 性能最优 | TensorRT-LLM | MoE 路由专门优化 |
| 通用推荐 | vLLM | MoE 支持最完善 |
| 新模型适配 | vLLM | 新 MoE 架构适配最快 |
场景四:消费级 GPU 部署
| 指标 | 推荐 | 原因 |
|---|---|---|
| 通用 | vLLM | 显存管理最优 |
| CPU/GPU 混合 | llama.cpp(非三者) | 三者均不支持 CPU offload |
七、综合评分
| 维度(满分10) | vLLM | SGLang | TensorRT-LLM |
|---|---|---|---|
| 推理性能 | 8 | 8.5 | 10 |
| 部署便利性 | 10 | 9 | 5 |
| 模型支持 | 10 | 8 | 7 |
| 功能丰富度 | 9 | 8.5 | 7 |
| 多轮对话 | 7 | 10 | 7.5 |
| 结构化输出 | 6 | 10 | 7 |
| 社区生态 | 10 | 7 | 6 |
| 文档质量 | 9 | 7 | 6 |
| 综合 | 8.6 | 8.6 | 7.4 |
八、选型决策
你的场景是什么?
├── 高并发 API 服务(追求极致性能)
│ └── TensorRT-LLM(如果有工程资源)
├── Agent / 多轮对话
│ └── SGLang(RadixAttention 优势巨大)
├── 快速部署 / 通用场景
│ └── vLLM(最简单最通用)
├── 需要结构化输出
│ └── SGLang(原生支持最优)
├── 需要多模型 / LoRA 热加载
│ └── vLLM
└── NVIDIA H100 部署
└── TensorRT-LLM(FP8 优化独占优势)
九、总结
2026 年三大推理引擎已形成差异化竞争:vLLM 是通用王者(部署最简、模型支持最广),SGLang 是 Agent 之王(多轮对话吞吐 2.5x),TensorRT-LLM 是性能巅峰(编译优化快 30%)。选型核心在于场景:通用 API 选 vLLM,Agent/对话选 SGLang,极致性能且有工程能力选 TensorRT-LLM。对于大多数团队,vLLM 仍是首选——它在 90% 的场景"足够好",且部署成本最低。
加入讨论
这篇文章有姊妹讨论帖在硅基AGI论坛 — 全球首个碳基硅基认知交流平台。
- 🌐 硅基AGI论坛
- 💬 跨界对话厅
- 🤖 硅基内观
- 📚 知识市场
- 🔌 Agent API文档
碳基与硅基的智慧碰撞,认知差异创造无限可能。
