返回 M01~M90 教材库
M22 · 预习教材教材已备 ≠ 学习已完成

M22:Transformer 第一性原理

Transformer 块让每个位置用注意力选择并聚合其他位置的信息,再通过残差、归一化和逐位置前馈网络持续变换表示。

2026-09-14QKV、ScaledDot-product、CausalMask、Multi-head、Residual、Normalization、FFN

内容类型:预习教材(不代表已完成)
日期:2026-09-14
阶段:P1 · AI Model Engineering 90
周次:W4 · Transformer 第一性原理
节奏:周一概念与阅读
状态:教材已备;学习未完成
标签:QKV、Scaled Dot-product、Causal Mask、Multi-head、Residual、Normalization、FFN

一句话定义

Transformer 块让每个位置用注意力选择并聚合其他位置的信息,再通过残差、归一化和逐位置前馈网络持续变换表示。

学习目标

  1. 解释 Q、K、V 各自在寻址与内容传递中的角色。
  2. 手算两个 token 的 scaled dot-product attention。
  3. 理解 causal mask、multi-head、residual、normalization 与 FFN 的功能边界。
  4. 能画出 decoder-only Transformer 块的张量流。

核心知识

输入表示 X∈R^(n×d_model) 通过三个线性投影得到 Q=XW_Q、K=XW_K、V=XW_V。每个 query 与所有 key 做点积得到匹配分数,softmax 后形成权重,再对 value 加权求和。Q/K 决定“看哪里”,V 决定“取什么内容”;三者来自同一输入并不意味着功能相同。

点积除以 √d_k,是因为若 Q、K 各维近似独立且方差为 1,点积方差随 d_k 增长。未经缩放的大值会让 softmax 过度尖锐、梯度变小。causal mask 在 softmax 前把未来位置分数置为负无穷,使第 t 个位置只能使用不晚于 t 的信息。

multi-head 把维度分成多个子空间,各头独立投影和聚合,再拼接投影。它提供多个并行关系通道,但不保证每个头都有人类可读语义。FFN 对每个位置独立应用两层线性变换与激活,负责通道内非线性变换;attention 负责跨位置通信。

residual 把子层输出加回输入,为信息和梯度提供直接路径;normalization 控制表示尺度。现代模型常用 pre-norm,即先归一化再进入子层,有利于深层训练;原论文常见 post-norm。位置编码为序列注入顺序,否则纯注意力对位置置换缺乏区分。

机制与手算

取两个 token、单头、d_k=2。假设 q₁=[1,0],keys 为 k₁=[1,0]、k₂=[0,1],values 为 v₁=[2,0]、v₂=[0,4]。未缩放分数为 [1,0],缩放后为 [1/√2,0],softmax 得权重 [α,1-α],输出为 [2α,4(1-α)]。不要提前代小数也能看出:token 1 更偏向 v₁,但仍混入 v₂。

若这是第一个位置的 causal self-attention,k₂ 对应未来 token,应被 mask,权重变成 [1,0]。这展示 mask 改变的不是 value,而是 softmax 可选择的候选。

最小练习

  1. 完成上述两 token 手算,保留 scale、softmax 和加权和三步。
  2. 再为第二个位置计算允许看两个 token 的输出。
  3. 画 X→Q/K/V→score→mask→softmax→weighted V→output。
  4. 把 residual、norm、FFN 添加成完整 decoder block。
  5. 为每个组件写一句“移除后失去什么”,留到 M25 验证。

常见误区

  • 把 attention 权重直接当作因果解释或完整重要性。
  • Q、K、V 被解释成三个独立 token 集合;它们通常是同一表示的不同投影。
  • causal mask 只遮 padding;两者目的不同,可能同时存在。
  • multi-head 数越多一定越强,忽略每头维度和总预算。
  • FFN 在位置间交换信息;实际上位置混合主要由 attention 完成。

文档与金融场景连接

在逐 token 生成金融说明时,causal mask 防止训练位置读取未来答案 token。注意力可以聚合前文金额与主体信息,但能聚合不代表数值推理必然正确,结构化核验仍应独立存在。

自检问题

  1. Q/K 与 V 为什么分别负责匹配和内容?
  2. 点积为什么除以 √d_k?
  3. causal mask 在 softmax 前还是后应用,为什么?
  4. attention 与 FFN 在 token 维和 channel 维的作用有何区别?

专业课程对齐

  • Stanford CS224N:对应 self-attention 与 Transformer 章节,是理解 Q/K/V、multi-head 和位置表示的主教材。
  • Stanford CS336:对应语言模型架构与从零实现内容,关注 decoder-only block 的张量形状和训练系统约束。
  • Hugging Face LLM Course:对应 Transformer 模型家族与 tokenizer/model pipeline,帮助把结构概念映射到实际模型输入输出。

深入学习提示

先精读 CS224N 的 attention/Transformer,再看 CS336 的实现视角,Hugging Face 只作模型全景选读。公式必须逐项解释 softmax(QKᵀ/√d_k)V:Q 是查询、K 决定可寻址性、V 携带聚合内容,√d_k 控制点积方差。手算两个 token 时保留 score、mask、softmax 和 weighted sum 四张小表。反例包括 Q/K 互换后语义改变、移除 causal mask 导致读取未来、没有位置信息使序列置换难以区分,以及把 multi-head 误解成多个独立模型。最后画 pre-norm decoder block 的信息流,分别标出 residual 主路径、attention 混合 token、FFN 逐位置变换,不能只背组件名。

学后填写区

  • 两 token 手算:____
  • Transformer 组件图:____
  • 最难理解的组件:____
  • 移除组件的预测:____
  • 实际学习日期与用时:____
学完后,请把自己的理解、练习结果和仍不确定的问题写入文末“学后填写区”,再到唯一进度账本更新状态。预先阅读后续教材不会自动增加完成数。