为什么 Transformer 会成为主流架构

在 Transformer 出现之前,自然语言处理领域的主流架构是 RNN 和 LSTM。它们的共同特征,是必须按照序列顺序逐步处理输入,也就是从左到右一个 token 一个 token 地计算。

这种机制有两个明显限制:

  1. 并行能力差:因为后一个状态依赖前一个状态,难以充分利用 GPU 的大规模并行计算能力。
  2. 长距离依赖困难:序列越长,前文信息越容易在传播过程中衰减。

Transformer 的关键突破在于:它不再依赖循环结构,而是允许模型在同一层中同时观察整段输入,并通过注意力机制动态计算各个 token 之间的关系。

自注意力的核心问题:当前 token 应该关注谁

语言理解的本质之一,是确定上下文中的关系。比如在句子:

The animal didn’t cross the street because it was too tired.

模型需要判断“it”指代的是 animal 还是 street。自注意力机制就是为解决这类问题而设计的。

在 Transformer 中,每个 token 会被映射为三组向量:

  • Query(Q):当前 token 正在寻找什么信息
  • Key(K):当前 token 可以提供什么特征
  • Value(V):当前 token 实际承载的内容信息

计算时,模型会用当前 token 的 Query 去和其他 token 的 Key 逐一匹配,从而得到一组注意力得分。得分越高,说明该 token 与当前 token 的关联越强。随后,这些得分会被用于加权整合对应的 Value 信息。

缩放点积注意力公式

这一过程通常写作:

Attention(Q, K, V) = softmax((Q * K^T) / sqrt(d_k)) * V

这个公式可以拆开理解:

  1. Q × Kᵀ:计算当前 token 与其他 token 的相关性。
  2. 除以 sqrt(d_k):防止维度较高时点积数值过大,导致 softmax 过于极端。
  3. softmax:将相关性转换为概率分布。
  4. 乘以 V:按权重聚合其他 token 的信息,形成当前 token 的新表示。

因此,自注意力机制并不是简单地“看所有词”,而是“根据任务需要,动态决定看谁更多、看谁更少”。

多头注意力:让模型并行学习不同关系

如果只有一套注意力机制,模型很容易只在某一类关系上表现突出,例如语法依赖或局部语义匹配。为增强表达能力,Transformer 引入了多头注意力(Multi-Head Attention)。

所谓“多头”,就是把输入向量投影到多个不同子空间,让每个头学习不同类型的模式。例如:

  • 某些头更关注语法结构
  • 某些头更关注实体指代
  • 某些头更关注语义相似性或因果关系

最后,各个头的输出会被拼接并重新映射,形成更丰富的上下文表示。对于大语言模型而言,这种设计是其能够同时处理多种语言关系的重要原因之一。

没有循环后,顺序信息如何保留

Transformer 允许并行处理输入,但也因此失去了循环网络天然具备的顺序感知能力。为了让模型知道 token 的先后位置,研究者引入了位置编码(Positional Encoding)。

最早的 Transformer 使用的是基于正弦和余弦函数的绝对位置编码;而在后续大型模型中,更常见的是相对位置编码和旋转位置编码(RoPE)。

位置编码的作用不是“记住第几个词”,而是让模型能够在计算注意力时理解:

  • 谁在前,谁在后
  • 谁与谁距离更近
  • 某种结构是否在局部重复出现

这一步对于语义理解、长上下文推理和代码建模都非常关键。

为什么 Transformer 特别适合大模型扩展

Transformer 的另一个重要优势,是它的结构高度标准化。核心计算主要由矩阵乘法构成,这使得它非常适合 GPU 和 TPU 等硬件进行高吞吐并行计算。

从工程角度看,这意味着:

  • 参数规模更容易扩展
  • 训练效率更高
  • 架构更适合与分布式系统结合

也正因为如此,Transformer 才成为 GPT、Claude、Llama 等主流大模型的共同基础。

结语

Transformer 的重要性,不仅在于它提出了一个新架构,更在于它找到了一个能够随着数据、参数和算力持续扩展的统一范式。

理解自注意力、多头注意力和位置编码,并不只是为了读懂论文;它们也是理解大语言模型为什么能建立上下文关系、保持长距离语义一致性,并在复杂任务中生成合理结果的基础。