|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 Handsome_zhou 于 2023-8-23 16:28 编辑
Transformer的译码器中使用带掩码的注意力机制(Masked Self-Attention)的主要目的是确保在生成序列时,模型只能依赖已生成的标记,而不会依赖未来标记,以避免信息泄露和生成不合理的结果。这是因为在生成任务(如文本生成)中,我们必须逐步生成输出序列,而不能在生成某个标记时使用后面的标记的信息。
如图所示:译码器在输出"永"时,依赖的是编码器的输出信息和<bos>编码信息。然后再把永作为输入,与前面的信息一起生成"不"。依次类推,往后生成。
Transformer中Mask的应用方式:
1、自注意力机制中的Mask:在译码器的每个位置,自注意力机制会使用一个Mask来防止当前位置的标记注意到未来位置的标记。这是通过将未来位置的注意力权重(Q乘以K的转置)设为负无穷大来实现的,这样在softmax计算中,这些未来位置的权重会变为零,因此不会对当前位置产生影响。
2、掩码的生成:在生成译码器的每个标记时,都会生成一个掩码,该掩码将确保该标记之后的所有位置都不会被用于计算注意力权重。这个掩码是通过在每个时间步骤上设置一个Mask来实现的,确保未来的信息不会被泄露到当前的生成步骤。
3、生成的顺序:译码器按顺序生成输出标记,每次生成一个标记后,将其添加到已生成的标记序列中,然后使用带掩码的自注意力机制来计算下一个标记。这确保了在生成每个标记时只使用了已生成的标记信息,而不使用未来标记。 |
|