Attention Is All You Need,但这个机制有个致命缺陷
「注意力的进化」系列 · 板块一 · 第1篇
一封2017年的论文,改变了世界,也悄悄埋下了一颗定时炸弹。开篇:你已经用了它一亿次,但你不知道它是什么
打开手机,问一句”今天北京天气怎么样”。
回答你的那个 AI,用的就是本文要讲的东西——注意力机制(Attention Mechanism)。
它是 ChatGPT 的核心,是 Gemini 的核心,是几乎所有你叫得出名字的大模型的核心。自2017年那篇改变历史的论文《Attention Is All You Need》发表以来,这个机制彻底统治了整个 AI 世界。
但它也有一个致命缺陷。
一个被研究者苦苦攻克了八年、至今仍未完全解决的结构性问题。
今天,我们就从头讲清楚:注意力机制是什么、为什么它这么厉害、又为什么它会遇到麻烦。
不需要任何数学背景,只需要你跟着我想象一个场景。一、在注意力机制出现之前,AI 是怎么”读句子”的
为了理解注意力机制有多厉害,我们先得知道它解决了什么问题。
2017年之前,AI 处理语言的主流方式叫做 RNN(循环神经网络)。它读句子的方式,就像一个只能从左到右、一个字一个字往下读的人——而且记性极差,只能记住最近几个字。
举个例子:
“那只在树上跳来跳去、毛茸茸的、橘色的、前两天刚被我喂过花生的松鼠,今天不见了。”
用 RNN 处理这句话,当 AI 终于读到”松鼠”这个词的时候,它对句子开头的”那只”已经几乎没有记忆了。两者的关联被遗忘了。
这就是 RNN 的根本局限:信息传递距离越长,损耗越大。
这对人类来说不成问题——我们读完这句话,天然知道”不见了”的是那只松鼠,而不是别的什么东西。但对 AI 来说,这是一道难题。二、注意力机制的核心思想:让每个词”问”其他所有词
2017年,谷歌的研究团队发表了《Attention Is All You Need》,提出了 Transformer 架构。
它的核心创新,用一句话概括就是:
让句子里的每一个词,都能直接”询问”句子里的其他所有词,而不必依赖从左到右的串行传递。
这个”询问”的过程,在技术上用三个概念来描述:Query(查询)、Key(键)、Value(值)。
这三个词看起来很抽象,但其实你每天都在用这套逻辑——一个你一定懂的类比:在图书馆检索书目
**图1:**注意力机制的本质——计算 Query 与每个 Key 的相关度,按权重聚合对应的 Value

想象你走进一座图书馆,你想找一本关于”专注力”的书。
你的需求(“专注力”)= Query(查询)
每本书的书名/标签(封面写着”认知科学”、“深度工作”、“番茄工作法”…)= Key(键)
书里的实际内容= Value(值)
你把自己的需求(Query)和每本书的标签(Key)一一对比,算出”相关程度”——越相关的书,权重越高。最后,按权重把这些书的内容(Value)综合起来,给你一个回答。
注意力机制做的,就是这件事。**只不过它的”图书馆”是一个句子,每个词就是一本书。**回到那只松鼠
用注意力机制处理那句关于松鼠的长句时,当模型处理到”不见了”这三个字,它会同时向句子里的所有词发出 Query:
“我(不见了)和谁最相关?”
计算结果会发现,“松鼠”这个词和”不见了”的关联权重最高——远高于”橘色”、“花生”或”树”。
于是模型知道:消失的,是松鼠。
这是 RNN 做不到的事情。不管句子有多长、中间隔了多少修饰词,注意力机制都能跨越任意距离,直接建立关联。
这就是为什么 Transformer 一出来,几乎立刻席卷了整个 NLP 领域。三、它为什么这么强:两个关键能力能力一:并行处理
RNN 必须一个词一个词地往下读,后面的词必须等前面的词处理完才能开始——像流水线,一旦某个环节慢了,整条线都得等。
Transformer 不一样。所有词可以同时互相”询问”,完全并行。
这不只是快一点点的问题,而是数量级的差距。现代 GPU 天然适合并行计算,Transformer 几乎是为它量身定做的。这解释了为什么大模型能在几个月内处理的训练数据量,超过了人类几千年的积累。能力二:动态权重
不同于固定的记忆规则,注意力机制的权重是根据上下文动态计算的。
同一个词,在不同语境里,它的”注意力焦点”完全不同。
“苹果发布了新手机。” → “苹果”应该关注”手机”、“发布” “苹果树上结满了果子。” → “苹果”应该关注”树”、“果子”
每一次推理,每一个词的关注对象都重新计算。这让 Transformer 具备了真正的上下文理解能力,而不是死记硬背的”词语搭配”。四、但是——这里有一颗定时炸弹
好了,说了这么多优点,是时候亮出那个致命缺陷了。
问题出在这里:
注意力机制要求每一个词都要跟其他所有词互相计算相关性。
听起来没什么问题。但我们来算一下:
**图2:**当序列从 100 词增加到 10,000 词(100倍),计算量从 10,000 暴增到 100,000,000(10,000倍)

