DeepSeek-V4 on Day 0: From Fast Inference to Verified RL with SGLang and Miles

发表时间: 2026-04 · Blog post by The SGLang and Miles Team (lmsys.org)

原文: https://lmsys.org/blog/2026-04-25-deepseek-v4

作者/机构:The SGLang and Miles Team (April 25, 2026)

速读

一句话结论
SGLang 和 Miles 团队在 DeepSeek-V4 发布首日,针对其混合稀疏注意力、流形约束超连接和 FP4 专家权重等全新架构,构建了首个支持全量推理与强化学习训练的开源系统栈,实现了接近百万上下文长度下的平稳高吞吐解码与稳定的强化学习训练。

要解决什么问题
DeepSeek-V4 的新架构引入了多个严重的系统级卡点。首先是前缀缓存失效:该模型每层混合使用滑动窗口注意力(SWA)和压缩注意力(C4 稀疏或 C128 稠密),导致系统必须在预填充、解码和投机解码阶段,强行维持三个异构 KV 池和两个压缩状态池的生命周期一致性,传统缓存假设彻底崩溃。其次是投机解码的调度瓶颈:混合注意力需要极其繁重的元数据(如页面索引、映射槽位、压缩计划),若在 CPU 调度流上急切准备这些数据,其发射开销会直接吞噬投机解码的收益。第三是显存与访存灾难:在 1M 上下文下,C4 稀疏注意力的索引器每步会产生 256K 个候选者,传统的全局排序耗时超过 100 微秒,直接阻塞流水线;而朴素的 KV 压缩操作需要 5 次 HBM 读写,导致压缩本身的开销甚至高于注意力计算;此外,C4 层绝大部分 KV 缓存处于非活跃状态,全量驻留 GPU 会造成极大的显存浪费。最后,在强化学习训练端,模型新增的随机算子(如 MoE 路由和索引器 Top-K)以及混合精度下的长轴 Softmax 累加,极易引发数值溢出和训练跑飞。

怎么做的
针对前缀缓存,作者提出了 ShadowRadix 机制。其核心思路是建立一个统一的“虚拟全 Token 槽位”基数树,将生命周期解耦:从虚拟槽向物理池(SWA、C4、C128)投射“影子”映射。系统为每个节点维护双计数器,当滑动窗口移出时,SWA 计数器归零并释放 SWA 物理槽,但节点及其 C4/C128 的压缩 KV 影子依然存活,供后续请求进行前缀匹配。嵌套的环形影子天然继承了这一特性,其物理地址定义为 $\text{swa\_page} \times \text{ring\_size} + \text{pos} \bmod \text{ring\_size}$,释放 SWA 页面会自动使内部的环失效。为了兼容投机解码,只需将环形缓冲区大小翻倍(如 C4 从 8 增至 16),即可确保被拒绝的草稿写入不会覆盖活跃窗口。针对调度瓶颈,采用图内元数据准备,将复杂的索引算术逻辑全部融合进 CUDA Graph,Python 端仅传入原始批次状态,彻底消除单步发射开销。针对显存与访存卡点,引入三个关键设计:一是 HiSparse 架构,利用 C4 层的稀疏性,将非活跃的压缩 KV 卸载到 CPU 内存池,GPU 仅保留小容量活跃工作集,通过 LRU 策略异步换入换出;二是 Flash Compressor,将 5 阶段的压缩流水线融合成单次片上处理,把 HBM 往返次数从 5 次砍到 2 次;三是 Lightning TopK,用 8 线程块集群的基数选择归约替代全局排序,各 CTA 构建局部 10 位基数直方图并归约出阈值,仅分散高于阈值的条目。在强化学习端,Megatron-LM 后端实现了全维度并行,其中上下文并行(CP)通过 All-gather 巧妙处理了 C4 压缩组的跨卡重叠偏移;同时引入路由重放(R3)和实验性的索引器重放机制来对齐随机算子,并将压缩器反向传播中容易因 BF16 累加产生大数吞小数偏差的 All-reduce 操作强制切换为 FP32,以保住数值稳定性。

