简单聊聊transformer里的mask ——转载自链接一

1.padding mask

在encoder和decoder两个模块里都有padding mask,位置是在softmax之前,为什么要使用padding mask,是因为由于encoder和decoder两个模块都会有各自相应的输入,但是输入的句子长度是不一样的,计算attention score会出现偏差,为了保证句子的长度一样所以需要进行填充但是用0填充的位置的信息是完全没有意义的(多余的),经过softmax操作也会有对应的输出,会影响全局概率值,因此我们希望这个位置不参与后期的反向传播过程。以此避免最后影响模型自身的效果,既在训练时将补全的位置给Mask掉,也就是在这些位置上补一些无穷小(负无穷)的值,经过softmax操作,这些值就成了0,就不在影响全局概率的预测。

pytorch nn.Transformer的mask理解 - 知乎 (zhihu.com) //padding mask 讲得比较细

2.Sequence MASK

sequence MASK是只存在decoder的第一个mutil_head_self_attention里,为什么这样做?是因为在测试验证阶段,模型并不知道当前时刻的输入和未来时刻的单词信息。也就是对于一个序列中的第i个token解码的时候只能够依靠i时刻之前(包括i)的的输出,而不能依赖于i时刻之后的输出。因此我们要采取一个遮盖的方法(Mask)使得其在计算self-attention的时候只用i个时刻之前的token进行计算

举例:“我爱中国共产党”,假如要预测“中”这个词,那么当前时刻的输入就是“我”以及“爱”的输入的叠加,一部分来自"我“的信息输出,一部分来自”爱”的信息输出,如果没有mask将后面的单词信息遮住,那么后面的单词对要预测的这个字“中”也会有相应的信息贡献,在训练的时候整个句子的前后字词的位置是已知的,所以不遮挡模型也是可以运行的,因为本身模型输入时就已经知道了句子的整个信息(也就是ground truth embeding)。 但是在进行模型预测(测试新的输入句子)时,输入的句子是未知的,随机的,模型不知道句子的信息,只能通过上一层的输出和原始的输入知道要预测字的前一个信息,进而依次预测后面的字的信息。这就造成了在训练时模型多训练了“中”后面的词,增加了训练时间,消耗了本没必要的空间及时间。在一开始训练时就mask掉,节省时间的同时也降低了过拟合的风险,提高了模型泛化能力。浅析Transformer训练时并行问题 - 知乎 (zhihu.com)

//Sequence mask 讲得比较细

【Pytorch】Transformer中的mask ——转载自链接三

  • 由于Transformer的模型结构,在应用Transformer的时候需要添加mask来实现一些功能。

    • 如Encdoer中需要输入定长序列而padding,可以加入mask剔除padding部分
    • 如Decoder中为了实现并行而输入完整序列,需要加上mask剔除不应感知到的部分序列
  • 在一些更灵活的应用中,有时候需要设计一些mask形式来调整可利用信息源的范围。因此,本文以官网Transformer做文本翻译为例***官网翻译示例,梳理一下Pytorch实现的Transformer是如何做mask操作的。(164条消息) Transformer的矩阵维度分析和Mask详解_我最怜君中宵舞的博客-CSDN博客_transformer中的mask//讲清楚了训练可以并行,推理和测试的时候不能并行的原因

简单层面讲了TransformerDecoder进行并行

(165条消息) Transformer decoder中masked attention的理解_寺里LZS的博客-CSDN博客

参考资料

简单聊聊transformer里的mask - 知乎 (zhihu.com)//大白话,讲的很好

(167条消息) Transformer 中的mask_Caleb_L的博客-CSDN博客_transformer中的mask

【Pytorch】Transformer中的mask - 知乎 (zhihu.com) //结合Pytorch代码解释,梳理一下Pytorch实现的Transformer是如何做mask操作的。

这个视频与这篇博客配套使用,讲的很清楚了

全网最详细Transformer中的mask操作及代码详解【推荐】【系列10-4-2】_哔哩哔哩_bilibili

transformer 中的 mask 操作-范仁义-读书编程笔记 (fanrenyi.com)//需要科学上网maybe

