Transformer 中的 mask 是用来做什么的?

2023-08-27 / 资讯 / 128 阅读

  在Transformer模型中,mask用于控制模型在处理输入序列时对其中的一些位置进行屏蔽或忽略。

  在自注意力机制中,Transformer模型通过计算注意力分数来决定对不同位置的输入进行加权求和,以生成每个位置的表示。然而,为了避免模型在当前位置时能够看到后续位置的信息,就需要利用mask来对后续位置进行屏蔽。

  具体而言,Transformer模型使用两种类型的mask:padding mask和future mask。

  - Padding mask:当输入序列中存在填充token(通常为0),模型在计算注意力分数时应该将填充位置的注意力分数设置为一个很大的负值,从而使填充位置的信息被忽略。这样做是为了保持输入序列的长度一致,便于模型的批处理。Padding mask通常在输入序列的嵌入层之前应用。

  - Future mask:在解码器的自注意力层中,为了确保模型只能使用当前位置之前的信息,而无法使用当前位置之后的信息,需要将当前位置之后的位置注意力分数设置为一个很大的负值。这样做可以使模型在生成每个位置的表示时仅依赖于之前的位置,从而遵循自左向右的顺序。Future mask通常在解码阶段的自注意力层之前应用。

  通过使用mask,Transformer模型能够更好地处理输入序列的信息,保持序列的长度一致,并确保模型在解码过程中只能依赖于先前的位置信息。

#免责声明#

  本站所展示的一切内容和信息资源等仅限于学习和研究目的,未经允许不得转载,不得将本站内容用于商业或者非法用途。
  本站信息均来自AI问答,版权争议与本站无关,所生成内容未经充分论证,本站已做充分告知,请勿作为科学参考依据,否则一切后果自行承担。如对内容有疑议,请及时与本站联系。