语言模型与架构模块三 · 注意力机制重点导读 · 12 分钟
手算一次注意力:从打分到加权求和
注意力是整个大模型最核心也最容易「背公式却不懂」的一步。这节课不写代码,先用一个 3 个词的短句,把 Query-Key-Value、softmax、加权求和全部手算一遍。
一句话概括注意力:每个词都在问「我该关注句子里的谁」。它带着自己的 Query 去和每个词的 Key 比相似度,得到一组分数;分数用 softmax 变成「注意力比例」;再拿这组比例去加权别人的 Value,汇总成新的表示。
- 打分:用 Query 和每个 Key 做点积,得到原始相似度分数(越大越相关)。
- 缩放:除以 √dₖ,避免维度一大分数就爆炸、softmax 梯度消失。
- 归一化:对这组分数做 softmax,变成加起来等于 1 的「注意力权重」。
- 加权求和:用权重去乘每个词的 Value,再全部加起来,就是这个词的新表示。
💡 小 N 手算的意义:先在 3 个词、2 维向量上把每个数字算出来,你就再也不会把 Q/K/V 搞混,也能一眼看懂样题里的矩阵乘法填空题。代码永远滞后于直觉。
完整版会带你把一个 3×2 的 Q、K、V 全部数字代入,逐格算出 3×3 的注意力矩阵,再手算加权求和;然后才用 numpy 复现验证。这是通往「多头注意力」「RoPE 位置编码」「MoE 路由」的地基。