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 实时做)

开挖空模式,对着上面的图,用你自己的话回答下面每一问,串成完整链路。卡住就点开对应空格核对。

  1. 一段文字进来,先经过什么、变成什么?(到"词向量"为止)
  2. embedding 表属于三段(配置/编译时/运行时)的哪一段?词向量呢?
  3. 一个 Block 里有几个子层?各自一句话干什么?它们共用的那个"Add & Norm"模式怎么写?
  4. 注意力内部:从 Q/K/V 到最终输出,中间四步是什么?÷√d 和 softmax 各解决什么?
  5. 为什么要多头?512 维怎么拆、怎么拼回来?
  6. 残差为什么能让模型堆几十层还训得动?(说到"捷径 + 梯度")
  7. LayerNorm 在防什么?它对谁单独做统计?
  8. FFN 和注意力的分工?用"交流/提炼"和"检测特征+联想记忆"说。
  9. 最后:一个 hidden state 怎么变成"下一个词"?(知道这是 Module 2 即可,说出大方向)

目标:不看正常版、只对着「挖空版」,把 ①→⑤ 顺畅讲完一遍。