系列:vLLM 与 SGLang 框架解码手记

(六)支持的模型与选型指南:什么场景该选谁

1. 模型支持矩阵

先说结论:两家对主流模型的覆盖都很好,差异在”新模型多快能用”和”深度调优做到什么程度”。

模型规模 / 结构vLLMSGLang备注
DeepSeek-V4 / V4 ProMoE + MLA + DSA一等,DSpark 投机原生一等,cookbook 官方基准8×B300 约 250 tok/s,DSpark 比 MTP 高 12–42%
GLM-5.2MoE + DSA生产方案:NVFP4+MTP+P/D深度调优标杆Blackwell 上 500+ tok/s/user;PCP 让 prefill 20.1k→27.3k
Qwen3 / Qwen3.5 / Qwen3-VL稠密 + MoE + VLM一等(含 Transformers 后端 M-RoPE)一等注意 GPTQ + 投机的组合坑(#48816)
Step 3.7 Flash196B MoE / 激活 11B / 256K预建镜像 vllm/vllm-openai:stepfun37dev 镜像 lmsysorg/sglang:dev-step-3.7-flashFP8 / BF16 / NVFP4 + MTP / EAGLE
Step-3.5-Flash196B MoE + 3:1 滑窗官方 recipe 部署指南支持Int4 权重 vLLM 暂不支持
Step3-VL-10B10B 端侧 VLMnightly ≥ 0.14.0rc2latest main + cookbook单张 RTX 4090 可跑,AIME2025 94.43%
腾讯 Hy3295B MoE即日支持即日支持国产模型 day-one 适配案例
Llama / Mistral / Gemma 系稠密全覆盖全覆盖Gemma4 注意 NVFP4 需 0.25.1+
Cosmos3 Edge 等视频模型多模态支持(#49190 修复)—vLLM 多模态覆盖更广
HF 上刚发布的新架构任意Day-0 全速(Transformers parity)需等原生实现vLLM 明显优势
最重要的一条差异:vLLM 的 Transformers backend parity 意味着只要 HF 上有实现,新模型当天就能全速服务,不用等框架写原生 kernel。追新模型的团队,这一条往往就决定了选型。

2. 硬件支持矩阵

硬件vLLMSGLang备注
NVIDIA Hopper (H100/H200)✅ 成熟✅ 成熟FP8 原生
NVIDIA Blackwell (B200/B300/GB200)✅ FA4 + SM100 FP8 KV✅ NVFP4 深度优化SGLang 在 NVFP4 上更激进
消费级 Blackwell (SM120)✅✅ #30272 DeepSeek-V4 mxfp4 MoE + TP2单卡/双卡玩家路径
AMD ROCm✅ AITER v0.1.16.post5✅ MXFP4 (#28291)vLLM 覆盖更全
Intel XPU✅ DeepSeek-V4 fuse_index_q SYCL有限vLLM 独有优势
TPU / CPU✅有限vLLM 广度领先

结论:硬件广度上 vLLM 显著领先;但在 Blackwell + NVFP4 这个最前沿的组合上,SGLang 的调优更深。

3. 选型决策树

选 vLLM 还是 SGLang? 请求之间共享长前缀吗?(system/多轮/评测) 是,共享率高 否 / 不确定 优先 SGLang 要跑刚发布的新模型吗? · Agent / 多轮对话 · 批量评测 / 思维树 · 严格结构化输出 · 大规模 EP · NVFP4 极致调优 是 否 选 vLLM(Day-0 全速) 非 NVIDIA 硬件? 是 否 选 vLLM(ROCm/XPU/TPU) 两家都行 实践建议:不是单选题 · 两家都提供 OpenAI 兼容 API → 切换成本低,值得用自己的真实流量各压测一轮再定 · 大规模场景可以混部:Agent 主链路走 SGLang(吃前缀复用),长尾/新模型走 vLLM(吃覆盖广度) · 压测必须看 TTFT / P99 TPOT / 吞吐 三个数字,只看总吞吐会选错

4. 一句话选型口诀

重共享前缀 → SGLang;要模型 / 硬件广度 → vLLM。

展开一点:

倾向 SGLang 的信号

倾向 vLLM 的信号

5. 典型模型的部署要点

5.1 Step 3.7 Flash(196B MoE / 激活 11B / 256K)

5.2 Step-3.5-Flash:为什么又快又省

这个模型是”三手段叠加”的好例子:

  1. 3:1 混合滑窗注意力:大部分层用滑窗,把主体开销从 O(n²) 降到 O(n·w),少量全局层负责长程信息传播;
  2. MTP 自带草稿头:一步出约 4 个 token,等于自带投机解码;
  3. 稀疏 MoE:196B 总参,每 token 只激活 11B——显存吃总参,算力吃激活。
部署注意:vLLM 上 MoE / MTP 相关优化并非默认全开,需要按官方 recipe 显式配置;Int4 权重 vLLM 暂不支持。

5.3 GLM-5.2:当前调优最深的组合

生产方案是三件套叠加:NVFP4 量化 + MTP 投机 + P/D 分离。

5.4 Step3-VL-10B:端侧多模态的落地点

6. 部署实践检查清单

上线前

调参顺序建议

  1. 先把 --max-model-len 设成真实需要的值(直接决定 KV 预算)
  2. 开前缀缓存 / RadixAttention(几乎无副作用)
  3. 调 --max-num-seqs 与 gpu-memory-utilization 找吞吐拐点
  4. 再开投机解码(MTP / EAGLE),观察接受率是否 > 60%
  5. 最后才考虑量化和 PD 分离(收益大但复杂度也大)

什么时候不需要 PD 分离

7. 系列总结

六篇走下来,这条主线大概是这样:

篇主题一句话
一为什么需要引擎朴素推理浪费在”显存空洞、槽位空转、GPU 空等”
二vLLM 原理分页 KV + 连续批处理起家,靠 MRv2 消灭同步、靠广度立身
三SGLang 原理从”LLM 应用是有结构的程序”出发,靠前缀复用与前沿吞吐优化立身
四共同前沿同步停顿、投机解码、PD 分离、低比特量化四条战线互相叠加
五版本演进2026 年 7 月两家几乎同步完成架构换代,大版本后必有修复潮
六模型与选型重共享前缀选 SGLang,要广度选 vLLM,最好用真实流量各压一轮
最后一个观察:这两个引擎的竞争对使用者是纯粹的好事。一家做出 MRv2,另一家很快就有 Spec V2;一家上 NVFP4,另一家马上跟 NVFP4_AWQ。它们都提供 OpenAI 兼容接口,切换成本很低——所以不要把选型当成一次性的终身决定,定期用自己的真实流量重新压一轮就好。

相关阅读:投机解码的算法原理见推测解码手记;模型侧的 MoE、注意力与多模态结构见多模态解码手记。

觉得有用?欢迎点赞、收藏,或请作者喝咖啡 ☕️

支付宝收款码

支付宝

微信收款码

微信

💬 留言

评论由 Giscus 驱动(基于 GitHub Discussions)。 当前仓库 NaphJohn/LLM-blog 尚未启用 Discussions:请在 GitHub 仓库 Settings → General → Features 勾选 Discussions 后刷新本页,评论区即自动显示。