效果如何
实验在 30K 截断的《红楼梦》长文本提示词下进行,硬件采用 B200(运行 1.6T Pro 模型,TP=8)和 H200(运行 285B Flash 模型,TP=4),对比基线为官方配方下的“其他开源引擎”(原文未具名)。在推理吞吐方面,得益于 ShadowRadix 和图内元数据优化,SGLang 在 4K 到 900K 上下文长度内吞吐量几乎保持平坦,衰减不到 10%(B200 上从 199 降至 180 tokens/s,H200 上从 266 降至 240 tokens/s)。在微观算子层面,HiSparse 使长上下文服务的整体吞吐量提升高达 3 倍;Flash Compressor 达到了 H200 峰值显存带宽的 80%,比朴素 PyTorch 实现快 10 倍以上;Lightning TopK 将小批次 Top-K 延迟压缩至约 15 微秒。在强化学习端,使用 32 张 GB300 跑 285B 模型(FP8 rollout + BF16 训练),首步 rollout 与训练的 log-prob 漂移仅约 0.023,奖励和评估分数稳步增长。该方案的代价与局限在于:RL 端的索引器重放机制目前仍是实验性功能,尚未经过端到端验证;此外,为了保证 RL 训练的绝对确定性(如固定 cuBLAS 工作区、关闭 TransformerEngine 非确定路径),系统牺牲了约 10% 到 15% 的训练吞吐量。对比基线在长上下文(200K+)下出现了超时失效,且其 MTP 投机解码在 H200 上因内核断言失败只能退化为 MTP-1。

一、 主要贡献

SGLang 和 Miles 团队在 DeepSeek-V4 发布首日(Day-0)即实现了对其推理和强化学习(RL)训练的全面支持。SGLang 和 Miles 构成了首个在发布当天服务和训练 DeepSeek-V4 的开源技术栈,其系统专门针对该模型的混合稀疏注意力架构、流形约束超连接(mHC)以及 FP4 专家权重进行了定制化构建。该技术栈全面支持了 DeepSeek-V4 的 1.6T Pro 版本和 284B Flash 版本。

在推理层面(缓存与注意力),系统引入了 ShadowRadix 前缀缓存、HiSparse CPU扩展 KV、带有图内元数据的 MTP 投机解码、Flash Compressor、Lightning TopK 以及分层多流重叠技术。在推理内核与部署层面,实现了快速的内核集成(包括 FlashMLA、FlashInfer TRTLLM-Gen MoE、DeepGEMM Mega MoE、TileLang mHC),支持 DP/TP/CP 注意力、DeepEP 上的 EP MoE 以及 PD 分离。在 RL 训练层面,实现了全并行策略(DP/TP/SP/EP/PP/CP)、Tilelang 注意力、增强的稳定性控制以及 FP8 训练。该系统广泛支持 Hopper、Blackwell、Grace Blackwell、AMD 以及 NPU 等硬件平台。

DeepSeek-V4 首日发布的解码吞吐量:SGLang 对比其他开源引擎
图1:在截取自《红楼梦》的 30K token 提示词下,SGLang 与其他开源引擎的解码吞吐量对比。针对每个引擎,均基于其官方建议尝试了尽力而为的投机解码配置。

二、 背景知识与模型关键特性

DeepSeek-V4(1.6T Pro, 284B Flash)在三个核心维度上对其前代 DeepSeek-V3.2 进行了扩展,这些架构特性直接驱动了底层系统的设计:

混合稀疏注意力(Hybrid sparse-attention):模型的每一层都将滑动窗口注意力(SWA,覆盖最后128个原始token)与两种压缩机制之一进行混合。这两种压缩机制分别为 C4(在 4:1 压缩的 KV 上进行 top-512 的稀疏注意力计算)或 C128(在 128:1 压缩的 KV 上进行密集注意力计算)。这种设计使得 1M token 的上下文窗口变得易于处理。

流形约束超连接(mHC, Manifold-Constrained Hyper-Connections):这是对标准残差连接的一种泛化设计,旨在改善梯度流并提升表示质量。

