微调后推理报错 IndexError: piece id is out of range.

#69
by lyy0905 - opened

原始模型从hf下载的,可以正常推理,但是微调后的模型推理会报错,似乎是tokenizer的问题。但是我使用的tokenizer.model, tokenizer_config.json,还有py文件都是跟原始模型相同的。这个可能是什么问题?

感觉是这段代码有问题,可能需要官方解决一下,最后的全连接层的输出维数大于词表长度,如果生成了超出这个范围的token应该处理成 或者空字符之类的

# tokenization_chatglm.py: SPTokenizer
def convert_id_to_token(self, index):
        """Converts an index (integer) in a token (str) using the vocab."""
        if index in self.index_special_tokens or index in [self.eos_id, self.bos_id, self.pad_id] or index < 0:
            return ""
        return self.sp_model.IdToPiece(index)

有可能是全参数微调的导出有问题,我试了lora微调,用原始模型+adapter做推理是没问题的,但是全参数微调完就会报这个错

我也遇到了。。

Sign up or log in to comment