当前位置: 首页 > news >正文

深度学习篇---Transformer掩码机制

Transformer掩码机制详解

1. 什么是掩码机制?

掩码(Masking)是Transformer中控制信息流动的关键技术,通过一个矩阵来决定哪些位置可以"看到"哪些位置。就像给模型戴上一副"特制眼镜",只允许看到该看的内容。

生活类比:就像考试时用挡板隔开相邻考生,防止作弊;或者像拼图游戏,只能看到已拼好的部分,不能看到未拼的部分。

2. 掩码的三种主要类型

2.1 Padding Mask(填充掩码)

作用:忽略序列中的填充符

原始序列: [我, 爱, 你, <pad>, <pad>] 长度: 5, 实际有效: 3 掩码矩阵: [1, 1, 1, 0, 0] # 1表示关注,0表示忽略 [1, 1, 1, 0, 0] [1, 1, 1, 0, 0] [0, 0, 0, 0, 0] [0, 0, 0, 0, 0]
2.2 Look-ahead Mask(前瞻掩码)- 自回归核心

作用:防止解码器看到未来信息

目标序列: [<sos>, 我, 爱, 你] 掩码矩阵(上三角为0): 位置: <sos> 我 爱 你 <sos> [ 1, 0, 0, 0 ] # <sos>只能看到自己 我 [ 1, 1, 0, 0 ] # "我"能看到<sos>和自己 爱 [ 1, 1, 1, 0 ] # "爱"能看到前面所有和自己 你 [ 1, 1, 1, 1 ] # "你"能看到全部
2.3 组合掩码

作用:同时处理填充和前瞻

组合掩码 = Padding掩码 × 前瞻掩码

3. 掩码的数学实现

3.1 掩码应用公式
Attention Scores = Softmax(QK^T/√d + Mask) × V

其中Mask矩阵中要屏蔽的位置设为-∞,Softmax后这些位置的概率为0。

3.2 代码级理解
# 简化的掩码实现 def create_look_ahead_mask(size): """ 创建上三角掩码矩阵 size=4时输出: [[0, -inf, -inf, -inf], [0, 0, -inf, -inf], [0, 0, 0, -inf], [0, 0, 0, 0]] """ mask = np.triu(np.ones((size, size)), k=1) mask = mask * -1e9 # 将1的位置设为负无穷 return mask

4. 各模块中的掩码应用

模块掩码类型作用
编码器自注意力Padding掩码忽略填充位
解码器自注意力前瞻掩码+Padding掩码自回归生成
编码器-解码器注意力Padding掩码关注源序列有效位

5. Mermaid总结框图

6. 掩码的详细工作过程

6.1 训练阶段

6.2 推理阶段

7. 掩码的实际效果示例

假设我们要生成"我爱中国":

步骤1: 输入 [<sos>, <pad>, <pad>, <pad>] 掩码后: <sos> → 只能看自己 → 预测"我" 步骤2: 输入 [<sos>, 我, <pad>, <pad>] 掩码后: "我" → 看<sos>和自己 → 预测"爱" 步骤3: 输入 [<sos>, 我, 爱, <pad>] 掩码后: "爱" → 看<sos>、我、自己 → 预测"中国" 步骤4: 输入 [<sos>, 我, 爱, 中国] 掩码后: "中国" → 看全部 → 预测<eos>

8. 掩码的重要性

8.1 为什么需要掩码?
  1. 防止信息泄露:避免模型"作弊"看到未来答案

  2. 处理变长输入:有效处理批量训练中的不同长度

  3. 保证因果关系:确保生成符合逻辑顺序

8.2 没有掩码会怎样?
  • 解码器训练时能看到完整答案 → 直接复制 → 无法学习生成

  • 批量训练时填充位参与计算 → 浪费计算资源

  • 模型无法处理自回归任务

9. 掩码的变体与演进

变体特点应用
因果掩码标准上三角GPT系列
前缀掩码部分双向+部分单向UniLM
块状掩码块内全连接,块间单向XLNet
稀疏掩码减少计算量Longformer

掩码机制虽然简单,但它是Transformer能够处理序列任务的关键设计,既保证了训练效率,又确保了生成质量。

http://www.jsqmd.com/news/406165/

相关文章:

  • 【图像压缩】基于DCT分形图像压缩(含PSNR)附Matlab代码
  • 【轴承故障诊断】基于多通道稀疏贝叶斯学习与GAMP集成轴承故障诊断附Matlab代码
  • 【无人机部署】基于层次分析法AHP进行初步网络规划与决策的5G应急网络无人机部署方案附matlab代码
  • 2026信用卡协商还款全流程指南:如何选择正规机构?亲测靠谱平台推荐 - 代码非世界
  • JAVA WEB学习7
  • 全协议多卡种(几乎所有卡)读卡器模块规格书(适配门禁考勤机、梯控、电子班牌、访客机、人脸识别终端、工位权限终端、指纹考勤机、虹膜掌纹识别终端、楼宇可视对讲系统等所有需要刷卡设备)
  • 大数据存储性能优化:行式存储的缓存策略与并行处理
  • knowledge
  • 【MySQL数据库基础】(一)保姆级 MySQL 环境配置教程!CentOS 7+Ubuntu 双系统全覆盖
  • 2026负债上岸指南|信用卡/贷款协商分期延期,正规机构教你少走弯路 - 代码非世界
  • 信用卡贷款逾期债务协商2026年正规协商分期新攻略 - 代码非世界
  • 2026信用卡逾期不用慌!正规协商机构服务流程全拆解,负债人上岸指南 - 代码非世界
  • AI学习记录1
  • 线段树基础 讲义
  • 廊坊婚介之外:一段始于免费代码,终于时间验证的IT情缘
  • 信用卡逾期负债人的2026年新规解读:如何通过正规协商重获财务自由? - 代码非世界
  • 信用卡逾期2026年正规协商流程全解析,这样操作成功率翻倍 - 代码非世界
  • 2026信用卡协商全流程解析:正规机构如何助你科学止损? - 代码非世界
  • 【实测好用】禁止win11自动更新的6大方法
  • 推荐一款基于.NET和百度飞桨的OCR识别组件
  • 揭秘大数据领域数据预处理的隐藏优势
  • 超标电动自行车现象与治理:一场关乎3.8亿辆两轮出行的安全革命
  • 深度学习篇---Transformer解码器
  • 禁止Windows系统自动更新的方法,关闭win11更新的工具软件
  • vue3基于python的鲜花预订商城销售管理系统(编号:5770421)
  • 题解:P4723 【模板】常系数齐次线性递推
  • Doris数据分片策略详解:提升大数据查询效率的关键
  • P2757 [国家集训队] 等差子序列
  • 深度解析GPT在AI原生应用领域的应用场景
  • AI写专著不再愁!专业工具详细解读,助你高效完成学术使命