一个 Transformer 块怎样把 token 表示逐层加工成能理解顺序、关系和知识的表示?

Transformer 整体结构

约 13 分钟5 道自测更新于 2026-11-01

一句话记住Transformer 把注意力、前馈网络、层归一化和残差连接组合成一个可堆叠的块;GPT 类模型就是把这样的块叠很多层,再用位置编码补上顺序信息。

01学完你能做到

能画出一个 Transformer 块,知道每个部件为什么在那里。

上节讲了注意力这个核心零件。这节把零件组装成整台机器。

02全局鸟瞰(以 GPT 类解码器为例)

  1. 文本 → token → 查嵌入表得到向量(第 6 讲(分词:模型看到的是 token));
  2. 加入位置信息;
  3. 穿过 N 个完全相同结构的 Transformer 块(参数各不相同);
  4. 最后一层输出 → 映射回词表大小 → softmax → 下一个 token 的概率(第 4 讲(词向量与语言模型))。
GPT 类模型的处理链路
  1. 1切成 token得到 token ID
  2. 2查嵌入和位置形成初始表示
  3. 3通过 Transformer 块注意力与 FFN 反复加工
  4. 4映射到词表得到下一个 token 概率

回到第 1 步:继续生成直到停止

03一个块里有什么

每个块由两个子层组成,每个子层都配有「层归一化 + 残差连接」:

  • 子层 1:多头因果自注意力:让各位置之间交换信息(「横向」看别的词)。
  • 子层 2:前馈网络(FFN):每个位置独立地过一个两层的 MLP(「纵向」加工自己)。常见说法是:注意力负责「搬运信息」,FFN 负责「存储和加工知识」,很多事实知识被认为存在 FFN 里。

残差连接:给信息修一条捷径

输出 = 输入 + 子层(输入)。子层只需要学习「在原来基础上改多少」。为什么重要:第 5 讲(序列模型和它的瓶颈)讲过梯度连乘会消失。有了「+ 输入」这条捷径,梯度可以直接沿着加号原样传回前面的层,几十上百层也训练得动。这个想法来自图像领域的 ResNet(2015)。数值演示:输入 x = [1.0, 2.0],注意力子层算出的修改量是 [0.1, −0.3],输出 = [1.1, 1.7]。即使子层还什么都没学会(输出接近 0),信息也能完整传下去。

层归一化:把数值拉回正常范围

数据一层层加工,数值可能越来越大或越来越偏,训练就不稳定。层归一化把每个位置的向量调成均值 0、方差 1,再乘以可学习的缩放、加上可学习的偏移。数值演示:x = [2, 4, 6]

  • 均值 = 4;
  • 方差 = ((−2)² + 0² + 2²) / 3 = 8/3,标准差 ≈ 1.633;
  • 归一化 = [−2, 0, 2] / 1.633 ≈ [−1.22, 0, 1.22]。

原论文把归一化放在残差相加之后(Post-LN);现在大多数模型放在子层之前(Pre-LN,如上图),训练更稳。很多新模型还用更省计算的变体 RMSNorm。

前馈网络

对每个 token 向量:先放大到约 4 倍维度 → 激活函数 → 再缩回原维度。现代模型常把 ReLU 换成 GELU 或 SwiGLU 等门控变体。

Transformer 块按注意力、归一化、FFN 的顺序处理表示,并用两条残差捷径传递信息和梯度。
Transformer 块按注意力、归一化、FFN 的顺序处理表示,并用两条残差捷径传递信息和梯度。

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

在不注入位置信息时,自注意力无法区分词的绝对顺序:输入排列后,输出也会按同样方式排列,却不能判断哪个词在前、哪个词在后。因此必须额外注入位置信息。

方法一:正弦位置编码(原始 Transformer)给每个位置算一个由不同频率正弦、余弦组成的向量,加到词向量上。左图每一列是一个位置的「条形码」:上面的维度变化快(像秒针),下面的变化慢(像时针),组合起来每个位置独一无二。另一种做法是直接让模型学每个位置的向量(GPT-2、BERT 用的是这种),但训练时没见过的更长位置就无法处理。

方法二:旋转位置编码 RoPE(今天的主流,LLaMA、Qwen 等都在用)不再把位置「加」上去,而是把 Q 和 K 向量按位置旋转一个角度:位置 m 旋转 m×θ。数值演示(只看一对维度,θ = 30°):

  • 词在位置 2:转 60°;另一个词在位置 5:转 150°。夹角差 90°。
  • 整体平移到位置 10 和 13:转 300° 和 390°,夹角差仍是 90°。

