为何NLLB中SentencePiece分词器指定模型名与文件时ID差1?
NLLB Tokenizer ID差异原因解析
词汇表偏移导致ID整体+1:Hugging Face封装的NLLB tokenizer会在原始SentencePiece模型的词汇表前额外插入一个
<s>(句首标记token),作为词汇表的第一个条目(ID=0)。这使得原始SentencePiece中的所有token ID都被整体偏移+1,这就是后续所有token ID始终相差1的核心原因。语言标识token的自动插入差异:通过HF模型名
facebook/nllb-200-distilled-600M加载时,tokenizer会自动将模型要求的语言标识token(对应ID=256047的eng_Latn标识)作为序列的首个token插入;但直接加载本地sentencepiece.bpe.model文件时,不会自动处理这个语言标识,直接对输入文本分词,所以第一个token是文本内容的起始部分,且ID为原始SentencePiece的数值,与HF中对应token的ID差1。
内容的提问来源于stack exchange,提问作者Daniel Kukula
相关产品推荐
相关产品推荐