FP4专家权重(FP4 expert weights):模型原生采用 FP4 MoE 专家权重,以便在最新的 Blackwell 硬件上实现高效的模型服务。

三、 方法细节与系统设计

ShadowRadix:面向混合注意力的原生前缀缓存

混合注意力的缓存挑战:DeepSeek-V4 的每一层都将 SWA(针对最后128个原始token)与 C4(针对 4:1 压缩 KV 的 top-512 稀疏注意力)或 C128(针对 128:1 压缩 KV 的密集注意力)结合使用。此外,为了维护进行中的压缩 KV 槽,每个压缩层都设有一个状态池,用于存储正在进行中的压缩状态。这种复杂的机制打破了传统前缀缓存的假设:三个异构的 KV 池和两个压缩状态池必须在 Prefill(预填充)、Decode(解码)和投机解码过程中保持一致。图1展示了 $N = 1024$ 示例的逐层混合注意力作用域。
图1 混合注意力作用域

核心理念与基数树索引:为了解决上述一致性问题,系统引入了 ShadowRadix——一种专为混合注意力设计的原生前缀缓存机制。其核心理念是使用一棵基数树(radix tree)来索引虚拟全 token 槽(virtual full-token slots),这是一个由所有层共享的统一坐标系统。从每个槽中,系统将阴影(shadows,即每个池的索引映射)投影到物理池(SWA / C4 / C128)中。压缩状态的环形缓冲区(ring buffers)位于它们自己的池中,但第二级算术阴影会将每个环槽从 SWA 页面索引中映射出来——在逻辑上嵌套于 SWA 内部,但在物理上是独立的。这种设计使得生命周期得以解耦:一旦滑动窗口移过某个节点,墓碑机制(tombstoning)就会释放该节点的 SWA 槽,而其 C4/C128 的阴影则保持活跃且可共享。因此,一个 10k token 的请求只需保留 128 个 SWA token 加上其完整的 C4/C128 压缩 KV,而这些压缩 KV 正是其他前缀匹配请求可以重用的内容。
图2 ShadowRadix 存储布局

双计数器锁与安全匹配:由于阴影仅仅是同一源在不同池中的投影,每个池可以独立管理自己的生命周期。系统通过为每个节点引入双计数器锁(two-counter lock)来利用这一点:full_lock_ref 覆盖源(进而覆盖其 C4/C128 阴影),而 swa_lock_ref 仅跟踪该节点是否仍然落在某人的滑动窗口内。当 SWA 计数器归零时,系统会丢弃该节点的 SWA 槽,但该节点仍保留在树中,其压缩阴影继续为前缀匹配提供服务。匹配过程通过要求从匹配点开始有 128 个连续的活跃 token 延伸入窗口,来保持SWA安全(SWA-safe)。嵌套的环形阴影免费继承了这一特性:由于环槽的地址是 $swa\_page \times ring\_size + pos \pmod{ring\_size}$,释放一个 SWA 页面会自动使其内部的环失效,无需任何额外的跟踪。同时,环大小的选择确保了 MTP 回滚不会与环绕(wrap)发生竞争。

投机解码的兼容性:投机解码无需对该设计进行任何更改即可运行。唯一的问题是,草稿 token 在验证决定接受哪些 token 之前就被写入了环中,因此一个被拒绝后重试的步骤可能会发生环绕,并覆盖仍然属于活动窗口的槽。通过在投机下加倍环大小(C4: 8 -> 16, C128: 128 -> 256),系统留出了足够的余量,使得任何进行中的投机写入都会落在活动窗口之外,因此 EAGLE 实现了开箱即用。

投机解码(Speculative Decoding)

单层 MTP 头支持与图内融合:DeepSeek-V4 搭载了一个单层 MTP 头——这是一个独立训练的 DSv4 解码器层,仅运行 SWA 注意力(无压缩器,无索引器),并结合了上一步的隐藏状态($h\_proj$)和下一个 token 的嵌入($e\_proj$)作为其输入。系统在首日即支持了该功能;真正的系统级工作发生在更底层。混合注意力的元数据非常庞大,在调度器流上急切地准备这些数据会成为投机解码下的启动瓶颈。因此,系统将这种准备工作融合到了草稿(draft)和验证(verify)阶段的 CUDA 图(CUDA graph)中。

