大模型面试题30:Padding 的 mask 操作


一、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:你 好   → 长度 2

2. 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 是 Padding(mask=0),我们会把它的注意力分数设为 -∞(负无穷)。
  • 在 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 置零,实现忽略效果。


相关推荐
延卿4 分钟前
nnDetection:基于 PyTorch 的目标检测框架
人工智能·pytorch·目标检测
电商API_1800790524731 分钟前
企业ERP进销存场景|京东商品详情接口自动同步方案|凭证鉴权批量调用技术实操
大数据·运维·人工智能·爬虫·数据挖掘·网络爬虫
qizayaoshuap33 分钟前
# ❌ 井字棋 — 鸿蒙ArkTS Minimax AI算法与博弈系统设计
人工智能·算法·华为·harmonyos
2zcode33 分钟前
项目文档:基于MATLAB深度卷积神经网络的肺癌CT影像智能检测系统设计与实现
深度学习·matlab·cnn
雪隐36 分钟前
个人电脑玩AI-13让5060 Ti给你打工——我用 0.9B 小模型终结了"谁来记会议纪要"这个世纪难题
前端·人工智能·后端
-XWB-41 分钟前
【 LLM】Agent Planning 完全指南:8 种纯 LLM 范式 + 8 种混合规划模式详解(一)
人工智能·aigc·学习方法·ai编程
Mr.看海1 小时前
【终审稿】CNN-RNN 通用分类算法及 MATLAB 实现
rnn·分类·cnn
半个落月1 小时前
用 LangChain JS 做可控写作实验:理解温度参数、提示词与异步调用
javascript·人工智能·后端
Anova.YJ1 小时前
AI通用能力(二)
人工智能
m沐沐1 小时前
【深度学习】卷积神经网络 数据增强、保存最优模型实现,详细解读
人工智能·python·深度学习·机器学习·cnn·数据增强