Closed luckystar1992 closed 10 months ago
特殊字符是需要的时候才加上去的,比如在我们的demo中SFT微调阶段加入了3个special token,[SEP],[USER]和[BOT]。设计的初衷是为了支持一些需求,比如URL,image的占位符等所以就保留了17个额外token空间用于存放特殊字符。但预训练中并没有用到这17个特殊字符。
@zhao1iang 那么,预训练的时候词表和SFT阶段的词表一样大?因为我从你们官方huggingface下载的词表只有65519个token。这些占位符号跟bert的reversed的占位符号是不是一样的。
@luckystar1992 如果您按照我们的demo里面的sft教程的话是没有加保留字的,此时预训练的模型词表和预训练时一样大,为65519。而我们的chat模型和math模型在SFT训练过程中因为考虑到一些数据处理和模型攻击的情况,加了保留字,因此比预训练时候词表多。所以正如您看到的,base模型的config.json文件中词表大小是65519,而chat模型config.json文件中词表大小是65536,多出来的17个字符是为SFT预留的保留字字段。
剩下的17个额外token在哪里可以找到?