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

(五)版本演进时间线:2026 年 7 月的两轮换代

1. 全景时间线

2026 年 7 月是这两个引擎近年变化最密集的一个月:两家几乎同步完成了一轮架构换代,又几乎同日发布了下一个版本。

7/10 7/11-12 7/13-14 7/18-19 7/21-23 7/25 7/29-31 SGLang v0.5.15 · Spec V2 默认 +11% TPS vLLM v0.25.0 · MRv2 默认 + 删 PagedAttention vLLM v0.25.1(修 NVFP4 乱码)· SGLang v0.5.15.post1 · GLM-5.2 500 TPS 博客 SGLang main:#31468 DFlash 去 host 同步 · #31487 减 prefill 图填充 分头行动:SGLang 打磨 DSpark(#31986/#31985) · vLLM 密集修稳定性(#48524/#49302…) 同日发版:vLLM 0.26.0 + SGLang 0.5.16 · 同步停顿之战落幕 主轴转向:生产部署稳定性 · GLM-5.2 NVFP4+MTP+P/D 落地

图 1:两条产品线在 7 月的节奏几乎完全同步,说明它们面对的是同一批瓶颈。

2. vLLM 演进详解

2.1 v0.25.0(7/11–7/12):架构换代

这是跨度最大的一次升级,四件大事:

变更PR含义
Model Runner V2 成所有稠密模型默认#39337async-first、零 CPU-GPU 同步、step N 与 N+1 重叠
移除 PagedAttention#47361抽象下沉到注意力后端 kernel,分页机制本身保留
Transformers v4 弃用#40389必须迁移到 v5
Transformers backend parity—HF 有实现的新架构 Day-0 全速服务

