在huggingface(transformers)加载Bert遇到的attention_mask问题

记录一个非常有意思的,看了源码才了解的Bert使用方法。

如何通过Bert实现类似left-to-right的语言模型呢?

一开始自己以为 只能如下使用。

 

 自己以为关于attention_mask的输入只能是对每句话都产生一个二维的attention_mask.

 但是自己需要实现left-to-right的模拟,使此时的字不能看到下一个字,只能依靠以前的字,这该怎么办呢?

  https://github.com/920232796/bert_seq2seq/blob/master/bert_seq2seq/seq2seq_model.py

自己看到这个链接中构造了特殊的mask矩阵。

于是自己也随着这个代码构造了下三角矩阵输入,就以为可以解决掉的时候,报错。

关于这个报错,看来看去 extended_attention_mask这个参数很关键呢

恰好下载了一下transforemrs库的安装包

于是看了一下源码

可以看到attention_mask输入可以是二维 也可是三维。

所以按照需要构造三维的下三角矩阵就可以输入了!

 

posted on 2022-06-18 19:05  nlp如此迷人  阅读(818)  评论(0编辑  收藏  举报

导航