AI 与大模型 · 第 5 期

Transformer 从零搭,注意力到底在注意什么

self-attention · attention is a matrix

"注意力"不是比喻,是一个你能算出来的矩阵。每个词去"看"句子里其他每个词,看多紧就是一个 0~1 的权重——所有词的权重排成矩阵,就是注意力矩阵。代词指谁、长依赖怎么连,全藏在这个矩阵里。8 步从零搭,你就懂了 Transformer 的心脏。
⏱ 约 12 分钟 🎯 想真正理解 Transformer 的人 📦 源:ai-engineering-from-scratch §8

01一个反共识:注意力不是"关注",是加权

"注意力机制"这名字误导了很多人,以为模型在"关注"某些词。其实它做的是一件很数学的事:给当前词,对句子里每个词算一个权重,加权求和。

Attention(Q,K,V) = softmax(QKT/√dk) V

Q(查询)、K(键)、V(值)都是输入变换出来的矩阵。QKT 算"当前词和每个词有多相关",softmax 归一化成权重,乘 V 加权求和。一句话:当前词 = 句子里所有词的加权平均,权重由相关性决定。这就是"注意力"的全部。

注意力不是"关注",
是加权求和。
灏天文库 · AI 与大模型 P.14

02注意力热力图:点词看它在注意谁

下面是一句话"猫 追 老鼠 因为 它 饿"。点任意词,看它在注意谁(颜色越深权重越高)。重点看"它"在注意谁——这就是代词消解。

🔥 注意力权重热力图
点一个词(行),看它在注意哪些词(列颜色越深权重越高)。
← 点一个词看它的注意力分布

038 步从零搭 Transformer

把注意力装进完整 Transformer,就这 8 步:

  1. token 化:句子切成词,每个词查表得一个向量(embedding)。
  2. 位置编码:注意力本身没有顺序,加上位置信息让它知道词的先后。
  3. 算 Q/K/V:embedding 乘三个权重矩阵,得查询、键、值。
  4. 算注意力:QKT/√d → softmax → 乘 V,得到加权后的表示。
  5. 多头:并行做多个注意力,每个头看不同关系,拼起来。
  6. 残差 + LayerNorm:加上输入、归一化,防梯度消失/爆炸。
  7. 前馈层:每个位置过一个 MLP,做非线性变换。
  8. 堆叠 N 层:上面 6 步是一层,堆 N 层(如 12、24)就是 Transformer。

没有黑魔法,每一步都是矩阵乘法 + 归一化。从零搭一遍(ai-engineering-from-scratch §8 给了完整代码),你就知道那些"涌现能力"其实是从这个简单结构 + 海量数据里出来的。

没有黑魔法,
只有矩阵乘法和海量数据。
灏天文库 · AI 与大模型 P.15

04带走这套清单

✅ 理解 Transformer 6 条可执行规则

  1. 从零搭一遍:8 步手写一遍,比看 10 篇博客都懂。
  2. 先懂单头再懂多头:单头是加权求和,多头是并行多个加权求和。
  3. 位置编码不能省:注意力无序,不加位置就分不清先后。
  4. 看注意力矩阵理解模型:代词指谁、依赖怎么连,都在矩阵里。
  5. 残差+LayerNorm 是稳定的关键:不加,深层堆不起来。
  6. 堆叠层数 = 容量:层数越多容量越大,但要数据喂够,否则过拟合。
搭一遍,
"涌现"就不神秘了。
灏天文库 · AI 与大模型 P.16