滑动窗口加4个sink零训练,均分恢复99%,长上下文反超线性注意力

Sliding-window beats linear attention

Alexia Jolicoeur-Martineau, Rhea Sanjay Sukthanker, Pashmina Cameron, Emy Gervais

cs.CL, cs.LG

2026-08-28

微软把预训练LLM的注意力改成带4个sink的滑动窗口,零训练就在11个模型上恢复99%均分;Needle与BABILong上比后训线性注意力高2到10倍。

这篇在解决什么

把预训练 LLM 改成线性注意力,号称能用很少的 token 把二次注意力换成常驻状态,KV cache 不再随长度涨。LoLCATs 用 4000 万 token 就能把 Llama 线性化,QRWKV 用几亿 token 把 Qwen 改成 RWKV 变体。这条线一直拿「普通滑动窗口」当对照,而普通滑动窗口一旦把前几个 token 滑出窗外就会崩。那几个被模型当垃圾桶用的位置叫 attention sink。

真正该比的基线,是窗口里永远留着前 4 个 sink 的滑动窗口。这篇把这条几乎零成本的改 mask 方案,直接对着一长串后训线性化方法打。

方法

做法极简:推理时把因果 mask 改成 SWA(w, 4),每个 token 只看最近 w 个位置,外加序列开头 4 个 sink。默认 w=64。不改权重,不微调。多层叠上去,有效感受野大约是层数乘窗口,所以短任务并不真的只能看见 64 token。

对照覆盖 11 个已发表的线性化方案,包括 SUPRA、Hedgehog、LoLCATs、Liger-GLA、MOHAWK、Mamba-in-the-Llama、DiJiang、ARWKV、Llamba、QLinAtt、QRWKV6/7。基座从 Phi-1.5 1.3B 到 Llama-3.1-70B、Qwen2.5-72B。短任务用 MMLU 五样本,再加 ARC、HellaSwag、PIQA、Winogrande 的平均;长任务用 Llama-3.1-8B 上的 S-NIAH 和 BABILong,窗口 128/256/512,长度到 4K。速度与显存在 4 层、1024 维的小 Transformer 上测,SWA 走 FlashAttention,线性核走 ThunderKittens。

作者还自己按 LoLCATs 两阶段、约 1 亿 token 的 cleaned-Alpaca,把 Qwen3-8B、Phi-4-mini-reasoning、Phi-4-reasoning-plus 线性化成 GLA、Gated DeltaNet、QRWKV6,避免只挑别人论文里好看的数字。

结果

短任务上,SWA(64,4) 在 11 组里 9 组平均分最高。跨模型汇总,它找回教师模型 93.2% 的 MMLU 和 99.0% 的六项均分;QRWKV6 是 92.4% / 99.1%,但要 3.5 到 7 亿 token。LoLCATs 用 4000 万 token 只找回 83.2% MMLU。

两个例外很小:Phi-1.5 上 LoLCATs 均分 62.5、SWA 62.4;Qwen2.5-32B-Instruct 上 QRWKV6 均分 77.3、SWA 76.6,教师是 77.2。

设置MMLU 恢复六项均分恢复后训 token
SWA(64,4)93.2%99.0%0
QRWKV692.4%99.1%350–700M
LoLCATs83.2%97.5%40M
Liger-GLA62.2%92.0%20M

单模型看落差更清楚。Llama-3.1-8B 教师均分 72.5,SWA 71.8,LoLCATs 70.3;70B 教师 79.1,SWA 78.2,LoLCATs 75.6。掉分几乎全在 MMLU,常识题基本不动。

长上下文才是分水岭。Llama-3.1-8B、窗口 256、4K 长度:S-NIAH-3 上 SWA 19.6、LoLCATs 2.2、Liger-GLA 0.6,满注意力 99.8。BABILong 平均 SWA 15、LoLCATs 3、满注意力 60。摘要里写的「高 2 到 10 倍」,表上对得上。4K 时 SWA 相对满注意力只剩 17.2% 到 23%,线性化更只剩个位数。

自己训的那三组现代架构更差:Qwen3-8B 教师均分 72.5,SWA 71.6,Gated DeltaNet 掉到 56.1。

解码速度上 SWA 全程最平、最快;满注意力过 1K 就开始掉。显存上窗口 64 的 SWA 最低,线性注意力次之,窗口 512 的 SWA 高于纯线性。要省内存,把窗口开小就行,不必换核。

为什么重要

想把推理内存钉死、又不想碰权重,改 mask 就够。线性化论文常把「无 sink 的滑动窗口」当弱基线,这篇把对照补上以后,后训线性化在短任务上最多打平,长任务上系统性落后。

给推理工程师的直接建议:先上 SWA(64 或 256, 4),再决定要不要花几千万 token 做线性化。线性注意力若想赢,更可能需要从零训,把现成 softmax 模型改过去不够。

视频侧已有旁证:Sliding Tile Attention 在 HunyuanVideo 上零训练找回 97% VBench,速度 3.53 倍。方向一致。

局限与存疑

作者自己划了几条:只测零训练 SWA,后训练(如 SWAA)可能再抬一截;没比带若干满注意力层的混合结构;没上 agent 任务和超大模型的真实 serving;多模态只点到、没做。

读下来还有几处要打折。长上下文只测到 4K,而满注意力在 4K 的 S-NIAH 仍接近满分,SWA 只剩约两成,这更接近「比线性化少崩一点」,远不是长上下文方案。速度对比用 4 层小模型,不能外推到 70B。LoLCATs 本身就混了 SWA,拿「纯 SWA」打「线性加 SWA」在短任务上几乎打平,说明线性分支在这份后训预算里贡献有限。论文也没解释为什么 MMLU 掉得比常识题多。

术语

原文与代码

社区讨论

相关论文

全部论文解读