SSM解码不再每步写状态:缓存近期输入,状态流量减半,投机解码吞吐追平vLLM
核心概要
状态空间模型解码此前每步都要把整个循环状态读入再写回,状态读写成为显存带宽瓶颈,投机解码也缺少廉价回滚。ReplaySSM把状态改写成一份检查点加一段近期输入的缓冲区,只在缓冲区填满时写检查点,多数步骤只追加输入并直接算输出。在vLLM上对Mamba-2与Gated DeltaNet实现后,服务批大小256时标准解码相对调优基线加速,两个120B级模型上吞吐接近vLLM投机解码,分离精度还降低了输出KL散度与下游精度损失。
深度剖析
状态空间模型解码的状态管理从每步写回整块循环状态,改为用检查点加近期输入缓冲区来表示状态,输出计算与检查点更新因此分开。 此前解码逐步跟随循环,每步读入状态、更新、由更新后的状态算输出再写回,状态读写是显存带宽瓶颈,投机解码还要为每个草稿词元保存状态快照。 在vLLM中为Mamba-2和Gated DeltaNet实现后,服务批大小256时标准解码相对调优过的vLLM基线加速,四个混合模型上均如此。
非刷新步骤只追加当前输入并直接从检查点与缓冲区算输出,不写状态;缓冲区满时才把缓冲输入折进检查点并写回。 检查点写入被摊薄到一个窗口,主导的状态显存流量约减半,而输出与传统解码在浮点误差范围内一致。 窗口大小取固定值,在四个模型上给出最低的摊薄内核延迟,与流量分析预测的最优点一致。
投机解码的回滚变成移动缓冲区指针,验证只需输出,不必物化中间状态;低精度检查点只服务输出,高精度检查点承载循环更新。 此前vLLM为每个草稿词元存一份状态快照,写入拖慢本就受显存带宽限制的内核,快照还限制并发;低精度状态则把舍入误差带进后续更新并随生成长度累积。 两个120B级模型在批大小256下吞吐接近vLLM投机解码,NVFP4读取配FP16或FP8循环更新把共享NVFP4检查点的下游精度损失从13.05、5.88、10.92个百分点降到2.36、0.15、0.10与1.77、0.40、0.38个百分点。
启示与展望
报告面向推理系统与内核工程师,覆盖Mamba-2与Gated DeltaNet两类循环在vLLM中的标准解码、投机解码与低精度状态三种设置,性能实验使用FP32状态,低精度实验只降低状态精度、权重保持发布精度。下一步方向是让衰减已可忽略的头在非刷新步骤跳过检查点读取,使刷新变成纯写入。
每个步骤仍要读取检查点,这部分读取是下一个目标。低精度结果中,分离精度只把低精度副本的舍入误差挡在循环之外,高精度路径自身的舍入仍在,非刷新输出仍依赖近似副本;共享低精度检查点的精度损失随生成长度出现,在长输入短输出的RULER-128K上各配置与FP32的差距在噪声范围内。
