打造开发者专属的数字名片:刘焕勇知识图谱与NLP开源项目主页深度解析及个性化部署实战指南
2026/6/24 5:20:12
想象你在学校交作业,老师要求每个人都交 5 页纸。
在深度学习里:
<PAD>)。回到交作业的例子:
在模型里:
mask 操作就像给老师一个**“忽略清单”**:
模型在计算时,会根据这个清单:
我们用一个简单的例子来说明。
假设我们有 3 个句子,长度分别是 3、4、2:
句子1:我 爱 你 → 长度 3 句子2:我 喜 欢 吃 苹果 → 长度 4 句子3:你 好 → 长度 2我们把它们补齐到最长长度(这里是 4):
句子1:我 爱 你 <PAD> → [1, 1, 1, 0] 句子2:我 喜 欢 吃 苹果 → [1, 1, 1, 1] 句子3:你 好 <PAD> <PAD> → [1, 1, 0, 0]这里的[1, 1, 1, 0]就是一个mask 矩阵:
1表示有效 token。0表示 Padding。在 Transformer 的注意力机制里:
-∞会变成0,相当于这个位置的权重被完全忽略。例子:
假设注意力分数是:
[ 2, 3, 1, -∞]经过 softmax 后:
[0.245, 0.731, 0.024, 0]Padding 部分的权重变成了 0,模型就不会关注它了。
[batch_size, seq_len][1, 1, 1, 0] [1, 1, 1, 1] [1, 1, 0, 0][seq_len, seq_len][1, 0, 0, 0] [1, 1, 0, 0] [1, 1, 1, 0] [1, 1, 1, 1]Padding mask 就是给模型一个“忽略清单”,告诉它哪些位置是补齐的无效内容,计算时不要理它们!
Padding mask 是一个 0/1 矩阵,0 表示 Padding 位置,在注意力计算时会被设为 -∞,从而被 softmax 置零,实现忽略效果。