首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >变压器模型中的适当掩蔽

变压器模型中的适当掩蔽
EN

Data Science用户
提问于 2019-12-18 11:18:32
回答 1查看 5.8K关注 0票数 8

对于变压器模型,在矩阵乘法之前用一个掩码(用1e-9替换为1e-9)用值张量掩盖注意力分数。关于掩蔽,我有3个简短的问题,希望你能澄清这些问题:

  1. 注意力分数是唯一需要口罩的地方(除了损失),还是应该掩盖输入?

我之所以问这个问题,是因为在实现中使用了用于查询、键和值的线性层和bias=False

  1. 为什么将bias=False设置为在层的输出中保留零,还是有不同的解释?
  2. 在学习单词嵌入时是否应该使用padding_idx,以使填充的标记为零?
EN

回答 1

Data Science用户

回答已采纳

发布于 2019-12-18 12:59:19

我将以整流罩's对变压器模型的实现为参考。

  1. 在变压器中,掩码有两个用途:
    • 填充:在多头注意中,填充令牌通过掩蔽被显式忽略。这对应于参数key_padding_mask
    • 自我注意因果关系:在译码器中使用的多头注意块中,该掩码被用来强迫预测只关注先前位置的标记,以便在推理时可以使用自回归模型。这对应于参数attn_mask

重量掩码是填充物和因果面罩的组合,在计算软件最大值之前,它被用来知道填充-\infty的位置,在它之后是零。

  1. 您不需要在输出中保留任何零,因为注意块会处理这个问题(请参阅答案(1))。在最初的变压器文章中,注意是不带偏见的,但偏倚不会改变性能。实际上,在整流罩中,偏置是默认使用的。
  2. 是的,padding_idx当然是用来清除填充的令牌的。
票数 7
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/65067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档