🏠
第三章

Transformer:注意力机制颠覆世界

⏱ 阅读约需 18 分钟

2017年,Google的一群研究者发表了一篇论文,标题大胆得近乎狂妄:《Attention Is All You Need》。他们没有使用当时主流的循环神经网络,而是完全基于一种叫做"注意力"的机制。这个架构后来被称为Transformer——它改变了人工智能的每一个领域。

一篇论文的诞生

2017年春天,Google Brain团队的一群研究者正在为一个机器翻译项目苦恼。当时的最佳方案是结合CNN和RNN的编码器-解码器架构,加上2014年由Dzmitry Bahdanau等人提出的注意力机制作为补充。RNN负责顺序处理输入序列,注意力机制帮助模型在翻译每个词时关注源句子中最相关的部分。

这个方案有效,但有一个根本性的瓶颈:RNN是顺序计算的。要计算第100个词的状态,必须先计算完前面99个词。这意味着RNN无法充分利用现代GPU的大规模并行计算能力。训练一个大型的RNN翻译模型需要数周时间。

团队中的Ashish Vaswani提出了一个疯狂的想法:如果完全抛弃RNN和CNN,只用注意力机制呢?注意力本身就是计算每个位置与其他所有位置的相关性——这天然就是可以并行计算的。经过几个月的实验,这个想法被证明不仅可行,而且效果惊人。

2017年6月,论文《Attention Is All You Need》在NeurIPS会议上发表。作者列表包括Ashish Vaswani、Noam Shazeer、Niki Parmar、Jakob Uszkoreit、Llion Jones、Aidan Gomez、Łukasz Kaiser和Illia Polosukhin。这篇论文当时并未引起轰动——它只是众多论文中的一篇。但随后几年,它的影响力呈指数级增长,成为人工智能领域被引用次数最多的论文之一。

"我们提出了一个新的简单网络架构,Transformer,完全基于注意力机制,完全摒弃递归和卷积。" —— 《Attention Is All You Need》,2017

RNN 的瓶颈:顺序之美,顺序之囚

在理解Transformer之前,我们需要理解RNN的问题出在哪里。RNN的设计很优雅:它模拟人类阅读的方式——从左到右,一个字一个字地处理,同时维护一个"状态"来记忆之前的内容。

但这种顺序性是它的阿喀琉斯之踵。假设你要翻译一篇1000词的论文:

LSTM和GRU通过门控机制缓解了这个问题,但从未真正解决。无论门控多么精巧,信息的传递仍然是一个接一个的链条。链条越长,信息丢失越严重。这就像传话游戏:第一个人说"猫在垫子上睡觉",传到第十个人可能变成了"蝙蝠在山上跳舞"。

📌 关键概念:长距离依赖

长距离依赖指序列中相距很远的元素之间的语义关联。例如:"虽然下了大雨,但是比赛___照常进行。"要正确预测"仍然",模型需要记住开头的"虽然"——两者相距十几个词。RNN在处理超过50-100个词的依赖时力不从心,而Transformer可以轻松处理数千个词的依赖。

注意力机制的直觉:阅读时你在看什么?

注意力机制的想法来自对人类认知的观察。当你阅读这句话时,你的眼睛并不会均匀地关注每个字——你会自动把注意力集中在关键词上,而快速扫过功能词。

更具体地说,当你读到"它"时,你的大脑会自动回溯,寻找"它"指代的是什么。如果前文是"那只猫跳上了桌子",你的注意力就会跳到"猫"上。注意力机制模拟的就是这个过程:对于序列中的每个位置,计算它应该"关注"其他哪些位置,以及关注的程度。

在翻译任务中,当模型生成英文句子的第5个词时,它应该主要关注源语言句子的哪些词?如果正在翻译"我喜欢猫"为"I love cats",生成"love"时注意力应该集中在"喜欢"上,而不是"我"或"猫"。注意力机制让这个"对齐"过程可学习、可微分,成为整个模型训练的一部分。

Self-Attention:每个词都能"看到"所有其他词

Transformer使用的是一种特殊的注意力——自注意力(Self-Attention),也叫内部注意力。它的核心思想是:序列中的每个词都能"看到"所有其他词,并根据相关性重新加权自己的表示。

假设我们有句子"猫坐在垫子上"。在自注意力层中:

关键是:这些相关性是同时计算的。"坐"看"猫"的过程与"垫子"看"上"的过程互不依赖,可以在GPU上并行执行。这与RNN的顺序处理形成鲜明对比。

