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

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

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

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

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

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

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

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

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

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

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

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

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

于是看了一下源码

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

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

Original: https://www.cnblogs.com/nlpers/p/16389030.html
Author: nlp如此迷人
Title: 在huggingface(transformers)加载Bert遇到的attention_mask问题

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/568112/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球