nlp中的transformer中的mask

由于在实现多头注意力时需要考虑到各种情况下的掩码,因此在这里需要先对这部分内容进行介绍。在Transformer中,主要有两个地方会用到掩码这一机制。第1个地方就是在上一篇文章用介绍到的Attention Mask,用于在训练过程中解码的时候掩盖掉当前时刻之后的信息;第2个地方便是对一个batch中不同长度的序列在Padding到相同长度后,对Padding部分的信息进行掩盖。下面分别就这两种情况进行介绍。

1.Attention Mask

实现:generate_square_subsequent_mask

 def _generate_square_subsequent_mask(self, sz):
        mask = (torch.triu(torch.ones(sz, sz)) == 1).transpose(0, 1)
        mask = mask.float().masked_fill(mask == 0, float('-inf')).masked_fill(mask == 1, float(0.0))
        return mask

2.Padding Mask

实现:

用法:

https://blog.csdn.net/vivi_cin/article/details/135390462

参考:

nn.TransformerEncoderLayer中的src_mask,src_key_padding_mask解析_src_mask和src_key_padding_mask-CSDN博客

(32 封私信 / 4 条消息) transformer中: self-attention部分是否需要进行mask? - 知乎 (zhihu.com) 几个很好的回答:

Q:transformer中attention_mask一定需要嘛?

A:Transformer结构包括编码器和解码器,在编码过程中目的就是为了让模型看到当前位置前后的信息,所以不需要attention mask。但是在解码过程中为了模拟在真实的inference场景中,当前位置看不到下一位置,且同时需要上一位置的信息,所以在训练的时候加了attention mask。

所以,如果你的任务在实际的inference中也符合这样的特点,那么你在训练的时候也是需要attention,相反则不需要。

参考:(32 封私信 / 4 条消息) transformer中attention_mask一定需要嘛? - 知乎 (zhihu.com)

相关推荐

  1. nlptransformermask

    2024-01-06 11:36:05       41 阅读
  2. webscoket mask 细节

    2024-01-06 11:36:05       11 阅读
  3. transformerffn

    2024-01-06 11:36:05       6 阅读
  4. NLP嵌入层

    2024-01-06 11:36:05       38 阅读
  5. 自注意力机制gen_nopeek_mask()函数

    2024-01-06 11:36:05       27 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-06 11:36:05       14 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-06 11:36:05       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-06 11:36:05       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-06 11:36:05       18 阅读

热门阅读

  1. 一、Vue3基础[常用的循环]

    2024-01-06 11:36:05       39 阅读
  2. 基于SpringBoot的餐饮管理系统的设计与实现

    2024-01-06 11:36:05       41 阅读
  3. 222. 完全二叉树的节点个数

    2024-01-06 11:36:05       37 阅读
  4. Nginx网站服务

    2024-01-06 11:36:05       31 阅读
  5. 客户满意度调查常用的ChatGPT通用提示词模板

    2024-01-06 11:36:05       33 阅读
  6. 1001 害死人不偿命的(3n+1)猜想

    2024-01-06 11:36:05       32 阅读
  7. FBL刷写

    FBL刷写

    2024-01-06 11:36:05      31 阅读
  8. gitlab 仓库创建及使用

    2024-01-06 11:36:05       33 阅读
  9. Python爬虫---使用BeautifulSoup下载麦当劳点餐图片

    2024-01-06 11:36:05       35 阅读
  10. Jvm之垃圾收集器(个人见解仅供参考)

    2024-01-06 11:36:05       26 阅读
  11. 指针大礼包6

    2024-01-06 11:36:05       25 阅读