跑llama2微调的时候报这个错误,起初以为是版本问题,尝试了升降Numpy,transformers以及bitsandbytes都没有,然后CSDN上也没查到相关错误。
后续是根据1170行(原1163行)的Giuhub网址,里面有实时更新的huggingface-transformers的兼容性问题的讨论与解答。最后发现其中给出的方法是,手动更改报错所在的代码段,多加几个判断,来手动保证quant_storage这个变量的参数可以有效提取。
修改miniconda3/lib/python3.8/site-packages/transformers/modeling_utils.py:
新加入的代码1162-1168为:
if hasattr(param, "element_size"):
num_bytes = param.element_size()
elif hasattr(param, "quant_storage"):
num_bytes = param.quant_storage.itemsize
else:
num_bytes = 1
total_numel.append(param.numel() * 2 * num_bytes)
其后遂可正常运行: