一步一步理解大模型:注意力填充掩码的作用

在Transformer模型中,注意力填充掩码主要用于遮蔽Encoder输入序列中填充(PAD)的token,以防止Decoder在预测时使用这些token进行注意力计算。

具体来说,Attention Pad Mask是一个二进制张量,其中每个元素的值为True或False。在计算注意力分数时,被标记为True的位置将被设置为负无穷大,以便在Softmax操作中对它们进行归一化时被忽略。因此,在Attention Pad Mask的作用下,模型只会关注输入序列中实际的token,而忽略填充token。

例如,假设我们有一个batch size为2的输入序列,长度分别为5和7,其中填充token的值为0。我们可以将输入序列表示为以下形式:

seq_q = [[1, 2, 3, 0, 0], [4, 5, 6, 7, 0, 0, 0]]

seq_k = [[1, 0, 0, 0, 0, 0, 0], [4, 5, 6, 7, 0, 0, 0]]

seq_qseq_k分别代表查询序列和键序列。

根据seq_k中填充token的位置,我们可以使用get_attn_pad_mask函数生成Attention Pad Mask:

pad_attn_mask = [[False, True, True, True, True, True, True], [False, False, False, False, True, True, True]]

在计算注意力分数时,对于第一个序列中的第4和第5个位置,以及第二个序列中的最后三个位置,由于其对应的填充token为0,因此Attention Pad Mask中的值为True,会将其对应的分数设置为负无穷大。

最终,Attention Pad Mask的作用是确保模型在计算注意力分数时不会将填充token考虑在内,从而提高模型的预测效果。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值