解决'RuntimeError: "addmm_impl_cpu_" not implemented for 'Half'' 错误
解决'RuntimeError: 'addmm_impl_cpu_' not implemented for 'Half'' 错误
在使用 Llama-2 模型运行代码时,你可能会遇到以下错误:
RuntimeError: "addmm_impl_cpu_" not implemented for 'Half'
这个错误是因为模型运行在 torch.float16 数据类型上,但是当前的设备不支持该数据类型。解决这个问题的方法是将模型的数据类型更改为 torch.float32 或 torch.float64。
修改代码
以下是修改代码的示例:
import torch
from modelscope import snapshot_download, Model
from modelscope.models.nlp.llama2 import Llama2Tokenizer
model_dir = snapshot_download('modelscope/Llama-2-7b-ms', revision='v1.0.1',ignore_file_pattern = [r'\w+\.safetensors'])
model = Model.from_pretrained(model_dir, device_map='auto', torch_dtype=torch.float32) # 修改为torch.float32
tokenizer = Llama2Tokenizer.from_pretrained(model_dir)
prompt = 'Hey, are you conscious? Can you talk to me?'
inputs = tokenizer(prompt, return_tensors='pt')
inputs.input_ids = inputs.input_ids.to(torch.float32) # 将input_ids转换为torch.float32数据类型
# Generate
generate_ids = model.generate(inputs.input_ids, max_length=30)
print(tokenizer.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0])
通过将模型的数据类型更改为 torch.float32,并将输入的 input_ids 转换为 torch.float32 数据类型,您应该能够解决这个问题。
原文地址: https://www.cveoy.top/t/topic/qwKv 著作权归作者所有。请勿转载和采集!