自注意力的输出是一个新的序列,其中每个位置的表示都融合了全局上下文信息。经过多层自注意力和前馈网络的堆叠,模型能够学习到越来越抽象、越来越全局的语义表示。

Query, Key, Value:在图书馆找书的过程

自注意力的具体计算涉及三个矩阵:Query(查询)、Key(键)和Value(值)。这是Transformer中最抽象也最重要的概念之一。让我们用一个比喻来理解。

想象你走进一个巨大的图书馆,想找关于"深度学习"的书。你脑子里有一个查询(Query):"我要找深度学习相关的书"。每本书都有一个键(Key)——书名和关键词。你把查询与每本书的键进行比较,计算相似度——这就是注意力分数。相似度高的书,你会给予更多关注。然后你根据这些分数,从每本书的值(Value)——书的内容——中抽取信息,加权组合成你的"理解"。

Query (Q)
当前词提出的问题:"我需要什么样的信息?"
Key (K)
每个词提供的标签:"我包含什么样的信息?"
Value (V)
每个词实际传递的内容:"我的信息具体是什么?"

在数学上,这三个矩阵都来自输入向量X乘以三个不同的可学习权重矩阵W_Q、W_K、W_V。注意力分数通过Query和Key的点积计算,然后用Softmax归一化为概率分布,最后用这些概率对Value加权求和:

Attention(Q, K, V) = softmax(QKT / √dk) · V

除以√d_k(Key的维度平方根)是为了防止点积值过大,导致Softmax的梯度消失。这个缩放点积注意力(Scaled Dot-Product Attention)是Transformer的核心操作。

多头注意力:多个视角同时观察

如果只有一个Q/K/V投影,模型只能捕捉一种类型的关系。但语言中的关系是多方面的:语法关系、语义关系、指代关系、逻辑关系……

Transformer的解决方案是多头注意力(Multi-Head Attention):使用多组不同的W_Q、W_K、W_V权重矩阵,让模型从多个"视角"同时观察序列。每个注意力头可能专注于不同类型的关系:

原始Transformer论文使用了8个注意力头。后来的GPT-3使用96个头,GPT-4更多。多头机制让Transformer能够同时建模多种复杂关系,大大增强了表达能力。

📌 关键概念:注意力头的专业化

研究者发现,Transformer的注意力头会自发地专业化。一些头专注于相邻词(局部语法),一些头专注于远距离的指代关系,还有一些头似乎负责复制机制、罕见词处理等功能。这种专业化不是人为设计的,而是训练过程中自然涌现的。

位置编码:给序列加上"顺序感"

自注意力有一个看似致命的缺陷:它是位置无关的。无论"猫追狗"还是"狗追猫",自注意力计算每个词与其他词的相关性的方式完全相同——它不知道词的位置和顺序。

但顺序对语言至关重要。"我爱你"和"你爱我"含义完全不同。Transformer如何解决这个问题?

原始Transformer使用了正弦位置编码(Sinusoidal Positional Encoding)。对于位置pos和维度i,位置编码使用不同频率的正弦和余弦函数:

PE(pos, 2i) = sin(pos / 100002i/d)
PE(pos, 2i+1) = cos(pos / 100002i/d)

选择正弦函数有几个精妙的原因:首先,它让模型能够轻松学习相对位置——因为sin(a+b)可以用sin(a)和cos(b)表示;其次,不同维度使用不同波长,形成了一个独特的"位置指纹";最后,这种编码是确定性的,不需要学习额外的参数。

后来的模型如BERT使用了可学习的位置嵌入(Positional Embedding)——把位置当作一个词嵌入向量来学习。更近期的方法如RoPE(Rotary Position Embedding)和ALiBi通过修改注意力计算本身来编码位置信息。位置编码的研究仍在活跃进行中。

Transformer 架构解析:Encoder + Decoder

原始Transformer论文是为机器翻译设计的,采用了编码器-解码器(Encoder-Decoder)架构。但后来的模型大多只使用其中一半:BERT用Encoder,GPT用Decoder。

输入嵌入 + 位置编码
将词转换为向量,加上位置信息
编码器层 × N
多头自注意力 + 前馈网络 + 残差连接 + LayerNorm
解码器层 × N
掩码自注意力 + 交叉注意力 + 前馈网络 + 残差连接
输出线性层 + Softmax
生成下一个词的概率分布

编码器(Encoder)处理源语言输入。它由N个相同的层堆叠而成(原始论文N=6),每层包含两个子层:多头自注意力机制和前馈神经网络。每个子层周围都有残差连接(Residual Connection)和层归一化(Layer Normalization)。编码器的输出是一组上下文向量,捕捉了输入序列的全局语义。

