在查看 PyTorch 中的 transformer 文档 时,我看到形状 (batch_size, tgt_seq_len) 的 tgt_key_padding_mask 用于指示由于填充而导致 tgt 的某些部分不相关。当我从 Transformers 库中查看 Pytorch 的 BertModel 实现 时,我在前向函数中没有看到此类掩码的选项。使用 BertModel 时如何提供 tgt_key_padding_mask?
注释:最佳答案此处解释了 tgt_key_padding_mask 是什么。
BertModel 可以选择提供 head_mask,它与注意力_概率相乘(在 softmax 之后,但在与值相乘之前)。我还没有看到任何关于 head_mask 预期形状的提及/文档。看起来它将被广播到与attention_probs相乘所需的任何形状(如果形状为(batch_size,num_heads,query_seq_len = tgt_seq_len,key_seq_len = src_seq_len)),否则将触发形状不匹配错误。我想我可以通过传递我的 tgt_key_padding_mask 来简单地使用/滥用这个 head_mask 。但是在使用 BertModel 时还有另一种更合适的方法来指定 tgt_key_padding_mask 吗?