🧠 图解记忆:注意力不再是全局两两交互,而是限制在滑动窗口内,节省计算且支持超长序列。
💡 答案要点
Sliding Window Attention = 限制每个token只能关注前后固定窗口内的token
标准Self-Attention的问题(长序列L很大时):
- 计算量O(L²×d)、显存O(L²)、KV Cache O(L×d)
- L=128K时注意力矩阵=1.6×10^10 entries≈32GB仅FP16存储
Sliding Window解决方案:O(L×window_size×d)→从O(L²)降到O(L)
现代实践:交错滑动窗口+全局层 纯滑动窗口缺陷:感受野永远受限。解决:交替使用SW层和全局层。
GEMMA2模式(4B/9B):Layer1-SW(4K)→Layer2-Global→Layer3-SW→Layer4-Global→每两层一次全局交互。 Mistral3系列:Layer1-5-SW(4K)→Layer6-Global→Layer7-11-SW→Layer12-Global→5:1比率。
| 方案 | 复杂度 | 表达能力 | 代表模型 |
|---|---|---|---|
| Full Attention | O(L²) | 最强 | 小序列场景 |
| Sliding Window | O(L×W) | 中等,需全局辅助 | Gemma2,Mistral3 |
| N-Tile/Strided | O(L) | 层越多感受野越大 | Longformer |
| SSM/Mamba | O(L) | 互补路线 | Mamba,Jamba |
优势:长序列推理成本低、硬件友好。 劣势:无法不经全局层做端到端长程跳跃。
面试加分项: 解释为什么纯SW不够需要全局层、Gemma2奇偶层交替vs Mistral3的5:1分组
面试话术:
"Sliding Window是一种稀疏注意力——每个token只看前后固定数量的前驱token。这让复杂度从O(L²)降到O(L×W),大幅节省了计算和KV Cache。但纯SW感受野永远受限,所以主流做法是每隔若干层插一个全局attention层,比如GEMMA2是奇偶层交替,Mistral3是5层SW后跟1层全局。这样既能控制计算量又保持长程建模能力。"