Lecture 05 · 已知的训练句,也必须守住预测边界

R41 · 已知的训练句,也必须守住预测边界

知道位置还不等于守住预测边界。训练时完整答案已经在数据里,需要把每一行的输入、目标和可读来源对齐。

状态 b0

上下两排错开一格:gave输入对应her目标。当前输入合法可读,不等于当前答案已输入。

输入预测BOSIIgavegaveherheraabook同一列:输入 gave,监督目标是下一个 her。允许读取当前输入,不等于允许读取当前答案。

状态 b1

按query行、key列显示加性mask,对角线属于允许区域。这里的0是连接许可,不是零读取概率。

输入预测BOSIIgavegaveherheraabookkey 列 →query ↓BOSIgaveheraBOS0−∞−∞−∞−∞I00−∞−∞−∞gave000−∞−∞her0000−∞a00000Mᵢⱼ = 0 当 j ≤ i未来列:−∞

状态 b2

高亮gave行,只允许BOS、I、gave;her和a未来列被挡住。预测目标仍是her。

输入预测BOSIIgavegaveherheraabookkey 列 →query ↓BOSIgaveheraBOS0−∞−∞−∞−∞I00−∞−∞−∞gave000−∞−∞her0000−∞a00000Mᵢⱼ = 0 当 j ≤ i未来列:−∞gave 行可读前 3 个输入该行要预测:her

状态 b3

高亮行把合法分数归一化,未来列概率为0。观察允许区域怎样从mask变成真实权重。

只有高亮行切换成概率;其余行仍显示mask,不能把两种数字当作同一张权重表读。

输入预测BOSIIgavegaveherheraabookkey 列 →query ↓BOSIgaveheraBOS0−∞−∞−∞−∞I00−∞−∞−∞gave.090.245.66500her0000−∞a00000Mᵢⱼ = 0 当 j ≤ i未来列:−∞gave 行可读前 3 个输入该行要预测:her示意 logits:(1, 2, 3, 4, 5)mask 后,未来权重为零。

状态 b4

BOS行只可读自身,权重为1,目标为I。对角线仍是已知输入而非目标答案。

输入预测BOSIIgavegaveherheraabookkey 列 →query ↓BOSIgaveheraBOS10000I00−∞−∞−∞gave000−∞−∞her0000−∞a00000Mᵢⱼ = 0 当 j ≤ i未来列:−∞BOS 行可读前 1 个输入该行要预测:I示意 logits:(1, 2, 3, 4, 5)mask 后,未来权重为零。

状态 b5

I行只在BOS、I间分配权重,目标为gave。合法范围随当前输入位置扩大一格。

输入预测BOSIIgavegaveherheraabookkey 列 →query ↓BOSIgaveheraBOS0−∞−∞−∞−∞I.269.731000gave000−∞−∞her0000−∞a00000Mᵢⱼ = 0 当 j ≤ i未来列:−∞I 行可读前 2 个输入该行要预测:gave示意 logits:(1, 2, 3, 4, 5)mask 后,未来权重为零。

状态 b6

her行读前四个已知输入,目标为a。不能因her是前面某行的答案,就把它从本行合法前缀中删去。

输入预测BOSIIgavegaveherheraabookkey 列 →query ↓BOSIgaveheraBOS0−∞−∞−∞−∞I00−∞−∞−∞gave000−∞−∞her.032.087.237.6440a00000Mᵢⱼ = 0 当 j ≤ i未来列:−∞her 行可读前 4 个输入该行要预测:a示意 logits:(1, 2, 3, 4, 5)mask 后,未来权重为零。

状态 b7

a行读五个已知输入,下一词book仍未进入输入。检查目标轴与输入轴末端的错位。

输入预测BOSIIgavegaveherheraabookkey 列 →query ↓BOSIgaveheraBOS0−∞−∞−∞−∞I00−∞−∞−∞gave000−∞−∞her0000−∞a.012.032.086.234.636Mᵢⱼ = 0 当 j ≤ i未来列:−∞a 行可读前 5 个输入该行要预测:book示意 logits:(1, 2, 3, 4, 5)mask 后,未来权重为零。

公式与算例详情

输入、目标与可见范围一起核对

训练输入是 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 目标必须一起核对,单看一个三角图容易画错。

参考与采用

原课页采用记录:M25 mask 与预测目标。页码均按PDF物理页计。

继续学习

如果三角方向容易画反,先按输入与监督目标对应表列出 BOS I gave 与下一词目标,再在CLS 02“6 · 先写输入和标签,再画 mask”核对 gave 行。LAB 02“D · 源、decoder输入、目标,分别是哪一行?”检查 shift、EOS、PAD 与 loss;Transformer 的信息流“不同长度的 batch 同时需要两种 mask”继续区分 padding 和 causal 限制。