ymcui / Chinese-BERT-wwm

Pre-Training with Whole Word Masking for Chinese BERT(中文BERT-wwm系列模型)
https://ieeexplore.ieee.org/document/9599397
Apache License 2.0
9.66k stars 1.39k forks source link

Change Tokenizer to BytelevelBPETokenizer #122

Closed sunyanhust closed 4 years ago

sunyanhust commented 4 years ago

新版的transformers加载需要vocab.json和merges.txt,可以从vocab.txt转换生成吗?

ymcui commented 4 years ago

具体是加载什么模型?

sunyanhust commented 4 years ago

RoBERTa-wwm-ext, Chinese ,其他的模型可能也需要这些内容

ymcui commented 4 years ago

本目录中的所有模型都是使用WordPiece tokenizer的,原则上是只需要vocab.txt就可以了。 看到API这里并没有改动:https://huggingface.co/transformers/model_doc/bert.html#berttokenizer

sunyanhust commented 4 years ago

https://huggingface.co/transformers/model_doc/roberta.html

roberta可能和bert分词的的API不太一样

sunyanhust commented 4 years ago

https://zhuanlan.zhihu.com/p/121787628 具体的区别可以参考这里

ymcui commented 4 years ago

这个我知道,但本目录中的模型都需要用BERT相关的API来加载,而不是RoBERTa。

sunyanhust commented 4 years ago

OK 我试一下用BERT分词器进行加载

MrRace commented 3 years ago

@ymcui 所以这里发布的中文RoBERTa模型,在预训练时候不是使用BBPE(byte-level Byte-Pair-Encoding)?而是WordPiece(与BERT一样都是字符级的Byte-Pair-Encoding)?

ymcui commented 3 years ago

@MrRace https://github.com/ymcui/Chinese-BERT-wwm#模型对比 写的很清楚了,集成BERT属性,所以需要用BERT相关的类来加载。

MrRace commented 3 years ago

@ymcui 所以预训练RoBERTa的时候确实没有使用原版RoBERTa中的字节级BPE。。。。想问下,为啥不用RoBERTa论文中的BBPE,是因为效果不好吗?谢谢!

ymcui commented 3 years ago

@MrRace 没有试过。RoBERTa原论文中对词表这一块也没有做详细的实验对比。