AIML Research · LLM Knowledge

Apple AIML:Sliding Window Attention 的计算与长程信息边界

区分局部注意力窗口、KV cache 保留和跨层信息传播,解释为什么省资源但会改变可见性。

题目重点:区分局部注意力窗口、KV cache 保留和跨层信息传播,解释为什么省资源但会改变可见性。

题意与假设

这道练习题保留了面经中值得训练的核心约束,并将需要澄清的条件单独列出。现场拿到变体时,先和面试官确认这些条件。

  • 训练版为因果局部窗口:位置 i 只直接关注最近 W 个含自身 token;模型层数与其它全局机制未给,不能宣称任意长距离依赖都可无损表达。
  • 题目口语 ‘window attention’ 可能包含不同滑动/块状方案,本文只分析最基本局部窗口。

解题路线

  1. 从 mask 定义开始:对 query i,仅允许 key j 满足 max(0,i−W+1)≤j≤i;这和 full causal attention 可看全部历史不同。
  2. 训练/长序列 prefill 中每个位置最多看 W 个 key,注意力配对量从约 O(L²) 降到 O(LW);实际内核与 padding/分块会影响速度。
  3. decode 若架构真正只需窗口内 K/V,可按层保留最近 W 项,缓存从与总已生成长度线性增长变成与 W 有关;但一些模型用跨层传播/全局 token/混合层,不能擅自裁掉它们需要的历史。
  4. 长程信息可能通过多层逐跳传播,但有效感受野和任务质量不等于 full attention;用长文事实检索、跨段引用、短文质量和峰值显存对比,评估窗口大小。

手动走一遍

长度 L=10、W=4 时第 9 个位置(0-based)直接看 6、7、8、9;看不到位置 0。若问题的答案只在位置 0,模型能否回答取决于其它层/全局机制,不能单凭‘窗口滚动’保证。

规模与取舍

单层配对 O(LW),若 W≈L 退回 O(L²);局部 KV 保留约 O(W×层数×KV 维度×并发),前提是模型允许丢弃窗口外缓存。质量与计算成本取舍需按具体模型验证。

易错点与追问

容易失分的边界

  • 把 window attention 与 paged KV 内存管理混淆。
  • 认为局部窗口仍直接关注全部历史。
  • 不看模型是否有全局/混合层就裁掉旧 KV。
  • 用理论 O(LW) 宣称任何硬件必更快。
  • 只测短 prompt 质量,忽略长程检索下降。

继续深挖

  • W 与层数怎样影响可传播的长程信息?
  • 局部窗口和全局 token 如何组合?
  • 流式 decode 哪些 KV 可以安全释放?
  • 长文检索评估怎样避免被短距离样本掩盖?

技术参考

✓已复制微信号!