Transformer 中的mask相关推荐

  1. 对Transformer中的MASK理解

    对Transformer中的MASK理解 Padding Masked Self-Attention Masked 上一篇文章我们介绍了 对Transformer中FeedForward层的理解,今天 ...

  2. NLP中的Mask全解

    ©PaperWeekly 原创 · 作者|海晨威 学校|同济大学硕士生 研究方向|自然语言处理 Mask 在 NLP 中是一个很常规的操作,也有多种应用的场景和形式,下面尝试从以下几个方面去全解(用了 ...

  3. NLP 中的Mask全解

    文章目录 Mask的作用 处理非定长序列 RNN中的Mask Attention中Mask 防止标签泄露 Transformer中的Mask BERT中的Mask XLNet中的Mask 转载来源:h ...

  4. 深入理解transformer中的位置编码

    文章目录 总览 问题1 问题2 问题3 问题4 问题5 问题6 总览 我们今天需要讲解transformer中的位置编码,这其实属于进阶内容.既然你会到这里,我默认你已经看过了transformer的 ...

  5. transformer中attention计算方式_Reformer: 局部敏感哈希、可逆残差和分块计算带来的高效...

    最近要开始使用Transformer去做一些事情了,特地把与此相关的知识点记录下来,构建相关的.完整的知识结构体系, 以下是要写的文章,本文是这个系列的第九篇: Transformer:Attenti ...

  6. transformer中attention计算方式_Transformer在推荐模型中的应用总结

    最近基于transformer的一些NLP模型很火(比如BERT,GPT-2等),因此将transformer模型引入到推荐算法中是近期的一个潮流.transformer比起传统的LSTM.GRU等模 ...

  7. 浅析深度学习中的mask操作

    mask(掩码.掩膜)是深度学习中的常见操作.简单而言,其相当于在原始张量上盖上一层掩膜,从而屏蔽或选择一些特定元素,因此常用于构建张量的过滤器(见下图). 按照上述定义,非线性激活函数Relu(根据 ...

  8. Transformer 中 比较晦涩难懂的东西

    文章目录 Transformer 中 比较晦涩难懂的东西 keras 实现mask encoder部分[对输入进行操作] decoder部分[对注意力矩阵操作] Output的输入 ==来自我亲爱的师 ...

  9. 深度学习中的mask操作

    mask(掩码.掩膜)是深度学习中的常见操作.简单而言,其相当于在原始张量上盖上一层掩膜,从而屏蔽或选择一些特定元素,因此常用于构建张量的过滤器(见下图). 按照上述定义,非线性激活函数Relu(根据 ...

最新文章

  1. Jenkins + sonarqube集成实现发布代码审计
  2. 终于收到微软的衬衫了!!!
  3. postman模拟post请求的四种请求体
  4. android案例_Android实训案例——计算器的运算逻辑
  5. android复位机器人图片_Universal-Image-Loader 图片异步加载类库还不熟?
  6. 示波器纹波测试的时间设置_500W电源横评:输出纹波3款电源超标
  7. 机动车辆保费计算器 1.1新版发布
  8. 非法关机的时候,postgresql启动故障的解决
  9. canvas beginPath()的初步理解
  10. 16个外接SMA天线R2000超高频RFID写卡器HXU2899M上位机命令数据块
  11. C++20 实现字符串类型的转换操作
  12. 优酷视频APP的缓存视频在哪里
  13. 域渗透基础_域渗透实战下gpo策略利用
  14. Dynamics CRM命令栏定制基础知识及手动编辑customization.xml实例
  15. Mybatis联表查询:多对多(注解实现)
  16. MySQL ODBC驱动安装和配置数据源
  17. 【目标检测】YOLO系列——YOLOv1详解
  18. micro python 语音识别_语音识别
  19. android 酷炫倒计时,Hurry - 一个有颜值又好用的倒计时应用 - Android 应用 - 【最美应用】...
  20. IDEA修改注释字体

热门文章

  1. “文件创建错误-参数错误”解决办法
  2. vue脚手架图片懒加载模块和样式穿透
  3. 后台前端解决方案vue-element-admin的安装及使用
  4. 苹果x怎么关机_苹果12怎么关机 iPhone12关机方法汇总
  5. 深度分析,皓丽M5_企业版_增强版共同点与核心区别?
  6. ad域服务器用户登录限制,AD域监控用户登录, 活动目录监控用户, AD登录历史审核...
  7. 苹果收购AI音乐公司,音乐人工智能将迎来新机遇?
  8. 计算机在盲童音乐教学中的具体应用,盲童钢琴启蒙教学实践探析
  9. Pixi的基本使用(5)--寻宝猎人
  10. vue单应用在ios系统中实现微信分享功能