记录我LLM预训练+微调时所有遇到的啥比错误

RuntimeError: value cannot be converted to type at::BFloat16 without overflow

我用的是transformers==4.42.3,出错文件是model_qwen2.py 1127行,当Qwen2 bfloat16时不出错,量化后出错,训练和推理都是。然而服务器和本地对比出错部分的代码,发现俩版本都是4.42.3,结果文件不一样。太啥比了,不知道怎么回事,输出半天也没发现哪里有问题。由于这个py文件我已经全读过了,出错代码我却从来没见过,遂卸载transformers重装。
第一次重装后,运行通过,第二次运行又出现该错误,观察model_qwen2.py发现又是错误代码。遂二度重装,这次长了个心眼,盯紧了这个文件,结果跟薛定谔的猫一样,一直看着就没问题,文件也和本地的一样了,不是错误的那个版本了。
吃屎一样。

总之,重装transformers,怀疑是老版本Qwen2代码的bug。

Pytorch RuntimeError: Expected tensor for argument #1 ‘indices’ to have one of the following scalar types: Long, Int; but got torch.FloatTenso instead

这句错在loss计算中从检查点重新计算embedding的过程。
敬告,所有数值错误,管他输出多少,先把输出打印出来看看错误值,硬扣脑袋改永远不知道问题在哪。
我出错的代码在某个embedding函数,传参好几个。报错说第1个有问题,那就是第2个传参,我这里叫input。一打印,输出个空list。
问题找到了,是我读数据时会删除过长的数据,但是写错代码了,出错就会硬返回一个初始化的空list。

突然出现一个CUDA out of memory 大到300多G

错误代码在casual_attention处,意识到是数据处理出错了,肯定有一个巨tm长的句子。经检查果然。
所以说防御性编程很重要,按MAX_LENGTH分割完文本了,最后再写代码检查一遍是很重要的。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值