Closed Wangyupei closed 1 year ago
您好,需要把ds_config
中的fp16
置为False
,bf16
置为True
。还可以试试在代码最开始加上torch.set_default_dtype(torch.bfloat16)
。
感谢您的回复。 您提到的两处参数设置,之前我们在代码里已经修改了,但是还是出现上面的问题:训练时,bf模型能加载和前向传播,但反向传播就报错。 您之前测试bf16模型,只需要修改下这两处,就可以正常运行吗?
您好。
在代码最开始加上torch.set_default_dtype(torch.bfloat16)
能解决您的问题吗?train_lomo_lora.py
的代码中就使用了bf16
.
谢谢。 train_lomo_lora.py是可以正常训练bfloat16,但是train_lomo.py训练blfoat16会出错。 两处都已经修改了:ds_config中的fp16置为False,bf16置为True,也在train_lomo.py开始训练处添加torch.set_default_dtype(torch.bfloat16)。 但是,还是上面的报错:AttributeError: 'NoneType' object has no attribute '_has_inf_or_nan',报错的代码是:> /output/LOMO/src/lomo.py(187)grad_norm() -> loss.backward(retain_graph=True) 请问是train_lomo.py不支持bfloat16训练吗?还是代码里需要修改?
可以尝试把
https://github.com/OpenLMLab/LOMO/blob/24cde8e91feac437809bf7790f4727623dce6a76/src/lomo_trainer.py#L88
里的model
改为self.model
。
谢谢
非常感谢您的代码。对于float16类型的Llama-7B模型,代码运行正常。注意到代码支持bfloat16类型,我们把Llama模型转换为bfloat16类型,目前代码可以正常加载bfloat模型,也可以正常前向传播并计算loss值,但是反向传播时却报错: 代码运行至:self.optimizer.grad_norm(loss),报错:AttributeError: 'NoneType' object has no attribute '_has_inf_or_nan'
请问是什么原因?