在冻结模型部分参数时,理论上被冻结的参数不需要梯度,应该可以降低训练过程的显存占用。然而,在博主的实际测试中,冻结模型参数并没有显著降低模型参数占用。为此对训练提醒代码进行优化,意图实现模型显存占用的优化。
通过对训练过程中的激活值与梯度值的优化,在针对冻结95%的训练场景,模型训练速度可以加速20%,模型显存占用降低到原来的22%(拟定torch.cuda环境占用显存为1.4g)
依赖项说明
pip install nvitop
pip install timm
pip install peft
后续的显存占用,均基于nvitop命令实现
1、显存占用对比
在模型训练过程的显存占用实测中,发现模型训练100%的参数,与5%的参数,速度与显存占用是一模一样的,具体如下图所示。