整个大语言模型就是由一系列 Transformer 块组成的。每个块处理其输入,然后将处理结果传递给下一块。
在原始的 Transformer 论文中约为 6 块,现在许多 LLM 中已经超过 100 个了。

每个 Transformer 块由两个首尾相接的组件构成:
- 自注意力层(Self-Attention)
- 前馈神经网络层(Feed-Forward Network,简称 FFN)

自注意力层
注意力机制帮助模型在处理特定词元的时候 整合上下文信息。
来看一个例子:
狗追猫,因为它为了预测"它"之后的内容,模型需要知道"它"指代的是什么 —— 是"狗"还是"猫"?
注意力机制会将上下文信息添加到"它"这个词元的表示中。

自注意力的工作原理
注意力机制会为"它"这个词元计算它与句子中所有其他词元的关联程度:
- 它和"狗"有多相关
- 它和"猫"有多相关
- 甚至它和"追"、"因为"等词之间的关系
这些相关性通过一个叫做"注意力权重"的分数来表示 —— 相关性越高,注意力分数越大。
下图是另外一段英文提示词文本:
The cat sat on the mat在自注意力层所生成的权重矩阵图:

- 横轴(Key):被关注的词,即"被看的对象"
- 纵轴(Query):当前在处理的词,即"正在看别人的词"
- 单元格中的值:Query 对 Key 的关注程度(注意力权重),数值越大,颜色越深
图中 sat → The 的注意力值是 0.23,意味着在处理 "sat" 这个词时,模型"最关注"的词之一是 "The";cat → on 的注意力值是 0.21,表示 "cat" 在编码时也部分关注了 "on"。
回到"狗追猫"的例子,假设注意力机制得出以下权重:
"它" 对每个词的注意力权重:
狗:0.3
猫:0.6
其他词:0.1模型"认为"——"它"更可能指的是"猫"。那么模型可能就会生成诸如"它吓到了狗"的后续内容。
核心:当前词会去关注其它词,根据相关性分配权重,从而形成一个更有语境感知的表达。
多头注意力
所谓多头注意力(Multi-Head Attention),指的是模型不只使用一个注意力机制去"看"上下文,而是使用多个注意力头(head),每个从不同的角度并行地关注输入中的不同部分。
一个注意力头只能关注一套特定的关系(比如"它"和"狗、猫"之间的关系),但现实语言中的语义很复杂:
- 有的头可能专注于语法(主语-动词关系)
- 有的头可能关注指代("它"指代谁)
- 有的头可能关注情感、时间顺序等等
多头注意力可以让模型从多个"子空间"中提取信息,从而提升理解力和泛化能力。
继续用前面的例子:
狗追猫,因为它假设有三个注意力头,它们分别学习到了不同的关注模式:
- Head 1:指代消解视角 —— "它"主要关注"猫",权重为:猫 0.6,狗 0.3,其它词 0.1
- Head 2:句法结构视角 —— "它"关注"追"这个动词,理解句子动作逻辑;在这个头中,"追"的相关性得分最高
- Head 3:逻辑关系视角 —— "它"关注"因为",模型试图理解因果结构;在这个头中,"因为"的相关性得分最高
这些注意力头会各自生成一份"它"的表示,最后再把这些表示拼接合并起来,形成一个更加丰富、综合的向量。这个向量同时融合了:
- 谁是"它"可能指代的对象
- "它"参与了什么样的动作
- "它"在语义上处于怎样的逻辑位置
- ……
"它"所对应的向量背后的语义就非常丰富了。这也是为什么前面说 LLM 只需要取最后一个词元来预测下一个词 —— 它已经吸收了整句话的信息。
这就像一个小型"专家团队",每个注意力头都是一个"专家",专门从某种语言视角来理解当前词元。最终,它们的意见会被整合,让模型拥有更全面的判断力。
前馈神经网络层
自注意力机制让每个词元在上下文中"看别人",整合其他词的信息。但仅靠这些信息还不够,Transformer 还需要进一步让每个词自己思考、提炼、变换。这个任务,就交给了前馈神经网络层(Feed-Forward Network,简称 FFN)。
前馈神经网络的特别之处在于:它不会"看别人",只处理自己。
🙋 怎么处理?
它是对每一个词元单独做的一次变换处理。你可以理解为:自注意力层结束后,每个词元都从"他人"那里学到了不少内容;接下来轮到它自己好好消化一遍。
🙋 如何消化?
把词元当前的表示向量送入一个小型的神经网络中,通常会包含两层线性变换和一个非线性激活函数,流程如下:
输入 → 线性变换(升维) → 激活函数 → 线性变换(降维) → 输出
再具体一点,这一过程可以用公式表示为:
FFN(x) = GELU(x · W₁ + b₁) · W₂ + b₂其中 GELU 是一种激活函数,负责加入"非线性思考能力"。
继续用例子:
狗追猫,因为它在经过自注意力机制之后,"它"这个词已经看向了上下文,并初步融合了来自"猫"、"狗"等词的语义信息。
但是,这样的表示只是"初加工品"。模型还需要进一步处理它,让它具备更强的语义表达能力和推理能力。这时,"它"的向量就会被送入前馈网络中:
- 前馈层会先把这个向量升维到一个更高维度(比如从 768 维扩展到 3072 维)
- 经过 GELU 激活函数进行非线性处理
- 然后再降维回原来的大小,形成一个新的、更复杂的向量表示
这个新表示就是"它"这个词元的"升级版本",里面包含了模型对"它"这个词更深层的理解,可以帮助模型提取出更适合判断行为、情感、逻辑的语义特征。最终形成的向量将送入下一层 Transformer,继续处理。
因此,前馈层看起来"只是对每个词做了一遍变换",其实非常关键。如果 Transformer 只有注意力层、没有前馈层,那它就像是一个只会模仿别人的人,不会自己总结、推理和表达。
如果说自注意力阶段是"看外部世界",那么前馈网络阶段就是"闭上眼睛思考自己"。
小结
把 Transformer 块拆开看,内部其实就是这两件事的循环:
| 子层 | 在做什么 | 比喻 |
|---|---|---|
| 自注意力层 | 看上下文,把其他词的信息融进来 | 看外部世界 |
| 前馈神经网络层 | 对自己做非线性变换,提炼语义 | 闭眼思考自己 |
一个块 = 一次"看 + 想",N 个块堆起来 = N 轮的"看 + 想"。
越深的层,通常学到的语义就越抽象 —— 浅层可能在学语法结构、词性,中层在学指代、依赖关系,深层在学逻辑、推理。100 多层堆下去,你就得到了一个能跟你聊量子力学的 GPT。
-EOF-