Module 1 · Transformer
总复习
图 + 挖空自测
Module 1 总复习
这是 Module 1 的"总集篇"。先通读整张心智模型图;然后点「🧩 挖空自测」把关键名词盖住,对着马赛克版自己复述,卡住就点开对应空格核对。能对着挖空版把整条链路讲出来,才算真学会。
当前:正常显示。点「挖空自测」开始测。
① 宏观数据流:字符串 → 下一个词
字符串 "The cat sat"
↓ tokenize
N 个 token id [1917, 995, …]
↓ 查 embedding 表(编译时·固定参数)
初始 词向量 [N × d_model]
↓ 进 N 层 Transformer Block(逐层加工)
每层输出新的 hidden state (含上下文,仍是 [N × d_model])
↓ 输出层(unembedding) 🅿️ Module 2
词表概率 → 采样 → 下一个词 "on"
② 一个 Transformer Block 内部
进来的 x [N × d_model]
↓ 子层 1
x = LayerNorm( x + 多头注意力(x) ) ← 交流
↓ 子层 2
x = LayerNorm( x + FFN(x) ) ← 提炼
↓
出去的 x → 进下一层(残差让 x 一路流动 = 残差流)
两个子层同一模式 x = LayerNorm( x + 子层(x) ):Add(残差)+ Norm(LayerNorm)。这个 Block 再叠 N 层。
③ 多头注意力内部
每个词 → 三投影 Q / K / V(各乘 W_Q/W_K/W_V)
↓
打分 = Q·K(点积,测相关)
↓ ÷√d(缩放,防 softmax 饱和)
↓ softmax(→ 和为1的注意力权重)
↓ 加权求和 V
↓ 开 多头(h 组并行,各看一种关系)→ concat 回 d_model → W_O
④ 组件速查(每个零件干什么)
| 零件 | 一句话作用 |
| Embedding | 查表把 token id 变成有语义的词向量(意义在向量的空间位置) |
| 注意力 | 交流:每个词按相似度从别的词收集信息,更新自己的表示 |
| Q / K / V | 一个词的三个角色:我找谁 / 谁找我 / 交出什么 |
| ÷√d | 把打分拉回温和范围,防 softmax 饱和成 one-hot |
| 多头 | 并行多套注意力,各看一种关系(指代/句法/邻接) |
| 残差 | output = x + 层(x),层只学 delta;给梯度留直通路 → 能堆几十层 |
| LayerNorm | 把每个词向量标准化(均值0标准差1)+ γ/β 可调 → 稳数值 |
| FFN | 提炼:放大→非线性→缩回;检测特征+联想记忆;约占 2/3 参数 |
⑤ 引导复述提纲(明天和 Copilot 实时做)
开挖空模式,对着上面的图,用你自己的话回答下面每一问,串成完整链路。卡住就点开对应空格核对。
- 一段文字进来,先经过什么、变成什么?(到"词向量"为止)
- embedding 表属于三段(配置/编译时/运行时)的哪一段?词向量呢?
- 一个 Block 里有几个子层?各自一句话干什么?它们共用的那个"Add & Norm"模式怎么写?
- 注意力内部:从 Q/K/V 到最终输出,中间四步是什么?÷√d 和 softmax 各解决什么?
- 为什么要多头?512 维怎么拆、怎么拼回来?
- 残差为什么能让模型堆几十层还训得动?(说到"捷径 + 梯度")
- LayerNorm 在防什么?它对谁单独做统计?
- FFN 和注意力的分工?用"交流/提炼"和"检测特征+联想记忆"说。
- 最后:一个 hidden state 怎么变成"下一个词"?(知道这是 Module 2 即可,说出大方向)
目标:不看正常版、只对着「挖空版」,把 ①→⑤ 顺畅讲完一遍。