序列模型与Transformer

掩码(因果)注意力(masked / causal attention)

/ maskt (KAW-zul) uh-TEN-shun /

掩码注意力,又称因果注意力,是带一条严规的自注意力:在算某个词元的表示时,模型可以看那个词元及它之前的一切,却绝不可看排在它之后的任何东西。这等同于机器版的「写故事不偷看下一页」——每个词都是只凭已在纸上的词来决定的。所谓「掩码」,实实在在就是一道在 softmax 运行之前、把未来位置遮住的屏。

为何要强制这条?因为生成式模型被训练来预测下一个词元,而这个任务只有在模型无法偷看答案时才有意义。训练时为求效率,整句目标会一次性在场,于是若不加掩码,模型大可径直抄下它本该去猜的那个词。因果掩码把所有未来位置的分数设为负无穷,softmax 随后把它们变成恰好为零的权重——于是未来的词元毫无贡献,模型被逼着真正去预测。

正是这一条约束让仅解码器的语言模型转得起来,也正因如此,它训练时的行为与使用时的行为相吻合:推理时未来确实尚不存在,掩码让训练去尊重同样的这条界限。代价是,因果模型永远只看得到左侧的上下文,所以它无法像双向编码器那样,凭一个靠后的词去修订一个靠前的词。这桩交易——以单向阅读换取生成能力——深深烙进了当今聊天机器人看世界的方式里。

在「猫坐在垫子上」上训练时,当模型预测「坐」字,掩码把「在垫子上」整段藏起。模型必须仅凭「猫」来猜出「坐」——这正是它真正生成文本时会面对的情形。

掩码挡住未来,模型便无法在预测时作弊。

因果掩码不是可有可无的装饰——正是它让「预测下一个词元」的训练成立。去掉它,模型就能读到它本该预测的答案,什么有用的东西也学不到。这也解释了为何仅解码器模型严格地从左向右读,无法利用右侧的上下文。

又称
causal attentioncausal mask掩码注意力因果注意力遮罩注意力