基本信息和摘要
论文题目
Q-GaLore: Quantized GaLore with INT4 Projection and Layer-Adaptive Low-Rank Gradients
Arxiv:
https://arxiv.org/pdf/2407.08296
Code:
https://github.com/VITA-Group/Q-GaLore
作者
Zhenyu Zhang, Ajay Jaiswal, Lu Yin, Shiwei Liu, Jiawei Zhao, Yuandong Tian, Zhangyang Wang
研究单位
1. University of Texas at Austin
2. University of Surrey
3. University of Oxford
4. California Institute of Technology
5. Meta AI
解决问题
GaLore通过SVD实现全参数低秩梯度更新,成为了一个显著的候选方法。该方法将LLaMA模型总训练内存需求减少了高达63.3%,使得仅需24GB内存即可训练7B模型。在GaLore基础上,进一步
提高大模型内存使用效率
。
Q-GaLore的
核心改动
如下:
摘要
本文介绍了Q-GaLore,通过结合量化和低秩投影显著减少内存使用量,从而提高了大型语言模型(LLMs)训练的内存效率。
GaLore是一种通过奇异值分解(SVD)将权重梯度投影到低秩子空间以减少内存使用的方法
,但
-
其依赖于耗时的SVD操作,并且
频繁的子空间更新
导致了显著的训练时间开销。
-
GaLore在更易访问的微调场景中与LoRA相比在准确性和效率上提升有限。
Q-GaLore根据收敛统计信息
自适应地更新梯度子空间
,减少了SVD操作的次数。同时,Q-GaLore在
INT4格式下维护投影矩阵
,以进行内存保护,并在
INT8格式下保留权重
,引入随机舍入以捕获累积梯度信息。这种方法仅使用低精度权重即可实现高精度训练轨迹。实验表明,Q-GaLore在预训练和微调性能上具有高度竞争力,同时具有出色的内存效率。
重要观察 & 解决方案
1. 子空间变化
解决方案
梯度子空间行为的监测与SVD
频率的动态更新
。
-
初始SVD间隔
:对于每一层
,从初始的SVD间隔
开始。
-
监测余弦相似度
:在接下来的
个间隔中,监测投影矩阵的余弦相似度。余弦相似度用来衡量不同时间点的投影矩阵之间的相似性。
-
阈值判断
:如果在这
个间隔中,投影矩阵的余弦相似度始终保持在某个阈值以上(例如,大于或等于40%),则认为该层的梯度子空间在这段时间内是相对稳定的。
-
自适应更新
:在这种情况下,将该层的SVD间隔从
更新为
。这意味着在更长的时间内才需要进行一次SVD操作,从而减少了计算次数和计算成本。
通过这种自适应的“懒”更新策略,Q-GaLore能够在保持与原始GaLore方法相似的性能的同时,将计算成本高昂的SVD调用次数减少超过60%。
2. 投影矩阵量化敏感性
观察
投影矩阵对低比特量化具有很高的弹性
,4bits的表现已经很好,说明投影矩阵具有一定的冗余性,表明高精度并非必需。
解决方案
作者对投影矩阵应用了量化,将其限制在4位 (
INT4
)。这种方法进一步减少了低秩训练中优化器状态的内存成本,减少了25%。
方法
随机舍入近似梯度
除了上述两个解决方案。在使用如GaLore这样的低秩训练方法时,
维护模型参数的内存分配
构成了大部分内存开销。因此,作者选择在训练期间保持低精度的权重以提高内存效率。使用低精度参数进行训练的主要挑战是
梯度信息的显著减少
。在每次优化步骤中,全精度梯度必须量化为低精度权重更新。然而,如果梯度幅度不够大,它将通过最近舍入方案被削弱。传统的量化感知训练(QAT)保留了高精度参数以累积小的梯度贡献,尽管这增加了内存开销。为了解决这个问题,作者采用了
随机舍入(SR)
,其公式如下:
在这种公式下,