关于embeding与tokenizer以及解码时所使用的sentencepiece
#14
by
thlw
- opened
您好,我想知道为什么embeding层的数量大于tokenizer识别的词,是否有一些词被特殊处理了,如果我想扩展词汇表,在add_token之后对应的embeding层能否覆盖原来数据。另外,为什么解码时不使用tokenizer而从tokenizer.model中获得piece,并且piece总词数与tokenizer的vob数量也不相同,谢谢。
为什么嵌入层的数量大于tokenizer识别的词?
这通常是因为嵌入层包括额外的特殊token,如未知词、句子开始、句子结束等。这些特殊token用于模型训练和推理时的特殊情况处理。
特殊处理的词: 特殊token如上所述,是为了处理特定情况或提供必要的信息给模型,比如句子的开始和结束。
扩展词汇表: 如果你想要扩展词汇表,可以使用tokenizer的add_tokens方法。但是我们没有开放模型训练的代码,估计加了也没用。
为什么解码时不使用tokenizer而是使用tokenizer.model中的piece:
tokenizer.model 是指实际处理分解和重建词汇的底层模型,在解码过程中,直接与这些pieces进行交互,尤其是在处理未知词或特殊格式化时。pieces的数量与tokenizer的vocab数量不同是由于包含了一些额外的特殊pieces和预留的空词表。
zRzRzRzRzRzRzR
changed discussion status to
closed