论文:FULL PARAMETER FINE-TUNING FOR LARGE LANGUAGE MODELS WITH LIMITED RESOURCES
简介
这篇论文关注低资源条件下的大语言模型全参数微调问题,提出了 LOMO 优化器。它通过减少优化器状态和梯度缓存,将全参数微调的显存成本降下来,使单卡 24GB 显存微调 LLaMA-7B 具备可行性。
方法介绍
伪代码如下:
LOMO 的思路借鉴了 SGD,没有使用动量项来维护额外的优化器状态。它和普通 SGD 的主要区别在于参数更新时机:在反向传播过程中计算到某个参数的梯度后,就立即更新该参数,而不是等所有梯度都计算完成后再统一更新。
这样做可以避免在显存中长期保存完整的优化器状态和全部参数梯度,只需要保存当前正在处理的梯度,从而显著降低显存占用。
显存降低情况如下图所示:
不过,这种方法的训练速度相对较慢,可能和 ZeRO-3 的通信开销以及逐步更新参数的实现方式有关。和 int4 LoRA 微调 LLaMA 相比,LOMO 的速度并不占优;但它处理的是全参数微调问题,显存占用也明显降低,因此更适合作为低资源全量微调的一种可行路径。
实验结果
论文中的实验主要在作者设定的任务和配置下比较,并且结果按最佳表现报告,因此更适合作为方法可行性的参考。整体来看,LOMO 证明了低资源条件下进行大模型全参数微调的可行性,但在训练速度、稳定性和不同任务上的泛化表现方面,仍需要结合具体场景继续验证。