双重优化驱动加速:

不同上下文长度下的 DeepSeek-V4 解码吞吐量
图3:混合稀疏注意力结合 ShadowRadix 和图内投机元数据,使得 SGLang 的解码吞吐量从 4K 到 900K 基本上保持平稳——接近模型完整的 1M 上下文窗口。在 B200(199 -> 180 token/s)和 H200(266 -> 240 token/s)上,性能下降均低于 10%。

HiSparse:使用分层内存为稀疏注意力提供涡轮增压

非活跃 KV 缓存的 CPU 卸载:近期引入的 HiSparse 是一种将非活跃 KV 缓存卸载到 CPU 内存的技术,从而为稀疏注意力实现更大的批大小和更高的吞吐量。HiSparse 与 C4 层天然契合:在每一步中,索引器的 top-k 仅接触一小部分压缩位置,因此绝大多数 C4 KV 在任何时刻都是非活跃的,可以存放在 CPU 上。由于 C128 是密集的(每个位置都会被接触)且 SWA 本身就很小(128 个 token),因此两者都无法从卸载中获益。通过使用 CPU 内存池来专门扩展 C4 KV 缓存池,系统将长上下文服务的整体 token 容量和吞吐量提高了最高 3 倍。
HiSparse 架构 HiSparse 峰值吞吐量
左图:GPU 仅保留小型设备缓冲区用于 C4 KV 缓存的活跃工作集,而一个更大的锁定 CPU 镜像则存储全上下文 KV 缓存。在每一步中,HiSparse 协调器从 CPU 换入未命中的页面,并使用 LRU 策略驱逐非活跃的 GPU 页面。新生成的 token 会异步备份到 CPU 镜像中。右图:在 2xB200 上,200K输入 / 20K输出,$swa\_full\_tokens\_ratio=0.001$ 配置下 DeepSeek-V4-Flash 的峰值吞吐量。

快速内核集成(Fast Kernel Integrations)

各种内核优化(Various Kernel Optimizations)

系统详细阐述了以下两个具有代表性的内核优化方案:
图5 两个通用的内核级优化
图5:两个通用的内核级优化。左图:Flash Compressor 将朴素的 5 阶段压缩链融合为一次片上计算,将 HBM 往返次数从 5 次削减至 2 次。右图:Lightning TopK 用 8 节点集群的 radix-select 归约替换了全局排序——每个 CTA 构建一个局部的 10 位基数直方图,集群对直方图进行归约以挑选出一个精确容纳 K = 512 个候选者的阈值,然后每个 CTA 仅分散(scatter)其高于阈值的条目。

Flash Compressor:IO感知精确压缩:压缩注意力通过在每个 token 的分数上进行 softmax 加权平均,将一组 token 压缩为一个 KV。一个朴素的实现会访问 HBM 五次,并在非连续的维度上运行 softmax,因此压缩本身的成本往往高于其所馈送的压缩注意力。系统将整个管道融合为一个单一的片上通道(图5,左),其中 C4 的 softmax 保持在 warp 级别,而 C128 则采用单一的 CTA 级别归约。在 H200 上,这可以达到高达 80% 的峰值内存带宽,并且比朴素的 PyTorch 管道快10倍以上。

Lightning TopK:稀疏注意力依赖于索引器中的 top-k 选择步骤。在 4:1 压缩下,1M token 的上下文仍然会为每个请求产生 256K 个候选者。在这个规模下,即使在 batch size 为 1 的情况下,朴素的实现也可能需要超过 100 微秒,这超过了上游索引器 GEMM 和下游稀疏注意力内核的延迟。系统通过为长上下文解码提供自定义的基数选择内核(radix-select kernel)来解决这个问题。该内核不执行完整的全局排序,而是缩小候选集,并使用带有异步拷贝的 CUDA 集群启动来增加并行度,使内存移动与选择重叠。这避免了昂贵的全局排序和通过 HBM 进行的跨 CTA 同步,有效地将小 batch top-k 延迟降低到约 15 微秒,并在大 batch size 下保持高性能。

