问题
在微调qwen-vl的时候,微调完成之后,模型也保存好了,但是用保存的模型进行推理的时候报错,看样子是找不到分词器tokenizer。
报错信息
ValueError: Unrecognized configuration class <class ‘transformers_modules.configuration_qwen.QWenConfig’> to build an AutoTokenizer.
原因
保存的模型缺少tokenizer的相关文件,导致找不到对应的分词器,所以无法对输入进行token化
解决方法
- 第一种方法,很简单,我也是这样解决的,就是直接从原模型中将有关tokenizer的文件复制过来到新模型的文件夹下。既然原模型可以训练,说明他的对输入进行token化是可以的
一般从原模型将一下几个文件复制到自己微调后保存的模型的目录之下就行。
- 第二种方法,在保存模型的时候,也对tokenizer进行保存。可以看看自己的代码中是不是没有对tokemizer进行保存,只保存了模型文件。一般加上就ok,如下所示,一个保存模型,一个保存tokenizer。
model.save_pretrained(“your/save/model/path”)
tokenizer.save_pretrained(“your/save/model/path”)
最后在推理的时候,在获取tokenizer的时候,一定要加上trust_remote_code=True,如下
tokenizer = AutoTokenizer.from_pretrained(“/root/autodl-tmp/self_qwen/”, trust_remote_code=True)
这样的话你新保存的检查点(模型)就包含了tokenizer就可以正常的进行推理了。
标签:AutoTokenizer,tokenizer,模型,xxx,保存,报错,save From: https://blog.csdn.net/weixin_51074012/article/details/140129705