2026/4/17 21:25:43
网站建设
项目流程
做网站的需求清单,句容本地网站,遂宁北京网站建设,郑州百度seo网站优一、Padding 的 mask 操作是什么#xff1f;
1. 为什么需要 Padding#xff1f;
想象你在学校交作业#xff0c;老师要求每个人都交 5 页纸。
有的同学写了 3 页#xff0c;剩下 2 页是空白的#xff08;Padding#xff09;。有的同学写了 5 页#xff0c;刚好交满。
在…一、Padding 的 mask 操作是什么1.为什么需要 Padding想象你在学校交作业老师要求每个人都交 5 页纸。有的同学写了 3 页剩下 2 页是空白的Padding。有的同学写了 5 页刚好交满。在深度学习里每个句子或序列长度可能不一样。为了让模型一次处理多个句子我们会把它们补齐到相同长度。补齐的部分就叫Padding用一个特殊的符号表示比如PAD。2.为什么需要 mask回到交作业的例子老师批改作业时会跳过空白页只看你写了内容的部分。如果老师把空白页也算进去可能会给你打零分因为空白页没有信息。在模型里Padding 部分是没有意义的只是为了对齐长度。如果模型把 Padding 也当成正常信息计算会影响结果。mask 操作就是告诉模型“这些位置是 Padding你计算时忽略它们”3.mask 操作的“魔法”mask 操作就像给老师一个**“忽略清单”**清单上打1的位置 → 有效内容需要处理。清单上打0的位置 → Padding忽略。模型在计算时会根据这个清单只对1的位置进行计算。对0的位置直接跳过或设为无效值。二、稍微深入一点mask 在代码里是怎么实现的我们用一个简单的例子来说明。1.原始数据假设我们有 3 个句子长度分别是 3、4、2句子1我 爱 你 → 长度 3 句子2我 喜 欢 吃 苹果 → 长度 4 句子3你 好 → 长度 22.Padding 补齐我们把它们补齐到最长长度这里是 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。3.mask 在注意力计算中的作用在 Transformer 的注意力机制里每个 token 会和其他所有 token 计算相似度注意力分数。如果某个 token 是 Paddingmask0我们会把它的注意力分数设为-∞负无穷。在 softmax 计算时-∞会变成0相当于这个位置的权重被完全忽略。例子假设注意力分数是[ 2, 3, 1, -∞]经过 softmax 后[0.245, 0.731, 0.024, 0]Padding 部分的权重变成了 0模型就不会关注它了。三、常见的 mask 类型1.Padding Mask作用忽略 Padding 部分。形状[batch_size, seq_len]例子[1, 1, 1, 0] [1, 1, 1, 1] [1, 1, 0, 0]2.Sequence Mask未来信息屏蔽作用在语言模型中防止模型看到未来的 token比如翻译时不能提前知道后面的词。形状[seq_len, seq_len]例子上三角为 0[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 置零实现忽略效果。