训练模型显存老是爆,我用过的几招和还没解决的疑问

自己练LoRA,显存不够这道坎迟早要碰上。下面几条是我实际用下来确实有效的,按省显存的直接程度排:

  1. 批大小降到最小,分辨率别贪高。 这俩对显存占用影响最大,也是最先该动的。道理不复杂,一次塞进去的图越多、每张越大,中间要存的东西就越多,砍这两项最立竿见影。
  2. 开梯度累积。 用多步小批去模拟大批的效果,说白了就是拿时间换显存。批大小压到底以后,担心小批训练不稳,就靠它补回来。
  3. 开混合精度训练。 显存能省一截,而且基本不用动别的设置,属于开了就有收益的那种。

我现在卡住的地方是:这些省显存的手段里,有没有哪个会明显拖慢速度,或者影响最终质量。直觉上肯定有代价,但我没做过严谨对比,凭几次训练的感受不敢下定论,怕误导人。

所以也想顺便请教在小显存卡上把训练跑顺的朋友,你们具体是怎么取舍的。最好能说到几G显存能练什么规模,真实跑过的经验最有用,理论峰值就别报了,那个我自己也查得到。

降分辨率对占用影响是真大,我从高分往下调一档立马不爆了。

求教程,想知道小卡到底能练多大规模。

批太小我还碰到过loss抖得厉害,累积步数开大点才稳下来。

@kk_zzz 我12G练SDXL角色LoRA,批1加梯度检查点能跑,再往上就别想了

1 个赞

累积步数开大是稳了,代价是时间又拉长一截 :sweat_smile:

1 个赞