新闻中心

NVIDIA 与普林斯顿提出 ReplaySSM:混合模型改存输入而非状态,推测解码吞吐最高提升 2.1 倍 NEWS DETAIL

当前位置:首页 > 新闻中心
资讯分类 · 新闻中心 作者 · 超级管理员 审核人 · 内容审核团队 发布时间 · 2026-10-17 更新时间 · 2026-10-17 来源 · 本站

NVIDIA

混合架构正在成为长上下文模型的主流选择:NVIDIA Nemotron 3、Qwen3.5 到 Qwen3.8、Kimi-K3 与 GLM-5.3-Flash 都在模型里交替堆叠状态空间模型(SSM)层和少量注意力层,用 Mamba-2、Gated DeltaNet 或 Kimi Delta Attention 承担大部分序列建模。SSM 层的初衷是用固定大小的状态替代随上下文增长的 KV 缓存,让解码更快。

但在真实服务的批大小下,情况会反转。以 Nemotron-3-Super-NVFP4 为例,模型有 40 个 SSM 层、只有 8 个注意力层;单层 FP32 状态为每条序列 4 MiB,而一个 FP8 KV 条目仅 0.5 KiB/token,也就是说一层 SSM 的状态相当于一层注意力在 8K token 时的 KV 缓存。在单块 Blackwell Ultra B300、批大小 256 时,10 万 token 以内的解码延迟主要由 SSM 层而非注意力层决定。

问题出在传统的解码方式把两件事绑在一起:每一步都要把完整状态从 HBM 读出来算输出,更新后再写回去。SSM 状态同时是这一步的输出依据和下一步的输入,于是低精度量化也变危险——舍入误差每步都会重新进入递推。推测解码同样受影响:草稿 token 被写进状态后没有简单的逆运算,vLLM 只能为每个草稿 token 保存状态快照,一次读、T 次写,还会挤占显存、限制并发。

NVIDIA 与普林斯顿大学 Dao AI Lab 的合作工作 ReplaySSM 换了个表示方式:不再缓存状态,而是缓存输入。它把 SSM 状态写成“一个检查点 + 一小段近期输入记录”,多数步骤只把当前输入追加进缓冲区,并用检查点加缓冲区直接算出输出,不写状态;等缓冲区装满(论文取 L=16)才触发一次 flush,把缓冲输入折叠进检查点并只写一次 HBM。官方表示,输出与传统解码在浮点误差范围内一致。

这一改动同时缓解三个瓶颈。状态写入量从每窗口 L 次降到 1 次,主导的状态流量大致减半;推测解码不再需要为每个草稿 token 存快照,验证时只需把 T 个草稿的输入追加进缓冲,接受后再移动指针,越界记录会被下一次追加覆盖;精度上则把“算输出”和“递推更新”拆成两种精度,递推保留高精度检查点,另存一份低精度副本只用于读取,舍入误差只在当前窗口内影响输出,不再沿递推传播。

在四个模型(Nemotron-3-Nano-4B、Nemotron-3-Super-120B-A12B、Qwen3.5-4B、Qwen3.5-122B-A10B)上实测:批大小 256 时内核快 1.46 到 1.80 倍,解码步快 1.20 到 1.47 倍;GSM8K 提示、T=4 的推测解码在批大小 512 时吞吐达到 vLLM 的 1.85 倍和 2.10 倍。精度方面,NVFP4 读取配合 FP32 递推把 Qwen3.5-4B 在 128K token 处的 KL 散度从 0.136 降到 0.0038;GPQA-Diamond 上共享 NVFP4 检查点会掉 3 到 31 个百分点,分离精度后四个模型中有三个与 FP32 差距在 2 个百分点以内。

目前 ReplaySSM 已进入 TensorRT-LLM、vLLM、SGLang 与 FlashInfer,GLM-5.3-Flash 已在生产环境使用,Kimi-K3 也在其 KDA 层中缓存草稿 token 的 SSM 输入用于验证。论文与代码均已公开,NVIDIA 同时放出了三个推理框架的对应 PR,方便团队在自己的混合模型服务上复现。