跳到主内容

注意力掩码是什么?为什么看不到后面的字

2026-10-18 发布 来源:我告诉你AI导航 阅读

考试时不许偷看后面的答案,大模型生成文字时也有这条纪律,执行者是注意力掩码。文心一言、讯飞星火这类生成式产品,底层都靠一张遮罩保证每个字只看前文,本文讲这张遮罩长什么样、为什么必须存在、配错了会怎样。

考试时不许偷看后面的答案,大模型生成文字时也有这条纪律,执行者是注意力掩码。文心一言、讯飞星火这类生成式产品,底层都靠一张遮罩保证每个字只看前文,本文讲这张遮罩长什么样、为什么必须存在、配错了会怎样。

三角矩阵:遮罩长什么样

把句子里字与字的注意力打分排成一张方表,行是「正在处理的字」,列是「它可以看的字」。因果掩码把右上三角——所有排在当前字之后的位置——整个盖住,权重强制为零。盖住意味着这些位置根本不参与计算,后面的字对前面的字完全不可见。几何上看就是左下半个三角有值,所以它常被叫成三角矩阵。这份纪律保证了生成方向的纯粹:模型给出的每个字,都只建立在已经写出的内容上。

训练与生成:同一张遮罩的两副面孔

训练时一张表处理整段文字,靠遮罩才能并行:每个位置同时算自己的注意力,又互不偷看后文,一遍就学完所有位置的预测。生成时天然看不到未来——后面的字还没写出来——遮罩的作用退化为边界管理:聊天模板是怎么拼装对话的拼出的序列有多长,遮罩就盖多大;超出窗口的部分要靠裁剪或压缩处理,注意力是怎么算 QKV 的的打分环节严格在遮罩范围内进行。同一个规则,训练时管学风,生成时管边界。

情形遮罩的作用并行与边界
训练整段防偷看后文,各位置同时学预测可并行,一张表处理整段
逐字生成退化为边界管理序列多长遮罩就盖多大
超出窗口盖不住窗口之外的部分靠裁剪或压缩处理

遮罩相关自查清单:三个易错点

  • 多轮对话截断后,掩码要跟着重排,不能沿用旧表
  • 补齐用的空白位必须被遮罩盖住,否则模型会被空字符带偏
  • 训练与推理的遮罩逻辑不同,评估长文本效果时别混用
  • 排查长文本异常时,先过一遍这份清单再看参数

越过边界会发生什么

如果遮罩配错,后果立竿见影:训练时漏盖了后文,模型等于抄着答案做题,评估分数虚高、实际很弱;推理时把补齐位漏盖,模型会被一串空白干扰。注意力的计算量为什么随长度平方涨那篇还提到,遮罩虽然盖住了右上半区,计算仍按全表摊派,省的是有效性、省不了算力;真想省算力得靠多查询注意力是怎么省缓存的那类结构改造。logits 是什么讲的原始分,也是在遮罩生效后的向量上算出来的,遮罩一乱,分数全歪。

关于注意力掩码的三个常问问题

  • 为什么模型记不住窗口之后的内容?:遮罩与窗口共同划定了可见范围,窗口外的字根本不参与注意力计算,谈不上记住;只能靠外挂检索或压缩来补救。
  • 双向和单向模型的遮罩差别在哪?:单向生成模型盖住后文,只许看前文;双向理解模型不盖,两边的字互相可见,适合做语义分析而没法续写。
  • 遮罩会参与学习吗?:它是规则,不是参数,训练中固定不变;真正会学习的是查、键、值那些权重矩阵。

一句话记住它的职责:定边界、防偷看,让每一步都建立在合法的前文上。还有一个实现细节值得知道:掩码通常不是把后面的内容删掉,而是在打分结果上给非法位置加一个极大的负值,经归一化之后权重趋近于零,内容还在内存里,只是看不成。这也解释了一个现象:掩码只影响注意力权重的分配,不改变前向计算的流程,所以加不加掩码,计算图的形状是一样的。推理时自己拼提示也要遵守同样的边界,别把答案写进输入让模型抄,掩码挡得住训练时的偷看,挡不住你主动递小抄。

反馈页面信息

请描述需要更正的地方,页面标题和网址会自动附上。

也可以发邮件至 [email protected]