站点标志Map the AI
  • 每日短课
  • AI 新闻
  • 学习轨道
  • 主题
  • 我的路径
  • 路线图

注意力变体:稀疏、线性与滑动窗口

全注意力让每个 token 和所有其他 token 两两比较,成本随长度平方增长。打破这个平方项的几种变体,以及各自放弃了什么。

本页目录
  • 平方项从哪来
  • 稀疏注意力:跳过大多数配对
  • 滑动窗口:只看局部,但可以叠
  • 线性注意力:改数学
  • 怎么读这些取舍
  • 要点回顾
进阶架构13 / 17

先读这些

  • 自注意力图解

有帮助,但非必需

  • 长上下文为什么这么贵

对各级别的必要程度

各目标级别的推荐分
新手15 分中的 1 分
进阶35 分中的 3 分
专家55 分中的 5 分

主线上的下一篇

embedding 模型如何训练

主题

训练与架构

标准自注意力(self-attention)有一个让人不舒服的性质:每个 token 都要关注其他所有 token,于是序列长度翻倍,计算量就变四倍。这堵平方级成本的墙,正是长上下文模型撞上的。注意力变体就是绕开它的各种办法,它们共享同一个策略——比全对注意力算得更少,同时尽量少损失。每一个放弃了什么,才是故事的全部。

平方项从哪来

全注意力会构造一个 N×N 的矩阵:N 个 token,每个都要给和其他每个 token 的相关性打分。这个矩阵既是注意力威力的来源,也是它成本的来源。它能捕捉任意距离上的依赖——这正是注意力打败循环方案的原因——但代价是 N² 次比较和 N² 的内存。

下面每个变体都在攻这个矩阵。问题永远一样:这 N² 个分数里,哪些可以跳过而不把模型弄坏?

稀疏注意力:跳过大多数配对

稀疏注意力(sparse attention)背后的观察是:那些全配对的分数,大部分本来就接近零。一个 token 很少强烈依赖大多数其他 token。那就预先规定一个模式,说明哪些配对要算,其余忽略。

常见模式会组合几种简单结构:

  • 局部窗口 —— 每个 token 关注近邻,抓住「近处上下文通常最重要」这个事实。
  • 跨步或膨胀 —— 每隔 k 个 token 关注一个,用很少的连接够到很远的地方。
  • 全局 token —— 指定少数几个 token,它们关注一切、也被一切关注,充当信息枢纽,让相隔很远的 token 也能通过它们通信。

成本降下来了,因为这个模式是固定且稀疏的,而不是稠密的。赌的是这个模式覆盖了真正重要的依赖。一旦某个真实的长程依赖落在模式之外,模型就是看不见它——这是任何固定稀疏化的失效模式。

滑动窗口:只看局部,但可以叠

滑动窗口注意力(sliding-window attention)是稀疏注意力最简单的一种:每个 token 只关注固定数量的最近 token,这个窗口沿序列滑动。成本变成随长度线性增长——无论序列多长,每个 token 做的活都是固定的。

最明显的质疑是:token 看不到窗口以外。答案是深度。叠很多层,有效感受野就会扩大:一个 token 直接看到自己的窗口,但那些邻居在下一层看到了它们的窗口,于是信息一层一层往外传——和堆叠小卷积覆盖大面积的道理一样。信息能走很远,只是绕,而且慢。

换来的是直接性的损失。隔着两个窗口的依赖仍然够得到,但比全注意力一步抓到要弱、要晚。对于大部分依赖都是局部的文本,这笔交易往往非常划算。

线性注意力:改数学

稀疏和滑动窗口注意力保持运算不变,只是少算一些项。线性注意力(linear attention)做的更根本:它改写计算过程,让 N² 矩阵根本不被构造出来。

标准注意力在原始分数上做 softmax,而正是 softmax 逼着你必须先把所有配对算完才能归一化。线性注意力把这个 softmax 换成另一种相似度函数,它可以重结合——把运算顺序换一换,成本就从随长度平方增长变成线性增长。N×N 矩阵从算式里彻底消失了。

问题在于,softmax 并不是什么都没做。它那种尖锐、有选择性的加权——死盯住少数几个 token 的能力——正是注意力表达力的一部分。用一个可线性化的函数去近似它,一般都要赔上一些这种尖锐度,线性注意力模型历史上也确实是用一点质量换速度。工程上的问题是:对当前任务来说,这个近似够不够接近。

怎么读这些取舍

这些变体排在同一个轴上:你为了多少速度,牺牲了多少全注意力的表达力。

  • 全注意力 —— 表达力拉满,平方级成本。序列短到付得起的时候,它仍然是默认选择。
  • 稀疏 / 滑动窗口 —— 运算不变,配对更少。依赖大多是局部的、或者符合已知模式时非常好用;模式之外的依赖一概看不见。
  • 线性 —— 渐进意义上最便宜,但近似了 softmax,可能丢掉选择性。

没有免费的午餐,这一点值得吃透:平方级成本买到的是「一步建模任意距离上任意依赖」的能力。每一个压下了成本的变体,都要让出这份能力的一部分。正确的选择不是最便宜的那个,而是在你的数据上牺牲不疼的那个。

还有一条相关但正交的路线,干脆抛弃注意力,改用状态空间模型,它靠完全不同的途径达到线性成本。

要点回顾

  • 全注意力的成本是平方级的,因为它给每一对 token 打分;所有变体都在减少要计算哪些配对。
  • 稀疏注意力用固定模式(局部窗口、跨步、全局 token),模式之外的依赖看不见。
  • 滑动窗口注意力只看局部,但叠层会间接扩大有效范围。
  • 线性注意力改写数学,彻底避开 N×N 矩阵,代价是 softmax 那种有选择性的尖锐度。
  • 这笔交易是普遍的:更便宜的注意力总要牺牲一些建模任意长程依赖的能力——挑你的任务承受得起的那个最便宜的牺牲。

下一篇: 长上下文架构

本页目录

  • 平方项从哪来
  • 稀疏注意力:跳过大多数配对
  • 滑动窗口:只看局部,但可以叠
  • 线性注意力:改数学
  • 怎么读这些取舍
  • 要点回顾
站点标志Map the AI

AI 不断向前,学习有路可循。

地图
  • 学习轨道
  • 主题
  • 我的路径
  • 路线图
公司
  • 关于我们
  • 联系我们
法律
  • Cookie 政策
  • 隐私政策
  • 服务条款
© 2026 Map the AI。由 NeatSeed LLC 运营。保留所有权利。