R41 · 已知的训练句,也必须守住预测边界
知道位置还不等于守住预测边界。训练时完整答案已经在数据里,需要把每一行的输入、目标和可读来源对齐。
状态 b0
上下两排错开一格:gave输入对应her目标。当前输入合法可读,不等于当前答案已输入。
状态 b1
按query行、key列显示加性mask,对角线属于允许区域。这里的0是连接许可,不是零读取概率。
状态 b2
高亮gave行,只允许BOS、I、gave;her和a未来列被挡住。预测目标仍是her。
状态 b3
高亮行把合法分数归一化,未来列概率为0。观察允许区域怎样从mask变成真实权重。
只有高亮行切换成概率;其余行仍显示mask,不能把两种数字当作同一张权重表读。
状态 b4
BOS行只可读自身,权重为1,目标为I。对角线仍是已知输入而非目标答案。
状态 b5
I行只在BOS、I间分配权重,目标为gave。合法范围随当前输入位置扩大一格。
状态 b6
her行读前四个已知输入,目标为a。不能因her是前面某行的答案,就把它从本行合法前缀中删去。
状态 b7
a行读五个已知输入,下一词book仍未进入输入。检查目标轴与输入轴末端的错位。
公式与算例详情
输入、目标与可见范围一起核对
训练输入是 BOS、I、gave、her、a,监督目标依次为 I、gave、her、a、book。每个位置要预测的是下一个 token,而不是复制自己的输入。以第三列为例,输入 gave 所在的表示负责预测 her;它可以读取 BOS、I 和 gave,但不能读取作为第四个输入出现的 her。
按 query 行、key 列存储分数时,$M_{ij}=0$ 若 $j\le i$,否则为 $-\infty$;$A=\operatorname{softmax}(QK^{\mathsf T}/\sqrt{d_k}+M)$。所以保留对角线,屏蔽的是它右侧的未来列。对于一行示意 logits $(1,2,3,4,5)$,选中 gave 行后变为 $(1,2,3,-\infty,-\infty)$,softmax 为 $(0.090031,0.244728,0.665241,0,0)$。
padding mask 是另一项可见性限制,通常与 causal mask 共同使用;训练损失也应忽略填充目标。实现时应检查被完全遮住的行,避免 softmax 全为负无穷而出现 NaN。输入移位、mask 方向和 loss 目标必须一起核对,单看一个三角图容易画错。
参考与采用
- Vaswani et al. · Attention Is All You Need:原始 encoder–decoder Transformer:信息来源、并行性、路径和代价。 复核位置:§3、Table 1/2;本轮核对v7 PDF;首次提交2017-06-12
原课页采用记录:M25 mask 与预测目标。页码均按PDF物理页计。
继续学习
如果三角方向容易画反,先按输入与监督目标对应表列出 BOS I gave 与下一词目标,再在CLS 02“6 · 先写输入和标签,再画 mask”核对 gave 行。LAB 02“D · 源、decoder输入、目标,分别是哪一行?”检查 shift、EOS、PAD 与 loss;Transformer 的信息流“不同长度的 batch 同时需要两种 mask”继续区分 padding 和 causal 限制。