2017 年,一篇标题相当“狂”的论文横空出世——《Attention Is All You Need》。 它提出的 Transformer 架构,几乎以一己之力重写了序列建模的游戏规则, 并成为后来 GPT、BERT 乃至整个大模型时代的共同地基。今天回头看,这个标题不是标题党,而是预言。
一句话复盘:Transformer 抛弃了 RNN 的“逐字阅读”和 CNN 的“局部视野”,改用自注意力让序列里的每个词一次性看到所有词——既看得更全,又训得更快。
困境:RNN 时代的两道枷锁
在 Transformer 之前,处理文本、翻译这类序列任务的主力是 RNN / LSTM / GRU。 它们的工作方式像人逐字朗读:一个时刻处理一个词,并把“记忆”通过隐藏状态传给下一个时刻。 这种设计直观,但有两道难以摆脱的枷锁:
- 无法并行:第 t 步必须等第 t-1 步算完,序列只能串行处理。再多 GPU 也救不了这种本质上的顺序依赖,训练长文本极慢。
- 长程依赖衰减:信息要一步步沿着时间链条传递,距离越远越容易“失真”或被遗忘。句首的主语,到句尾可能已经模糊。
CNN 虽然能并行,但它的感受野是局部的,要捕捉远距离关系得堆很多层,同样不够优雅。 整个领域都在等一个既能全局建模又能大规模并行的新范式。
Self-Attention:让每个词直接“环顾全场”
Transformer 的核心是 自注意力机制(Self-Attention)。它的直觉非常优雅: 对句子里的每一个词,都让它直接和句子里所有词(包括自己)算一遍“相关度”, 再按相关度加权汇总信息。于是任意两个词之间的距离都变成了 1 跳,不再有长程衰减。
具体做法是为每个词生成三个向量:Query(我想找什么)、
Key(我能提供什么)、Value(我实际携带的信息)。
用 Query 和所有 Key 做点积得到注意力分数,经过缩放与 softmax 归一化后,
再去加权所有 Value。一句话概括:
Attention(Q, K, V) = softmax(QKᵀ / √d) · V —— 谁和我相关,我就多听谁的。
以“它”指代谁为例:模型可以让“它”这个词的 Query 在全句中找到分数最高的那个名词, 从而自动学会指代关系,而完全不需要人工规则。
Multi-Head Attention:开多个“关注频道”
只用一套注意力,模型的关注模式就太单一了。Transformer 因此引入了 多头注意力(Multi-Head Attention):把注意力并行地做很多份(多个“头”), 每个头在不同的子空间里学习不同的关注模式。
打个比方:一个头可能专注于语法依赖(主谓宾),另一个头关注指代关系, 还有的头捕捉局部搭配。最后把所有头的结果拼接融合,模型就能同时从多个视角理解同一句话, 表达能力大大增强。
并行才是杀手锏:因为去掉了时间上的顺序依赖,整句话的注意力可以一次性矩阵运算算完。这意味着 Transformer 能把 GPU 算力吃满,训练规模与速度都不再被序列长度“锁死”——这正是大模型得以做大的前提。
位置编码:把“顺序”重新加回来
自注意力天然是“无序”的——它本身分不清词的先后。为了让模型感知顺序, Transformer 给每个位置加上了 位置编码(Positional Encoding), 用一组不同频率的正弦/余弦信号为每个位置打上独特的“位置指纹”。 这样既保留了并行的好处,又补回了语言中至关重要的顺序信息。
影响:一棵架构,长成整片森林
Transformer 真正的伟大,在于它的可扩展性与通用性。 它很快分化出两大流派,并最终汇成今天的 LLM 浪潮:
- BERT(Encoder 路线):用双向注意力做“完形填空”式预训练,擅长理解类任务,一度刷爆各种 NLP 榜单。
- GPT(Decoder 路线):用单向(自回归)注意力做“预测下一个词”,擅长生成,沿着这条路一路放大,最终长成了 ChatGPT 这样的对话大模型。
更妙的是,Transformer 并不挑食:文本、图像(ViT)、语音、蛋白质结构、多模态…… 几乎所有能被表示成“序列”的东西,都能套上这套架构。它从一个机器翻译的方案, 变成了整个 AI 领域的通用计算积木。
狐狸的碎碎念:好的架构像好的接口——它定义了一种可以被无限复用、无限放大的抽象。Transformer 之所以是“基石”,不是因为它解决了某个具体任务,而是因为后来几乎所有大事,都建在它之上。