语言人工智能指南

滑动窗口注意

滑动窗口注意力限制每个标记仅关注附近标记的固定大小邻域,而不是整个序列。

阅读时间:2分钟最后更新

概述

This cuts the quadratic cost of standard attention down to linear, making long-context models far cheaper to run.

深入探讨

标准自注意力将每个标记与其他每个标记进行比较,因此长度为 N 的序列需要大约 N 平方的比较。滑动窗口注意力通过为每个令牌提供一个大小为 W(例如 4,096 个令牌)的窗口并仅关注该窗口内的邻居来解决此问题。成本以 N 倍 W 而非 N 平方增长。至关重要的是,堆叠许多窗口层扩展了有效感受野:在 L 层之后,信息可以传播大约 L 倍 W 的标记,就像 CNN 不断增长的感受野一样。 Mistral 7B 通过跨 32 层的 4,096 个代币窗口普及了这一点,理论上达到了 131K 个代币跨度。模型通常将窗口层与偶尔的全注意力层混合以保留远程链接。

技术洞察

在注意力掩码中,位置 i 处的查询只允许查看位置 i 减去 W 加 1 到 i 的键(因果情况)。这种稀疏掩码意味着 KV 缓存只需要每层最后 W 个令牌,从而在生成过程中减少内存。由于窗口随着每个新令牌而变化,因此它自然地与滚动缓冲区高速缓存配对,滚动缓冲区高速缓存会覆盖最旧的条目而不是永远增长。

战略影响

速度与规模

语言工作流程可以在不牺牲一致性的情况下更快地移动。

交通与覆盖范围

它扩展了跨语言和沟通方式的访问。

更清晰的判决

团队可以花更多时间进行判断,而自动化则可以处理重复。

滑动窗口注意力的未来

混合设计现在在许多滑动窗口层中交织一些全局或全注意力层,平衡效率与真正的远程推理。 Gemma 2 和其他人交替使用本地和全局块。期望窗口注意力与状态空间模型、注意力接收器和 KV 缓存压缩相结合,以便前沿模型可以处理百万个令牌上下文而不会失控内存。它正在成为一个默认的构建块,而不是一种奇异的优化。

现实世界的实施

Mistral 7B 在其各层之间使用 4,096 个令牌的滑动窗口,以便在消费类 GPU 上以较低的成本处理长提示。

Longformer 应用窗口注意力加上一些全局标记来对多页文档进行分类和总结。

Gemma 2 将局部滑动窗口层与全局注意力层交替使用,以平衡速度和远程召回。

聊天助手中的滚动缓冲 KV 缓存仅保留最近的令牌窗口,从而在长时间对话期间限制内存。

风险与防护栏

幻觉的事实可以悄悄地进入报告、支持流程或研究成果。

及时的敏感性可能会在类似的请求中产生不一致的结果。

如果访问控制薄弱,敏感文本数据可能会暴露。

实施路线图

1

在推出之前定义输出格式、语气和质量标准。

2

当准确性很重要时,请使用可信来源进行地面响应。

3

为高风险输出保留人工审查检查点。

4

跟踪故障模式并定期重新训练提示或工作流程。

不断探索

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the Sliding Window Attention quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

开始测验

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

下一个指南

分组查询注意力

常见问题

What is Sliding Window Attention?

滑动窗口注意力限制每个标记仅关注附近标记的固定大小邻域,而不是整个序列。这将标准注意力的二次成本降低为线性,使得长上下文模型的运行成本要低得多。

滑动窗口注意力相对于标准自注意力的主要计算优势是什么?

通过将每个令牌限制在 W 个邻居的固定窗口内,成本会以 N 乘以 W(N 的线性)而不是 N 平方的形式增长。

在 Mistral 7B 的设计中,信息如何能够远远超出单个 4,096 个令牌窗口的范围?

与 CNN 一样,每一层将信息进一步推入一个窗口,因此 L 层提供大约 L 乘以 W 令牌的有效跨度。

为什么滑动窗口注意力会在文本生成过程中减少内存?

由于令牌仅关注其最近的窗口,因此通常可以通过滚动缓冲区缓存来丢弃较旧的键/值条目。

像 Gemma 2 这样的模型与滑动窗口一起使用什么设计选择来保持远程推理?

在局部层中混合偶尔的全局/全注意层可以保留纯窗口削弱的真正的长距离连接。

对于大小为 W 的因果滑动窗口,i 位置处的查询可以关注哪些键?

在因果情况下,查询会看到自身以及紧邻其之前的 W 减 1 标记,而不是未来的标记。