LLM-大模型训练-常见错误:RuntimeError: expected scalar type Half but found Float

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"
    )

猜你喜欢

转载自blog.csdn.net/u013250861/article/details/131374436