词汇大小必须准确计算 bert_config.json 中的 vocab_size 吗?

Must the vocab size must math the vocab_size in bert_config.json exactly?

我在看别人的BERT模型,其中vocab.txt的大小是22110,但是bert_config.json中vocab_size参数的值为21128。

我明白这两个数字一定是完全一样的。是吗?

如果真的是BERT使用了WordPiece分词器,那么是的。不同长度的词汇表和配置中的 vocab_size 意味着要么存在永远无法使用的嵌入,要么存在没有任何嵌入的词汇项。

在这种情况下,您不会看到任何错误消息,因为模型和分词器是分开加载的。 BERT 的嵌入 table 有 8 个嵌入是不“可达”的。

但是请注意,该模型可能会使用一些非常不标准的分词器,以这种方式保存词汇表,它会少 8 个项目(尽管这不太可能)。