bert 如何更改预训练模型的词汇表大小?

yrefmtwq  于 4个月前  发布在  其他
关注(0)|答案(8)|浏览(58)

是否有办法更改(扩展)预训练模型的词汇表大小?

enxuqcxy

enxuqcxy1#

你好,你找到那个问题的答案了吗?

anauzrmj

anauzrmj2#

如果你的目标是重新生成词汇文件,那么我相信https://github.com/google/sentencepiece就是你正在寻找的。

8i9zcol2

8i9zcol23#

如果我生成一个与他们的词汇表文件大小相同的词汇表文件,然后用它来训练自己的数据,我可以从他们的检查点开始训练吗,还是我必须从头开始训练?

nwnhqdif

nwnhqdif4#

@maggieezzat ,如果你更改了vocab.txt文件(增加/减少tokens),就不能使用相同的预训练模型。因为当运行run_pretraining.py时,如果提供的预训练模型的词汇表大小不同,那么嵌入Tensor的大小与检查点中的不同。
但是,如果你成功解决了这个问题,请告诉我 :)

3okqufwl

3okqufwl5#

如果使用预训练模型,词汇表大小为30522。我们可以用自己的词汇表单词替换[unused1]到[unused993]或更少的单词,确保在这些单词之间有这些标记[UNK] [CLS] [SEP][MASK],这些标记不应该被替换。结果的词汇表大小应该是30522。

pxq42qpu

pxq42qpu6#

你好,@jageshmaharjan。如果你更换词汇表文件,即使大小相同,你也需要从头开始训练,因为词汇表文件中的每个标记都对应于从训练阶段学到的向量(词嵌入)。现在,如果你更改了词汇表,不同的单词Map到错误的嵌入,这就是问题所在。

qxgroojn

qxgroojn7#

抱歉,我没有看到你的最后一条评论。看起来我们已经达成了相同的结论。

mkh04yzy

mkh04yzy8#

你现在可以做这个。Keras的夜间版本已经添加了一个新的工具keras.utils.warmstart_embedding_matrix。使用这个,你可以随着词汇表的变化持续训练你的模型。

相关问题