跳到正文
04 自然语言处理与大模型进阶本域第 4 篇

Transformer 架构

用「全体同时开会」取代「逐字传话」,让长距离依赖一步可达

定义

Transformer 是 2017 年提出、完全基于注意力的序列建模架构,抛弃了循环结构。它由若干结构相同的层堆叠而成,每层含多头注意力与前馈网络,并配合残差连接和层归一化;序列顺序不再由时间步隐含,而是通过位置编码显式注入。

直观理解

循环网络像玩传话游戏:信息一个字一个字往下传,传得越远越失真,也没法并行。Transformer 换成全体同时开会——每个词都能直接看到所有词,谁和谁相关由注意力当场决定;词与词的先后顺序则靠给每个位置发一个「座位号」(位置编码)来标明。

图 1

Transformer 的数据流:嵌入与位置编码进入层层堆叠的注意力—前馈模块,最终输出下一个 token 的概率分布

图 2

三种架构变体的能力画像(定性评估,0–5 分):没有全能选手,选择取决于任务重心

  • Encoder-only(BERT)
  • Decoder-only(GPT)
  • Encoder-Decoder(T5)

工作原理

  1. 01

    词嵌入 + 位置编码

    token 先变成嵌入向量,再叠加位置编码。原论文用不同频率的正弦、余弦函数生成绝对位置;现代模型多改用旋转位置编码(RoPE),把位置信息编码成向量之间的相对旋转角,从而更好地外推到训练时未见过的更长序列。

  2. 02

    多头自注意力

    每个位置同时关注所有位置,多个头并行捕捉不同的关系模式。编码器允许双向关注,解码器额外加因果掩码,只允许看到当前及之前的位置。

  3. 03

    前馈网络

    注意力负责在位置之间搬运信息,前馈网络则在每个位置上独立地做非线性变换,通常先升维(如 4 倍)再降回。大模型中绝大部分参数其实都在这里。

  4. 04

    残差连接与层归一化,再堆叠

    每个子层外包一层残差(x + 子层(x))与层归一化,使梯度能顺畅地穿过几十上百层。现代做法把归一化放在子层之前(Pre-LN),训练更稳定;把这些层堆到几十层,就得到了大模型的主体。

图 3

两种主流架构变体的分工:Encoder-only 擅长理解,Decoder-only 擅长生成

图 4

上下文窗口的演进:位置编码方案的改进让可用上下文在数年内增长了三个数量级

应用场景

  • Decoder-only(GPT 系):自回归文本生成、对话与代码补全
  • Encoder-only(BERT 系):文本分类、抽取式问答与语义理解
  • Encoder-Decoder(T5、原始 Transformer):机器翻译、摘要等序列到序列任务
  • 跨模态扩展:ViT 处理图像 patch、Whisper 处理音频,共享同一骨干

常见误区

  • 去掉位置编码,自注意力对输入就是排列不变的,模型会退化成「词袋」,完全分不清语序。位置信息必须显式注入。
  • 不存在万能的架构。Encoder-only 几乎不会生成,Decoder-only 在需要双向理解的任务上偏弱,Encoder-Decoder 结构复杂、推理更贵——选择取决于任务,而不是「哪个更新」。
  • 架构相同不代表能力相同。训练数据、规模、对齐方式带来的差距,往往比架构变体的差异大得多。

关键术语

位置编码
显式注入序列顺序的信号,正弦式或 RoPE
RoPE
旋转位置编码,编码相对位置、外推性好
残差连接
让输入绕过子层直接相加,缓解深层梯度消失
Pre-LN
把层归一化放在子层之前的稳定化做法

延伸阅读