RuntimeError: expected scalar type Half but found Float
原因一
Peft版本不兼容,尝试使用不同版本的Peft
原因二
1. 问题描述
使用GPU V100
(32GB)对ChatGLM模型进行lora微调时,分别在训练和预测时均出现了RuntimeError: expected scalar type Half but found Float的错误提示,如下图所示:
在经过了亲身的实践后,终于找到了解决问题的方案,最终将逐步的操作过程总结如下。希望能对遇到同样bug的同学有所帮助。
2. 训练的解决方案
对源码的debug和分析后,发现问题主要出自于bitsandbytes库,比较简单的解决方案就是修改load_in_8bit=False,修改后的代码片段如下所示:
model = AutoModel.from_pretrained(
"/home//model/ChatGLM/chatglm-6b", load_in_8bit=False, trust_remote_code=True, device_map="auto"
)