解码器(Decoder)生成目标语言输出。它比编码器多一个子层:交叉注意力(Cross-Attention),让解码器能够关注编码器的输出。解码器的自注意力是掩码的(Masked)——在生成第i个词时,只能看到前面i-1个词,不能偷看未来。这保证了训练时的自回归特性与推理时一致。

层归一化与残差连接

Transformer使用了与ResNet类似的残差连接,帮助梯度流动。此外还使用了层归一化(Layer Normalization)——对每个样本的所有特征进行归一化,让训练更稳定。这些技术共同使得Transformer能够堆叠数十层甚至上百层,而不会出现梯度消失或爆炸。

为什么 Transformer 如此强大?

Transformer的成功不是偶然的,它同时解决了几个长期困扰神经网络的核心问题:

特性RNN/LSTMTransformer
并行计算顺序处理,难以并行完全并行,充分利用GPU
长距离依赖梯度消失,依赖链长时信息丢失直接连接,任意距离依赖同样处理
训练速度慢(与序列长度成正比)快(与序列长度平方成正比,但可并行)
位置感知天然有序需要位置编码
计算复杂度O(n)每步,总共O(n²)O(n²)每层的注意力计算

最关键的是前两点:并行计算让Transformer可以高效地在大规模数据上训练;直接长距离连接让模型真正理解上下文。在RNN中,第1个词和第1000个词之间的距离是999步;在Transformer中,这个距离是1步——它们直接在注意力层中交互。

当然,Transformer也有自己的问题。O(n²)的注意力复杂度意味着处理长序列时计算量和内存需求会急剧增长。一篇10万词的文档需要的注意力计算量是1000词文档的10000倍。这催生了大量高效Transformer的研究:稀疏注意力、线性注意力、闪存注意力(Flash Attention)、状态空间模型(SSM)等。

从 NLP 到视觉:ViT 证明 Transformer 不只属于语言

Transformer最初为自然语言处理设计,但研究者很快意识到它的潜力不限于此。2020年,Google Research的Alexey Dosovitskiy等人发表了《An Image is Worth 16x16 Words》,提出了Vision Transformer(ViT)

ViT的核心思想出人意料地简单:把图像切成16×16的小块(Patches),把每个块当作一个"词",然后直接输入标准的Transformer编码器。不需要卷积,不需要池化——纯粹的注意力。

当在足够大的数据集(如ImageNet-21k或JFT-300M)上预训练时,ViT的表现可以匹敌甚至超越最好的CNN。在ImageNet上,ViT-Huge(6.32亿参数)达到了88.55%的准确率,与EfficientNet等顶尖CNN相当。

这个发现的意义是深远的。它表明Transformer是一种通用的序列建模架构,不特定于语言。无论是词序列、像素块序列、氨基酸序列还是股票序列,Transformer都能处理。这开启了"大一统模型"的可能性:一个架构,多种模态。

历史意义:催生 GPT、BERT、T5 等所有现代大模型

Transformer论文发表后,迅速成为NLP领域的主流架构。三个方向尤其重要:

BERT(2018):双向编码器

Google的BERT(Bidirectional Encoder Representations from Transformers)使用了Transformer的编码器部分。它的创新是掩码语言建模(Masked Language Modeling):随机遮住输入中的一些词,让模型预测被遮住的词是什么。这迫使模型双向理解上下文——既看左边的词,也看右边的词。

BERT在11项NLP基准测试中刷新了纪录,开启了"预训练+微调"的范式。它的开源释放(由Google发布)让全世界的研究者都能使用强大的语言表示。BERT的后代包括RoBERTa、ALBERT、DeBERTa等,不断刷新着各种排行榜。

GPT 系列:自回归解码器

OpenAI选择了不同的方向:只使用Transformer的解码器部分,以自回归(Autoregressive)方式训练——给定前面的词,预测下一个词。这种"生成式"预训练让模型学会了流畅地生成文本。

从GPT-1(1.17亿参数,2018)到GPT-2(15亿参数,2019)到GPT-3(1750亿参数,2020),再到GPT-4(2023),OpenAI展示了规模的力量(Scaling Laws):随着模型参数、训练数据和计算量的增加,模型能力呈现可预测的、有时甚至是突跃式的提升。GPT-3展示了few-shot学习能力——只需给出几个示例,就能完成从未训练过的任务。

T5(2019):统一的文本到文本框架

