点击一个词元,观察它如何从整句收集信息。
教学张量,未训练:输入 16 维,8 个头,每头 2 维。词元切分仅用于演示;数值由公式实际计算,不代表语义关系。
每个 Query 关注哪些 Key
权重 01× = 不可见
Attention(Q, K, V) = softmax(QKᵀ / √dₖ + M)V
展开当前词元的每一项计算
8 个头,各自计算,再合并
切换头只改变观察角度;模型会并行计算全部 8 个头。每个头使用独立的投影参数。
拼接后的 16 维向量再乘 Wᴼ,输出 16 维。原版 Base 对应 8 × 64 → 512 → 512。头的职责来自训练,并没有预先指定“语法头”或“语义头”。
查看教学输入与当前头的投影矩阵
本实验的 X 直接作为一层注意力的输入。它不是训练得到的词嵌入,也不与位置编码实验或翻译演示共用模型权重。
公式与多头结构:原论文 §3.2 ↗
给“在哪里”一个向量,和“是什么”的词嵌入相加。
sin,维度 0cos,维度 1sin,维度 128cos,维度 129
按原版 d_model = 512 计算。图上只展示 4 个维度,完整向量有 512 维。
PE(pos, 2i) = sin(pos / 10000^(2i / 512))
PE(pos, 2i+1) = cos(pos / 10000^(2i / 512))
同一词元放在不同位置,词嵌入可以相同,但相加后送入网络的向量不同。这里保留正弦位置编码的原始数值;位置从 0 开始。
位置公式:原论文 §3.5 ↗
“那只猫坐在垫子上 → The cat sat on the mat”是预设教学脚本;这里展示数据流,不运行翻译模型,也不输出模型预测概率。
编码器读取整句那只 猫 坐 在 垫子 上最终编码器表示,作为每层交叉注意力的 K / V
正确答案先右移一位,再送入解码器
训练样本提供了整句正确答案,因此能把多个预测位置放在同一次前向计算中。因果遮罩仍会挡住右侧位置,防止提前看到当前要预测的答案。
生成时,下一个词元还未知,必须先得到它,才能把它加入下一步的输入前缀。用注意力替代循环网络,不等于一次就能生成整句。
右移与遮罩:原论文 §3.1 ↗