掩码自注意力机制

#2025/12/25 #ai

目录

一句话

“掩码(Masking)” 是为了让我们在训练阶段能并行处理数据,同时又要模拟出推理阶段“看不到未来”的时间顺序。

未来解决前面提到的 12. Transformer 中的 “作弊” 问题

核心概念:解码器里的“遮眼罩” (Masking)

在 Transformer 的解码器(Decoder)中,掩码机制是一项防止模型“作弊”的强制性设计。

1. 为什么需要掩码?(训练 vs. 推理的差异)

要理解掩码,首先要明白 AI 在“学习时”和“干活时”的环境是不一样的:

场景状态输入方式问题
推理(干活时)逐字生成一个词一个词地蹦出来不存在未来:生成第2个词时,第3个词还没出生。
训练(学习时)并行计算整句答案一次性输入 GPU全知全能:如果不加控制,模型能看到整句答案,导致“作弊”。

关键点: 为了让训练变快,我们把整句话喂给模型。但为了让模型学会预测,我们必须蒙住它的眼睛,不让它看后面的词。


2. 什么是“信息泄露”?(不准偷看未来)

如果训练时不加掩码,模型会发现一条“捷径”:

  • 任务: 输入 I,预测下一个词。
  • 作弊: 模型通过注意力机制直接看到后面紧跟着的词是 love
  • 结果: 模型不再学习语言逻辑,而是学会了“查表”。这就像考试时,答案就印在题目正下方,学生只需抄写,并没真正学会知识。一旦到了没有答案的真实考场(推理阶段),模型就傻眼了。

3. 技术实现:神奇的“负无穷”矩阵

在计算机内部,这种“遮眼罩”是通过数学矩阵实现的。

掩码矩阵原理

计算注意力分数时,我们会准备一个三角矩阵。在模型计算当前词对未来词的注意力时,强行加上一个负无穷大 ($-\infty$):

  1. 计算分数:模型尝试计算 Ilove 的关注度。
  2. 强制屏蔽:掩码程序把这个分数改成 $-\infty$。
  3. 归一化 (Softmax):在数学上,$e^{-\infty}$ 趋近于 0。

最终效果: 所有的未来信息在模型眼里概率都变成了 0,它只能看到过去

4. 通俗类比:看侦探电影

我们可以把模型训练比作看侦探小说:

  • 普通自注意力(编码器):
    • 相当于你已经看完了整本书,回过头来分析。
    • 你可以通过结局(第300页)来理解开头(第1页)的伏笔。
  • 掩码自注意力(解码器):
    • 相当于你正在从头开始读。当你读到第 10 页时,我用一张黑纸挡住了第 11 页之后的所有内容。
    • 你只能根据前 10 页的线索来猜凶手。
      • 只有这样,你才能锻炼出真正的“推理能力”。

5. 总结:掩码的深层意义

  • 维护因果性 (Causality):
    • 确保“因”永远在“果”之前,模型生成时逻辑自洽。
  • 平衡效率与逻辑:
    • 既利用了 GPU 的并行训练速度,又保留了逐词预测的严谨逻辑。
  • 分化模型流派:
    • BERT (无掩码): 适合理解上下文,像做阅读理解。
    • GPT (有掩码): 适合生成,像写作文,它是典型的“单向”语言模型。