第2章:Transformer架构——LLM的心脏,你必须了解的结构

第2章:Transformer架构——LLM的心脏,你必须了解的结构

系列导读:本章是系列中最偏技术原理的一章。如果你不需要深挖底层,可以跳过神经网络和注意力机制的具体数学,但Attention 机制的概念建议不要跳过,它是理解一切 LLM 能力的基础。


一、为什么 Transformer 如此重要?

在 Transformer 之前,NLP 主要用 RNN(循环神经网络)和 LSTM(长短期记忆网络)。它们的致命问题在于:无法并行计算——处理一个句子,必须一个词一个词地按顺序来,后面的词必须等前面的处理完。

Transformer(2017年 Google 提出,论文《Attention Is All You Need》)革命性地用**自注意力机制(Self-Attention)**替代了顺序依赖,实现了:

  • 全并行计算:句子中所有词同时处理
  • 无限感知距离:一个词可以直接「看到」句子里的任何一个词,无论多远
  • 极强的可扩展性:奠定了「大」模型的基础

二、Transformer 的整体架构

LLM(尤其是 GPT 系列)用的是 Decoder-only 架构,只保留 Transformer 的解码器部分。一张图说清楚:

输入文本 → Token Embedding + 位置编码 → N个解码器层 → 输出概率分布 → 选词 → 生成文本

每层解码器内部包含两个核心子模块:

1. 多头自注意力(Multi-Head Self-Attention)

这是 Transformer 的灵魂。

自注意力的核心思想:计算句子中每个词与其他所有词之间的关联强度,然后根据关联强度加权聚合信息。

比如输入句子:「猫坐在垫子上,因为它很暖和。」

传统序列模型处理「它」时,只能看到前面的词,难以判断「它」到底指猫还是垫子。而 Transformer 的注意力机制让「它」直接去「问」前面的所有词:「你跟我关系近吗?」

结果「垫子」和「暖和」得分最高,「猫」得分次之——模型就明白「它=垫子」了。

三步走:Query, Key, Value

这是注意力机制最经典也最容易被误解的部分。

  • 每个词拿出一组「查询向量」(Query):“我有问题要问别人”
  • 每个词拿出一组「键向量」(Key):“这是我对自己的描述,来和我匹配”
  • 每个词拿出一组「值向量」(Value):“如果匹配上了,这是我贡献的信息”

过程如下:

  1. 每个词的 Query 向量,与所有词的 Key 向量做点积 → 得到一个注意力分数
  2. 分数经过 softmax 归一化 → 得到权重
  3. 用权重加权所有词的 Value 向量 → 得到这个词的新表示

数学公式:

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

注意除以 sqrt(d_k) 的缩放步骤——在维度很高时,点积结果会变得极大,softmax 会退化成接近 one-hot 的极端分布,缩放可以平滑它。

多头(Multi-Head)

一套 Query/Key/Value 不够用,来多套——比如8套或16套。

每套「头」关注不同的语言模式:

  • 第1个头关注语法关系(主语-谓语)
  • 第2个头关注语义相似度
  • 第3个头关注位置相邻关系
  • 第4个头关注代词指代

最后把多个头的结果拼接起来,用一个线性变换合并。多头让每个数学空间「各司其职」,信息更丰富。

2. 前馈神经网络(Feed-Forward Network, FFN)

自注意力之后,每个词向量经过两层全连接网络:

FFN(x) = ReLU(xW1 + b1)W2 + b2

它的作用是把注意力的结果做一个非线性映射,增加模型的表达能力。你可以把它理解为让每个词在注意力的基础上「深度加工」一下。

现代大模型常用 GELU 或 SwiGLU 替代 ReLU,性能更好。

三、位置编码:为什么需要它?

Transformer 的注意力机制是「全连接」的——它不在乎词在句子中的位置。但自然语言里位置极重要:「我打你」和「你打我」意思完全不同。

位置编码(Positional Encoding)就用来注入位置信息。早期用正弦余弦函数生成位置向量,加到词向量上。现代大模型多用可学习的位置嵌入(Learnable Positional Embedding)或旋转位置编码(RoPE)

**RoPE(旋转位置编码)**是当代大模型(LLaMA、智谱、通义等)的主流选择。思路很巧妙:

不把位置信息作为外部向量注入,而是让注意力计算中的 Query 和 Key 向量根据距离做「旋转」,旋转角度由位置决定,距离越远旋转角度越大。这样模型能学习到「距离越远的词,关联越弱」的偏置。

四、Layer Normalization:训练稳定的基石

Transformer 层数很深(GPT-3 有96层),深网络里信号的分布会一层层漂移,导致训练不稳定。

Layer Norm 在每一层内部对输入进行归一化,把值拉到均值为0、方差为1的分布。这样多层叠加时信号不会爆炸也不会消失。

现代变体常用 RMSNorm(Root Mean Square Norm),计算更简洁,LLaMA 等模型在用。

五、现代 LLM 对 Transformer 的改造

原设计 改进 代表模型
LayerNorm → 先归一化再注意力 Pre-Norm:先归一化再进入子层 GPT-3、LLaMA 等
ReLU 激活 SwiGLU/GELU 激活 GPT-4、LLaMA
原版位置编码 RoPE 旋转位置编码 LLaMA、智谱
全部密集层 MoE(混合专家)稀疏激活 Mixtral、GPT-4
全局注意力 滑动窗口注意力/稀疏注意力 Longformer、Mistral

六、为什么理解 Transformer 结构很重要?

你可以「用」GPT 而不了解 Transformer,但如果你要做 LLM 工程优化,以下问题都绕不开底层结构:

  • KV Cache 优化:Transformer 解码时每步都要计算所有 Key 和 Value,重算太浪费。缓存历史 KV 能把时间复杂度从 O(n²) 降到 O(n)。
  • 注意力幻方:长上下文时自注意力的计算复杂度是 O(n²),这是 LLM 最大的性能瓶颈。
  • 量化推理(8bit/4bit):知道矩阵乘法的内部结构,才知道哪些权重可以降精度而不影响效果。
  • Prompt 压缩:理解位置编码和注意力的偏置,才知道如何让模型更关注关键信息。

七、本章小结

  • Transformer = 自注意力 + 前馈 + 位置编码,三者缺一不可
  • 自注意力让任意两个词之间直接通信,打破了序列模型的时间依赖
  • Multi-Head 让多维度语义模式并行计算
  • 现代大模型在位置编码、归一化方式、激活函数上做了显著优化
  • Transformer 架构的天花板决定了 LLM 能力的上限:O(n²) 的注意力复杂度是核心瓶颈

思考题

  1. 为什么 Transformer 的自注意力是 O(n²),这对长上下文意味着什么?
  2. 多头注意力中,不同的「头」真的会学到不同的模式吗?你怎么验证这件事?