BERT|add tokens后tokenizer一直加载中...

情况是:
我用add_tokens()方法添加自己的新词后,BertTokenizer.from_pretrained(model)一直处于加载中。

原因:有说是词典太大,耗时hours才加载出来(我也没有真的等到过)

暂时的解决办法:

  1. 打印出新加的added_tokens.json文件中的词,手动(或代码)加到vocab.txt最后一个词的末尾;
# print added tokens
import os
import json
with open('added_tokens.json') as json_file:
    added_tokens = json.load(json_file)
    sorted_tokens = dict(sorted(added_tokens.items(), key=lambda item: item[1]))
    for tk in sorted_tokens.keys():
        print(tk)
  1. 删掉added_tokens.json文件,重新加载。
# be able to use tokenizer
model = "pretrained_bert/bert-large-uncased"
tokenizer = BertTokenizer.from_pretrained(model, use_fast=True)
model = BertForMaskedLM.from_pretrained(model)

参考于:https://github.com/huggingface/tokenizers/issues/615#issuecomment-821841375

你可能感兴趣的:(BERT|add tokens后tokenizer一直加载中...)