Closed Bob199511 closed 1 year ago
看作者在训练时遇到了这个问题,同样的我也遇到了这个问题,因为V100无法支持bp16类型的运算,只能死钻支持fp16的模型训练方法。捣鼓了半天,目前能运行了,结果还没出来,就先发发我的处理方式。
解决方式: 1.首先,我们可以看到加载的dolly-v2-3b的congfig.json文件中定义的 "torch_dtype": "bfloat16",我们直接改为"torch_dtype": "float32",如果直接改为“float16”会出现比较大的精度损失(BP16和FP32的数值表示范围一致,而FP16的表示范围要小得多) 2.然后,在trainer_dolly.py的TrainingArguments配置中将fp16设置为True, 将@click.option("--bf16", type=bool, default=True, help="Whether to use bf16 (preferred on A100's).")代码中的True改为False
"torch_dtype": "bfloat16"
"torch_dtype": "float32"
@click.option("--bf16", type=bool, default=True, help="Whether to use bf16 (preferred on A100's).")
做完这些程序就可以运行了,运行的效果还没出来,等结果。
是的,显存不会降低很多,还发现问题是训练后的模型以fp32模式保存,大小为10G多了,模型相对于bloom-3B的6G较大,也可能自己设置存在问题,推理速度比较慢
dolly效果其实一般,建议看我的新仓库chinese_bloom。可以使用各个尺寸的bloom模型
chinese_bloom
看作者在训练时遇到了这个问题,同样的我也遇到了这个问题,因为V100无法支持bp16类型的运算,只能死钻支持fp16的模型训练方法。捣鼓了半天,目前能运行了,结果还没出来,就先发发我的处理方式。
解决方式: 1.首先,我们可以看到加载的dolly-v2-3b的congfig.json文件中定义的
"torch_dtype": "bfloat16"
,我们直接改为"torch_dtype": "float32"
,如果直接改为“float16”会出现比较大的精度损失(BP16和FP32的数值表示范围一致,而FP16的表示范围要小得多) 2.然后,在trainer_dolly.py的TrainingArguments配置中将fp16设置为True, 将@click.option("--bf16", type=bool, default=True, help="Whether to use bf16 (preferred on A100's).")
代码中的True改为False做完这些程序就可以运行了,运行的效果还没出来,等结果。