一篇论文如何改变世界
2017 年 6 月,Google Brain 团队发表了《Attention Is All You Need》。这篇论文只有 15 页,却在此后几年内彻底重写了 NLP、CV、语音识别乃至蛋白质结构预测领域的规则。它的核心主张极为大胆:抛弃所有循环结构,只用注意力机制。

在 Transformer 之前,序列建模的标准范式是 RNN/LSTM。它们有一个根本性的缺陷:顺序计算。处理第 t 个 token 必须等第 t-1 个 token 完成,这使得训练极难并行化。
Self-Attention:核心计算引擎
Self-Attention 的计算分三步:
- 1将输入序列线性投影为三组矩阵:Query(Q)、Key(K)、Value(V)
- 2计算注意力权重:scores = QK^T / √d_k,然后通过 softmax 归一化
- 3用权重对 V 加权求和:Attention(Q,K,V) = softmax(QK^T / √d_k) · V
其中 √d_k 是关键的缩放因子。当 d_k 较大时,点积的方差增大,softmax 会进入梯度极小的饱和区。除以 √d_k 使方差保持稳定。
"The dot products grow large in magnitude, pushing the softmax function into regions where it has extremely small gradients." —— Vaswani et al., 2017
多头注意力:并行的多视角
单头注意力只能在一个表示子空间中捕捉关系。多头注意力(Multi-Head Attention)将 Q/K/V 分别投影到 h 个独立子空间,并行执行 h 次 Attention,最后拼接并线性变换。
不同的注意力头可以专注于不同类型的关系:句法依存、语义相似性、指代消解等。这种分工在大量可视化研究中得到了验证。
位置编码:注入时序信息
Transformer 对序列中所有位置的处理完全对称——它本身不知道 token 的顺序。为此,原始论文使用正弦/余弦函数注入位置信息:
PE(pos, 2i) = sin(pos / 10000^(2i/d_model))
PE(pos, 2i+1) = cos(pos / 10000^(2i/d_model))
这种设计的优雅之处:对于固定偏移量 k,PE(pos+k) 可以表示为 PE(pos) 的线性函数,模型能轻松学习相对位置关系。
从原始 Transformer 到 GPT 系列
GPT 系列采用仅解码器(Decoder-only)架构,通过因果掩码(Causal Mask)实现自回归语言建模——每个 token 只能看到它之前的上下文,训练目标是最大化序列的联合概率。
大规模神经网络训练过程规模定律(Scaling Laws) 的发现表明:在足够多的数据和计算资源下,模型性能随参数量的对数线性增长——这一发现成为了大语言模型竞赛的理论基础。
为什么 Transformer 如此成功?
- 并行训练:所有位置同时计算,充分利用 GPU/TPU 的并行能力
- 长程依赖:任意两位置之间的路径长度为 O(1),而 RNN 是 O(n)
- 可扩展性:架构简单,易于堆叠,参数量可扩展到万亿级别
- 迁移学习:预训练-微调范式在几乎所有任务上都取得了突破性进展