配套还有:统一流式解析引擎(#46610)、DeepSeek V4 Pro 的 DSpark 投机解码原生支持(8×B300 约 250 tok/s,比 MTP 高 12–42%)、异构词表通用投机(#38174)、thinking-budget 感知投机(#34668)、编译要求提到 C++20。

性能特征:MRv2 的收益在中小 batch最明显——也就是真实 Agent 流量所处的区间。如果你只跑大 batch 离线任务,感知会弱很多。

2.2 v0.25.1(7/14):两个 commit 的必打补丁

发布后两天就出补丁,因为发现了一个静默正确性 bug:

跑 NVFP4(Gemma4 / Qwen 系 / GLM-5.2 等)的服务,0.25.0 必须升到 0.25.1。这个 bug 不报错、不崩溃,只是悄悄输出乱码——线上很容易漏掉。

2.3 7/18–7/25 主分支:稳定性收尾

0.25 是大改动,随之而来的是一波边缘配置修复:

PR修什么
#48524DFlash 层尺寸在 num_target_layers ≠ num_hidden_layers 时算错
#49302可中断分段 CUDA Graph 下 DSA 崩溃
#48843全量 CUDA Graph 捕获前未设 graph_pool_id
#49306FA4 JIT 预热时 MLA 回退
#48860KV Connector 延迟请求时前缀缓存指标重复计数
#49292Qwen3-VL 在 Transformers 后端的 M-RoPE
#49190Cosmos3 Edge 视频模型
#48816GPTQ 量化 Qwen3.5 开投机解码时 MTP 权重加载错误
#42569FA4 在 SM100(Blackwell)新增 FP8 KV cache 支持
#48683ROCm 升 AITER v0.1.16.post5
#45991XPU 新增 DeepSeek-V4 fuse_index_q SYCL 路径
#49244移除旧 partial-prefill 参数
#48914 / #49427FlashInfer 升 0.6.15;恢复 dequant_cache 越界守卫
vLLM 主分支 6 月日均合入约 64 个 commit。这个速度意味着:生产环境必须锁定 release tag,不要跟 main;升级前跑完整回归。

2.4 v0.26.0(7/25)

2.5 7/29–7/31:转向生产部署

版本节奏放缓后,重心转到落地:

3. SGLang 演进详解

3.1 v0.5.15(7/10):零开销 Spec V2

特性说明
零开销 Spec V2 默认draft-extend 做成 CUDA-graph 可捕获,砍 D2H/H2D,融合元数据 → 端到端 +约 11% TPS
IndexShare MTP草稿步复用目标模型的 DSA top-k 索引,长上下文草稿成本降 ~1.9×
Breakable CUDA Graph 默认图可中断,兼顾图收益与调度灵活
MLA context parallel decodingDeepSeek 系 MLA 架构的上下文并行解码
FlashInfer all-to-all MoE routingMoE 路由走 FlashInfer
原生 web search内置检索工具

同时修复了 0.5.5–0.5.12 的多模态路径穿越漏洞(GHSA-qwrp-wghp-94q2)。

3.2 v0.5.15.post1(7/14):GLM-5.2 调优

配合 lmsys 官方博客《GLM-5.2 NVFP4 500 TPS》发布:

跑 GLM-5.2 的团队应锁 post1。

3.3 7/18–7/23 主分支:投机解码持续打磨

PR内容
#31468DFlash 去除投机解码每步 host 同步——CPU 领先 GPU 一整步(pipeline),分支逻辑改为可被 CUDA Graph 捕获
#31487减少 prefill CUDA graph 填充
#31986DSpark 稠密草稿每层 ctx KV 投影堆叠为单个大 GEMM
#31985经 forward_embed 把草稿 embedding 折叠进草稿图
#31682DP attention 默认开 breakable prefill cuda graph
#31981DSA draft-extend 元数据内核跳过超 KV 长度的 page-table 列
#30272SM120 上 DeepSeek V4 flashinfer_mxfp4 MoE + TP2(消费级 Blackwell)
#24013VLM 跨请求 ViT 编码批处理(多模态并发提效)
#31825ModelOpt FP4 路径支持 NVFP4_AWQ
#31762修 marlin_nvfp4 的 routed_scaling_factor
#30924统一 per-token-group 量化内核
#30540新增 HPC-Ops attention 后端
#31109移除 QServe 与 FBGEMM FP8 量化(旧路径需迁 ModelOpt / compressed-tensors)
#32047修过期 per-token-group 量化调用方;evict_from_tree_cache 改为只驱逐 KV 缺口
#27894 / #31835NIXL 分离功能测试进 CI;PrefillDelayer 推迟到 KV-budget 准入后
把 #31468、#31986、#31985 连起来看,是一条非常清晰的主线:把投机解码里所有"每步都要回 CPU 问一下"的地方逐个消灭,把碎 kernel 合并成大 kernel,最终让整步进 CUDA Graph。省的都是加速器空转,不是算力。

3.4 v0.5.16(7/25):UnifiedRadixTree

UnifiedRadixTree 成为默认前缀缓存——统一此前分散的多种缓存路径(普通前缀缓存、分层缓存、PD 场景缓存),命中与淘汰逻辑收敛到一棵树。

3.5 7/29–7/31

4. 升级检查清单

从这一个月的踩坑里,能提炼出一份实用清单:

vLLM 0.24.x → 0.25.x/0.26.x

SGLang 0.5.x

5. 从时间线里能读出什么

  1. 两家节奏高度同步:0.25.0(7/11)vs 0.5.15(7/10),0.26.0 vs 0.5.16(同为 7/25)。说明它们面对的是同一批瓶颈,而不是各自造轮子。
  2. 大版本之后必有一波修复潮:0.25.0 之后一周内出补丁,随后两周密集修边缘配置。新版本发布后等 1–2 周再上生产是理性选择。
  3. 主分支和 release 的差距很大:SGLang 的前沿优化(DSpark GEMM 堆叠等)都在 main,稳定 tag 会滞后。要性能就跟 main 并自己压测,要稳定就锁 tag。
  4. 主轴在迁移:7 月上旬是”消灭同步停顿”,7 月下旬同日发版后,主轴转向投机解码 + 前缀缓存 + day-one 模型支持 + 生产部署。

下一篇是最实用的一篇:支持哪些模型、什么场景选谁。

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

支付宝收款码

支付宝

微信收款码

微信

💬 留言

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