掩码自注意力机制
#2025/12/25 #ai
目录
一句话
“掩码(Masking)” 是为了让我们在训练阶段能并行处理数据,同时又要模拟出推理阶段“看不到未来”的时间顺序。
未来解决前面提到的 12. Transformer 中的 “作弊” 问题
核心概念:解码器里的“遮眼罩” (Masking)
在 Transformer 的解码器(Decoder)中,掩码机制是一项防止模型“作弊”的强制性设计。
1. 为什么需要掩码?(训练 vs. 推理的差异)
要理解掩码,首先要明白 AI 在“学习时”和“干活时”的环境是不一样的:
| 场景 | 状态 | 输入方式 | 问题 |
|---|---|---|---|
| 推理(干活时) | 逐字生成 | 一个词一个词地蹦出来 | 不存在未来:生成第2个词时,第3个词还没出生。 |
| 训练(学习时) | 并行计算 | 整句答案一次性输入 GPU | 全知全能:如果不加控制,模型能看到整句答案,导致“作弊”。 |
关键点: 为了让训练变快,我们把整句话喂给模型。但为了让模型学会预测,我们必须蒙住它的眼睛,不让它看后面的词。
2. 什么是“信息泄露”?(不准偷看未来)
如果训练时不加掩码,模型会发现一条“捷径”:
- 任务: 输入
I,预测下一个词。 - 作弊: 模型通过注意力机制直接看到后面紧跟着的词是
love。 - 结果: 模型不再学习语言逻辑,而是学会了“查表”。这就像考试时,答案就印在题目正下方,学生只需抄写,并没真正学会知识。一旦到了没有答案的真实考场(推理阶段),模型就傻眼了。
3. 技术实现:神奇的“负无穷”矩阵
在计算机内部,这种“遮眼罩”是通过数学矩阵实现的。
掩码矩阵原理
计算注意力分数时,我们会准备一个三角矩阵。在模型计算当前词对未来词的注意力时,强行加上一个负无穷大 ($-\infty$):
- 计算分数:模型尝试计算
I对love的关注度。 - 强制屏蔽:掩码程序把这个分数改成 $-\infty$。
- 归一化 (Softmax):在数学上,$e^{-\infty}$ 趋近于 0。
最终效果: 所有的未来信息在模型眼里概率都变成了 0,它只能看到过去
4. 通俗类比:看侦探电影
我们可以把模型训练比作看侦探小说:
- 普通自注意力(编码器):
- 相当于你已经看完了整本书,回过头来分析。
- 你可以通过结局(第300页)来理解开头(第1页)的伏笔。
- 掩码自注意力(解码器):
- 相当于你正在从头开始读。当你读到第 10 页时,我用一张黑纸挡住了第 11 页之后的所有内容。
- 你只能根据前 10 页的线索来猜凶手。
- 只有这样,你才能锻炼出真正的“推理能力”。
5. 总结:掩码的深层意义
- 维护因果性 (Causality):
- 确保“因”永远在“果”之前,模型生成时逻辑自洽。
- 平衡效率与逻辑:
- 既利用了 GPU 的并行训练速度,又保留了逐词预测的严谨逻辑。
- 分化模型流派:
- BERT (
无掩码): 适合理解上下文,像做阅读理解。 - GPT (
有掩码): 适合生成,像写作文,它是典型的“单向”语言模型。
- BERT (