如果只用一句话概括:Transformer 让序列中的每个词都能直接“看到”其他所有词,并根据相关程度决定从谁那里获取信息。 今天几乎所有主流大语言模型都建立在这个架构之上。理解它,不是为了自己从零训练模型,而是为了更准确地判断模型为什么擅长某些任务、又为什么会在另一些任务上出错。

为什么需要 Transformer

在 Transformer 出现之前,处理文本的主流方法是循环神经网络(RNN)及其变体。它们像人逐字阅读一样,从左到右依次处理,每一步只能依赖前一步留下的“记忆”。这带来两个问题:一是句子一长,前面的信息就会被逐渐稀释;二是必须顺序计算,难以充分利用 GPU 的并行能力。

Transformer 的思路是放弃顺序处理,改为让所有位置同时计算彼此之间的关系。这样既解决了长距离依赖问题,又让训练可以大规模并行,为后来参数量和数据量的快速扩张铺平了道路。

自注意力:每个词都在“查资料”

可以把自注意力想象成一个检索过程。对于句子中的每个词,模型会生成三个向量:

  • Query(查询):我想找什么样的信息;
  • Key(键):我能提供什么样的信息;
  • Value(值):我实际携带的内容。

计算时,用当前词的 Query 去和所有词的 Key 做匹配,得到一组相关性分数,再按分数对所有 Value 加权求和。比如在“小王把书还给了小李,因为他明天要考试”中,“他”这个词会给“小王”和“小李”都分配一定权重,最终语义取决于模型从大量训练数据中学到的规律。

这也解释了一个常见现象:模型并不是在“理解”指代关系,而是在统计意义上判断哪种关联最合理。当语境模糊时,它同样会犯错。

多头注意力:同时从多个角度看

单一的注意力只能捕捉一种关系模式。多头注意力把计算拆成若干个并行的“头”,每个头可以关注不同类型的关联:有的偏向语法结构,有的偏向语义相似,有的偏向相邻位置。最后把各个头的结果拼接起来,得到更丰富的表示。研究者在可视化分析中确实观察到不同注意力头呈现出不同的分工倾向,但这种分工并不总是清晰可解释。

位置编码:告诉模型词的顺序

注意力计算本身不关心顺序,“猫追狗”和“狗追猫”在纯注意力看来是同一组词。因此 Transformer 需要额外注入位置信息。早期使用固定的正弦函数编码,后来出现了可学习的位置向量,以及目前大模型中常见的旋转位置编码(RoPE)等方案。位置编码的设计直接影响模型能处理多长的文本,这也是长上下文能力演进的重要技术基础。

前馈层与残差:知识存放在哪里

每个 Transformer 层除了注意力,还有一个前馈神经网络。一种常见的理解是:注意力负责在词与词之间“搬运信息”,前馈层负责对每个位置的信息进行加工和变换,模型在训练中学到的大量事实性知识也被认为部分存储在这些参数里。残差连接和层归一化则保证了几十上百层堆叠后训练依然稳定。

从架构看大模型的局限

理解 Transformer 的工作方式,有助于解释几个实际问题:

  1. 计算量随长度快速增长:标准自注意力的计算量与序列长度的平方相关,这是长文本推理昂贵的根源,也催生了 KV Cache 等优化手段。
  2. 按 Token 处理:模型看到的是分词后的 Token 而不是字符,所以数字母、做精确计算这类任务容易出错,详见分词器入门。
  3. 逐个生成:解码器每次只预测下一个 Token,一旦前面走偏,后面可能将错就错,这也是幻觉问题的成因之一。

小结

Transformer 并不神秘:自注意力负责建立词与词的联系,多头机制提供多视角,位置编码补上顺序信息,前馈层负责加工与存储。掌握这些直觉后,再去看模型评测、选型或提示词设计,你会更清楚哪些问题可以靠调提示词解决,哪些则是架构层面的固有限制。