Google的T5(Text-to-Text Transfer Transformer)将所有NLP任务统一为文本到文本的转换:翻译、摘要、问答、分类,都当作"输入文本→输出文本"的问题。这种统一简化了任务设计,也展示了Transformer的通用性。

模型年份架构参数量核心贡献
BERT2018Encoder3.4亿双向预训练,上下文表示
GPT-22019Decoder15亿无监督多任务学习
T52019Encoder-Decoder110亿Text-to-Text统一框架
GPT-32020Decoder1750亿涌现能力,上下文学习
ChatGPT/GPT-42022-23Decoder未公开指令遵循,人类对齐

从 Transformer 到世界模型

到了2020年代中期,Transformer已经远远超出了自然语言处理的范畴,成为通用人工智能的基础架构:

这种通用性引发了一个深刻的思考:Transformer是否正在成为一种"通用计算架构",类似于图灵机或冯·诺依曼架构,但针对可微分计算和模式识别?如果答案是肯定的,那么2017年的那篇论文可能标志着一个新时代的开端。

📌 关键概念:涌现能力(Emergent Abilities)

涌现能力指模型在小规模时不具备、但在规模达到某个阈值后突然出现的技能。例如,GPT-3在某些任务上表现出上下文学习(In-Context Learning)、思维链推理(Chain-of-Thought Reasoning)等能力,而GPT-2几乎没有。涌现现象是"规模定律"最引人深思的方面——它暗示我们尚未触及Transformer的潜力上限。

局限与未来:Transformer 之外是什么?

尽管Transformer取得了惊人的成功,但它并非完美的终极架构。研究界正在积极探索下一代架构:

效率问题

Transformer的O(n²)注意力复杂度限制了它处理超长序列的能力。对于一篇百万字的小说或整个基因组序列,标准Transformer的内存需求是天文数字。稀疏注意力(Sparse Attention)、线性注意力(Linear Attention)、闪存注意力(Flash Attention,2022)和状态空间模型(State Space Models,如Mamba,2023)都在试图解决这个问题。Mamba及其变体在保持全局依赖能力的同时,将复杂度降到O(n),在某些任务上已经可以匹敌Transformer。

归纳偏置的缺失

Transformer是"通用"的——它几乎不对输入数据做任何假设。这既是优点(通用性强),也是缺点(对特定数据结构不够高效)。CNN有平移不变性的归纳偏置,RNN有顺序处理的归纳偏置,而Transformer什么都没有。对于图像等具有强烈局部结构的数据,纯Transformer可能需要更多的数据和计算才能学到CNN天然具备的特性。混合架构(如CNN+Transformer)正在成为视觉领域的主流。

推理与规划的局限

Transformer本质上是"下一个 token 预测器"。它擅长模式匹配和插值,但在严格推理、数学证明、长期规划等需要多步逻辑推导的任务上仍然薄弱。研究者正在尝试各种方法来增强Transformer的推理能力:思维链提示(Chain-of-Thought Prompting)、工具使用(Tool Use)、与符号系统的结合等。但根本性的突破——让神经网络像人类一样进行抽象推理——仍然是一个开放的挑战。

可解释性

Transformer的黑盒特性甚至比CNN更严重。注意力权重确实提供了一种"解释"——我们可以看到模型在关注什么——但这种解释是表面的。注意力权重高不等于模型"理解"了;注意力权重低也不等于信息没有被使用(因为残差连接绕过了注意力层)。Mechanistic Interpretability(机械可解释性)是一个新兴的研究方向,试图从电路和算法的层面理解Transformer内部到底在计算什么。

Transformer的故事是一个关于简约之美的故事。它没有使用复杂的循环或卷积,只用了一个简单的思想——注意力——就解决了困扰领域多年的问题。它的成功提醒我们,在科学和工程中,有时候最优雅的解决方案也是最强大的。

但Transformer的成功也是一个关于规模的故事。没有海量数据、没有强大算力、没有分布式训练基础设施,单纯的注意力机制不会自动产生GPT-4。Transformer是算法、数据、工程和计算的交响曲。

从2017年那篇看似普通的论文,到2026年AI Agent席卷全球,Transformer用不到十年的时间重新定义了人工智能的每一个维度。它是否会继续主导下一个十年?还是会被某种更优雅、更高效的架构取代?答案还没有揭晓。但无论如何,Transformer已经确立了自己在AI历史上的不朽地位——它是让机器真正开始"理解"语言的转折点。

"注意力是你所需要的一切。"这句话当时听起来像是研究者的自负宣言。回头看,它更像是一个预言。 —— 《Attention Is All You Need》的后世评价