句子有 10 个词 → 需要计算 10 × 10 = 100 次
句子有 100 个词 → 需要计算 100 × 100 = 10,000 次
句子有 1,000 个词 → 需要计算 1,000 × 1,000 = 1,000,000 次
句子有 10,000 个词 → 需要计算 10,000 × 10,000 = 100,000,000 次
你看出规律了吗?
长度翻倍,计算量翻四倍。 用数学语言描述,这叫做 O(N²)——二次复杂度。
这意味着,当你想让 AI 处理更长的文本——一篇报告、一本书、一段代码、一次长对话——计算成本不是线性增长,而是以平方速度爆炸。
不只是慢,是贵。是字面意义上的电费和算力成本以平方级攀升。五、为什么这个缺陷如此致命
你可能会想:无非是算得慢一点,多花点钱嘛,这算什么”致命”?
让我们把这个问题放到真实场景里:
场景一:处理长文档早期 GPT 模型只能处理约 2,000 个词(~4K tokens)的上下文。超出这个范围,它就开始”失忆”——不是因为它笨,而是因为再往后算,成本高得不可接受。
场景二:AI 读书一本普通小说大约有 10 万字,折合约 15 万个 tokens。用标准注意力机制处理这本书,计算量是 150,000² = 225 亿次运算。即便是最顶尖的 GPU,也会被压垮。
场景三:长对话你和 AI 聊了一个下午,对话越来越长——但 AI 的上下文窗口有限,它会”忘记”你最开始说的话。这不是设计缺陷,是数学约束。
这就是那颗定时炸弹。
2017年,当 Transformer 横空出世时,大多数任务的文本都不太长,这个问题还不明显。但随着应用越来越复杂、上下文需求越来越大,O(N²) 的瓶颈变得越来越刺眼。
研究者们开始意识到:**注意力机制的架构本身,需要进化。**六、人类版注脚:你也有同样的”二次复杂度”
在结束这篇文章之前,我想留下一个问题,供你带着往后读。
注意力机制的困境,其实在你身上也有一个对应版本。
想象你打开手机的那一刻——微信、微博、抖音、新闻、邮件……你的大脑试图对所有信息都保持”相关性计算”,把每一条推送都和你的目标、情绪、记忆做一次关联。
信息越多,这个过程耗费的认知资源就越多。不是线性增长的,是指数级的疲惫。
AI 用了八年时间,才找到了减轻这种负担的方法——线性注意力、稀疏注意力、Focus……
我们,又该怎么办?
这是「注意力的进化」系列接下来要探索的核心问题。下一篇预告
《AI 为何开始”选择性失明”——稀疏注意力的诞生》
当 O(N²) 的瓶颈迫在眉睫,研究者们想到了一个反直觉的解法:不让每个词都看所有词。
这个”减法”,带来了意想不到的效果。
参考资料:Vaswani et al., “Attention Is All You Need,” NeurIPS 2017.
字数统计:约 2,700 字