两个向量的点积只取决于夹角,所以注意力分数只和两词的相对距离有关,和绝对位置无关。这很符合语言直觉(「形容词紧挨名词」与它出现在第几个字无关),而且便于通过调整频率来扩展上下文长度。

位置编码把顺序注入 token 表示,RoPE 通过旋转 Q 和 K 表达相对距离。
位置编码把顺序注入 token 表示,RoPE 通过旋转 Q 和 K 表达相对距离。

05参数都在哪:粗算一个 7B 模型

设隐藏维度 d = 4096,32 层:

  • 注意力:Q、K、V、输出 4 个 d×d 矩阵 → 4d² ≈ 6700 万
  • FFN:d→4d→d 两个矩阵 → 8d² ≈ 1.34 亿
  • 每块约 12d² ≈ 2 亿;32 块 ≈ 64 亿
  • 再加上嵌入表等,总量约 70 亿,这就是「7B」的大致来源。

(真实模型会因 SwiGLU、分组查询注意力等设计有出入,这里只演示量级。)

06编码器型 vs 解码器型

原始 Transformer(2017)用于翻译,有两部分:编码器读输入文本、解码器写译文,解码器还会通过「交叉注意力」查看编码器的输出。后来分化出两条路:

BERT(只用编码器)GPT(只用解码器)
注意力双向:每个词看全句单向:只看左边(因果掩码)
预训练任务完形填空(遮住 15% 的词让它猜)预测下一个词
擅长理解:分类、检索、相似度生成:写作、对话、代码
今天的地位仍用于搜索、嵌入模型等主流大模型(GPT、Claude、Qwen、DeepSeek、LLaMA…)

为什么生成式最后胜出?「预测下一个词」可以直接用来生成任何东西,形式统一,随规模扩大效果持续提升(下一节)。T5 这类编码器-解码器模型仍然存在,但不再是主流。

BERT 类编码器可看全句更适合理解任务,GPT 类解码器只看左侧更适合逐 token 生成。
BERT 类编码器可看全句更适合理解任务,GPT 类解码器只看左侧更适合逐 token 生成。

07延伸阅读

  • Vaswani et al., Attention Is All You Need, 2017:arxiv.org
  • Su et al., RoFormer: Enhanced Transformer with Rotary Position Embedding, 2021:arxiv.org
  • Devlin et al., BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding, 2018:arxiv.org
  • He et al., Deep Residual Learning for Image Recognition, 2015(残差连接):arxiv.org
  • Ba, Kiros & Hinton, Layer Normalization, 2016:arxiv.org
  • Shazeer, GLU Variants Improve Transformer, 2020(SwiGLU):arxiv.org
  • Datawhale《happy-llm》(中文开源教程):github.com
  • Jay Alammar, The Illustrated Transformer:jalammar.github.io

08一分钟讲给别人

试着用自己的话讲一遍GPT 类模型是把同样结构的 Transformer 块叠很多层。每块有两个子层:多头因果自注意力负责在词之间搬运信息,前馈网络负责加工每个词;每个子层都配有层归一化稳定数值,用残差连接修一条捷径让深层可训练。注意力本身不懂顺序,所以要加位置编码,现在主流的 RoPE 通过旋转让分数只取决于相对距离。BERT 是双向的编码器,擅长理解;GPT 是单向的解码器,擅长生成,是今天大模型的主流。

想一想

5 道自测

先在心里答一遍,再展开对照。能说清理由,比答对数字更重要。

  1. 01残差连接解决了什么问题?

  2. 02对 [1, 3] 做层归一化(不考虑缩放和偏移),结果是多少?

  3. 03为什么 Transformer 需要位置编码?

  4. 04RoPE 下,位置 (3, 7) 和位置 (100, 104) 两对词的旋转夹角差相同吗?为什么?

  5. 05想做「判断两段文本是否同义」的检索系统和「写营销文案」的应用,各自更接近哪类结构?

已看 0/5 题

练动手练习

在纸上画一个 Transformer 块,依次标出注意力、残差连接、层归一化和 FFN。然后把同一句话的两个词交换位置,写下如果没有位置编码,模型为什么无法仅凭词向量判断它们的先后。

完成这一课

完成这一课

读完讲义、看完自测答案,这一课就算学完了。

  • 读完讲义
  • 看完全部自测

本课为投资者教育内容,案例数字均为示意,不构成任何投资建议,也不承诺收益。规则和费率会变,实际操作前请以交易所、监管机构和产品的最新公告为准。