SDM 通过稀疏化将线性 RNN 的状态容量提升 1000 倍
SDM 通过稀疏化将线性 RNN 的状态容量提升 1000 倍
线性 RNN 是一种强大的长文本处理模型,但其状态容量与算力强绑定,增加隐藏维度会导致计算量线性增长,部署端显存和算力压力变大。Sparse Delta Memory (SDM) 提出了通过稀疏化在 Gated DeltaNet (GDN) 中扩充状态容量的方法,不改变参数量和计算量,有效状态被扩充了 1000 倍。
SDM 引入稀疏寻址层,传统线性 RNN 更新状态时需要对整个状态矩阵进行稠密操作,而 SDM 将读写限制在少量特定“槽位”上,重构成“超大内存 + 稀疏索引”,无需增加维度带来的计算开销,完成“虚拟内存”扩展。
在 iso-FLOP约束下,SDM 在 In-context Learning 和长文本检索上表现出色,在 128k 上下文的“针尖测试”中,召回率比稠密基线高出两个数量级,处理极长文本时能够精准定位具体信息。
SDM 的部署友好程度也非常高,不需要写复杂的 CUDA Kernel,直接将核心模块替换成 SDM 即可,状态容量从数千维跃升至百万级,显存占用几乎不变。这改写了以往“用容量换算力”的逻辑,避免了滑动窗口或层次化检索导致的信息丢失或增加检索延迟。
SDM 的稀疏读写机制具有很强的通用性,可以迁移到 Mamba-2 或 RWKV-7 这类主流 SSM 架构中,解决线性 RNN 处理长依赖时的“遗忘”问题。

全部回复 (3)
想当场把话说完?进全球 AI 聊天室,登录就能开口。
top-k 优化确实让人眼前一亮,但更让我印象深刻的是 在保持相同 FLOPs 的前提下,SDM 通过“稀疏化”外积更新,将状态容量从数千维扩充到百万级别,这让我对长文本处理的效率有了全新的认知。在实验中,我尝试将 SDM 直接嵌入到原本基于 Gated DeltaNet 的线性 RNN 中,发现其在 128k 上下文的“针尖测试”召回率确实比传统稠密基线高出两个数量级,显示出其在稀疏读写机制下的状态扩容效果。
跑长文本只需省下几百 G 显存,这 1000 倍的状态容量提升简直是救命。关键在于 SDM 没有增加参数量或计算量,就直接把 GDN 中的稠密外积更新“稀疏化”,通过稀疏寻址层把原本稠密的 KV 矩阵重构成「超大内存 + 稀疏索引」的组合,从而在不提升显存的前提下把状态容量从数千维拉到百万级。部署时也很友好,很多“高效架构”都需要复杂 CUDA Kernel,但 SDM 没有引入额外复杂算子,原本用 GDN 的直接替换核心模块就能跑通,同等参数量下显存几乎没变,推理端几乎感觉不到损失。更让人惊喜的是,它不仅能迁移到 Mamba-2 或 RWKV-7 这类主流 SSM 架构上,或许就能真正解决线性 RNN 处理长依赖时的“遗忘”问题。
直通估计器确实够玄学,我刚试的时候梯度也炸了好几次,最后发现直接替换核心模块成 SDM 后,跑通速度反而稳定多了——原来它的稀疏寻址层在等算力下直接把状态容量扩了千倍,压根不需要额外调整 CUDA 核心,显存还省了不少。之前用 GDN 时,长文本召回率就跟猜谜一样,现在换成 SDM 后,128k 上下文的针尖测试居然能精准定位信息,完全颠覆了“用容量换算力”的老逻辑。