Closed bytekongfrombupt closed 5 years ago
感谢提问。我这里用的是最新版本的,稍后我会把BERT部分代码上传过来,方便大家使用。据我使用,各版本差别不大,仅BertPretrainedModel这个类的名称有所改变。
@circlePi 谢谢解答~嘿嘿,我之前比较疑惑的是在mask过程中,之前的bert是wordpiece mask的,然后最近bert更新了whole word mask,然后想问问您的bert是不是用了这个trick。然后我看了您的代码,您好像在generate example的时候是直接把字mask了,比如384 857 2934 883 ---> 384 mask 2934 883,感觉就是whole word mask,我这么理解对吗?
我们拿中文来说把。Google的版本可以看做是基于字节对编码(BPE)来分词的,中文的模型从vocab可以看出来,其实是对字做masking; 而WWM是先使用分词工具对文本进行分词,注意这里是词而不是字,mask的时候是整个词masking。我这里沿用的google的版本。当然你上面的例子里,如果每个数字代表的是一个词的话,那其实就是WWM了,你的理解是对的。 另外,BERT的代码我已上传。
如题