是否有办法更改(扩展)预训练模型的词汇表大小?
enxuqcxy1#
你好,你找到那个问题的答案了吗?
anauzrmj2#
如果你的目标是重新生成词汇文件,那么我相信https://github.com/google/sentencepiece就是你正在寻找的。
8i9zcol23#
如果我生成一个与他们的词汇表文件大小相同的词汇表文件,然后用它来训练自己的数据,我可以从他们的检查点开始训练吗,还是我必须从头开始训练?
nwnhqdif4#
@maggieezzat ,如果你更改了vocab.txt文件(增加/减少tokens),就不能使用相同的预训练模型。因为当运行run_pretraining.py时,如果提供的预训练模型的词汇表大小不同,那么嵌入Tensor的大小与检查点中的不同。但是,如果你成功解决了这个问题,请告诉我 :)
run_pretraining.py
3okqufwl5#
如果使用预训练模型,词汇表大小为30522。我们可以用自己的词汇表单词替换[unused1]到[unused993]或更少的单词,确保在这些单词之间有这些标记[UNK] [CLS] [SEP][MASK],这些标记不应该被替换。结果的词汇表大小应该是30522。
pxq42qpu6#
你好,@jageshmaharjan。如果你更换词汇表文件,即使大小相同,你也需要从头开始训练,因为词汇表文件中的每个标记都对应于从训练阶段学到的向量(词嵌入)。现在,如果你更改了词汇表,不同的单词Map到错误的嵌入,这就是问题所在。
qxgroojn7#
抱歉,我没有看到你的最后一条评论。看起来我们已经达成了相同的结论。
mkh04yzy8#
你现在可以做这个。Keras的夜间版本已经添加了一个新的工具keras.utils.warmstart_embedding_matrix。使用这个,你可以随着词汇表的变化持续训练你的模型。
keras.utils.warmstart_embedding_matrix
8条答案
按热度按时间enxuqcxy1#
你好,你找到那个问题的答案了吗?
anauzrmj2#
如果你的目标是重新生成词汇文件,那么我相信https://github.com/google/sentencepiece就是你正在寻找的。
8i9zcol23#
如果我生成一个与他们的词汇表文件大小相同的词汇表文件,然后用它来训练自己的数据,我可以从他们的检查点开始训练吗,还是我必须从头开始训练?
nwnhqdif4#
@maggieezzat ,如果你更改了vocab.txt文件(增加/减少tokens),就不能使用相同的预训练模型。因为当运行
run_pretraining.py
时,如果提供的预训练模型的词汇表大小不同,那么嵌入Tensor的大小与检查点中的不同。但是,如果你成功解决了这个问题,请告诉我 :)
3okqufwl5#
如果使用预训练模型,词汇表大小为30522。我们可以用自己的词汇表单词替换[unused1]到[unused993]或更少的单词,确保在这些单词之间有这些标记[UNK] [CLS] [SEP][MASK],这些标记不应该被替换。结果的词汇表大小应该是30522。
pxq42qpu6#
你好,@jageshmaharjan。如果你更换词汇表文件,即使大小相同,你也需要从头开始训练,因为词汇表文件中的每个标记都对应于从训练阶段学到的向量(词嵌入)。现在,如果你更改了词汇表,不同的单词Map到错误的嵌入,这就是问题所在。
qxgroojn7#
抱歉,我没有看到你的最后一条评论。看起来我们已经达成了相同的结论。
mkh04yzy8#
你现在可以做这个。Keras的夜间版本已经添加了一个新的工具
keras.utils.warmstart_embedding_matrix
。使用这个,你可以随着词汇表的变化持续训练你的模型。