并行性与部署(Parallelism and Deployment)

分层多流重叠(Hierarchical Multi-Stream Overlap)

注意力准备阶段由一群小内核组成——Q/KV 投影、压缩器、索引器——在小 batch 时,每个内核都无法填满 GPU。此时,串行启动的开销开始主导解码过程。

系统在两个层面上将它们跨 CUDA 流扇出(图6)。顶层并行运行四个准备操作。索引器是其中最繁重的,因此在其内部再次进行拆分——Q 投影、权重投影和压缩器 GEMM 也相互重叠。诸如 $q\_lora\_ready$ 和 $q\_scale\_ready$ 等事件一旦完成依赖关系就会在流之间进行交接,因此没有任何操作需要等待整个流排空。
图6 用于注意力准备的两级流扇出
图6:用于注意力准备的两级流扇出,具有细粒度的 $q\_lora\_ready$ / $q\_scale\_ready$ 事件,跨流链接依赖的工作。

该机制在 CUDA 图内部运行,且仅在小 batch 时触发——因为大的预填充已经使设备饱和,重叠不会带来任何额外收益。

四、 补充细节(强化学习 —— Miles 支持)

图4 DeepSeek-V4 的首日验证 RL 管道
图4:DeepSeek-V4 的首日验证 RL 管道:Miles 和 SGLang 共同提供了稳定性(R3 和索引器重放,Step-0 训练-推理差异约 0.02-0.03)、效率(DP/TP/SP/EP/PP/CP,Tilelang 内核,FP8/BF16 rollout 和训练)以及广泛的硬件支持(Hopper, Blackwell, Grace Blackwell)。

训练后端:Megatron-LM 中的 DeepSeek-V4 建模

对于 DeepSeek-V4,由于全新的模型架构(例如复杂的压缩注意力、新的稀疏-MLA 和索引器模块以及 mHC 层),大部分算子被重新构建。

支持 DP/TP/SP/EP/PP/CP 并行:支持 Megatron 中的所有六种策略。

内核支持:基于 Slime 为 GLM-5 提供的内核支持,系统针对 DeepSeek-V4 进行了采用和扩展。

RL 特性

DeepSeek-V4 训练栈支持并测试了重要的 RL 特性,包括 Rollout Routing Replay (R3)、TIS/MIS、FP8 训练和 FP8 注意力 QAT:

混合精度堆栈上的数值精度

Megatron 中的多项修复:

五、 实验环境

硬件配置:

软件配置:

数据集与任务规模:

六、 实验结果

推理基准测试(对比其他 OSS 引擎):

HiSparse 性能提升(图6):
在 DeepSeek-V4-Flash(2xB200,200K输入,20K输出)的配置下,启用 HiSparse 后,峰值吞吐量相比基线提升了最高 3 倍。

RL 训练结果(图10、图11):
在 32 张 GB300 上启动 285B 模型训练,训练动态表现稳定:

七、 结论与展望

SGLang 和 Miles 团队成功在 DeepSeek-V4 发布首日交付了针对该模型复杂架构(混合注意力、mHC、FP4)高度优化的推理与 RL 训练全栈开源解决方案。通过引入 ShadowRadix、图内投机解码元数据、HiSparse 卸载以及多项底层内核重写与并行策略,系统不仅实现了极高的推理吞吐量与长上下文支持,还确保了 RL 训练的数值稳定性和高效性。

未来的工作路线图将继续在开源社区推进,相关进展可通过 SGLang (issue #23602) 和 Miles (issue #1046) 的 GitHub 仓库进行追踪。团队特别致谢了 DeepSeek 提供的模型及首日合作,RadixArk 提供的跨越 Hopper、Blackwell 及 Grace Blackwell 的 GPU 基础设施支持,以及 SGLang 和 Miles 社区的贡献者们。

引用信息:
【1】Ke Bao et al., "DeepSeek-V4 on Day 0: From Fast Inference to Verified RL with SGLang and Miles", 2026. URL: https://www.lmsys.org/blog/2026-04-25-deepseek-v4/