专栏名称: 深度学习与图网络
关注图网络、图表示学习,最近顶会顶刊动态以及机器学习基本方法,包括无监督学习、半监督学习、弱监督学习、元学习等
目录
相关文章推荐
北京厚朴中医  ·  筑基十一期招生开启——学习中医、厚朴筑基 ·  昨天  
北京厚朴中医  ·  筑基十一期招生开启——学习中医、厚朴筑基 ·  3 天前  
北京厚朴中医  ·  厚朴粉丝福利回馈,来领奖喽 ·  3 天前  
中国中医  ·  浙江:推广试点中药全链条追溯体系应用 ·  昨天  
山西省人民政府  ·  海报|亚冬会上的“山西能量包”,Buff叠满! ·  3 天前  
51好读  ›  专栏  ›  深度学习与图网络

2024 || Q-GaLore: 16G内存训练LLaMA 7B!

深度学习与图网络  · 公众号  ·  · 2024-08-09 21:35

正文

本文为GaLore的改进版, 能够减少SVD操作,并通过量化进一步降低内存。主要包括:1)动态调整子空间投影变换的频率;2)量化子空间参数。 ICML 2024 Oral || GaLore: 大模型加速优化新策略


基本信息和摘要

论文题目

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间隔 :对于每一层 ,从初始的SVD间隔 开始。
  • 监测余弦相似度 :在接下来的 个间隔中,监测投影矩阵的余弦相似度。余弦相似度用来衡量不同时间点的投影矩阵之间的相似性。
  • 阈值判断 :如果在这 个间隔中,投影矩阵的余弦相似度始终保持在某个阈值以上(例如,大于或等于40%),则认为该层的梯度子空间在这段时间内是相对稳定的。
  • 自适应更新 :在这种情况下,将该层的SVD间隔从 更新为 。这意味着在更长的时间内才需要进行一次SVD操作,从而减少了计算次数和计算成本。

通过这种自适应的“懒”更新策略,Q-GaLore能够在保持与原始GaLore方法相似的性能的同时,将计算成本高昂的SVD调用次数减少超过60%。

2. 投影矩阵量化敏感性

观察

投影矩阵对低比特量化具有很高的弹性 ,4bits的表现已经很好,说明投影矩阵具有一定的冗余性,表明高精度并非必需。

解决方案

作者对投影矩阵应用了量化,将其限制在4位 ( INT4 )。这种方法进一步减少了低秩训练中优化器状态的内存成本,减少了25%。

方法

随机舍入近似梯度

除了上述两个解决方案。在使用如GaLore这样的低秩训练方法时, 维护模型参数的内存分配 构成了大部分内存开销。因此,作者选择在训练期间保持低精度的权重以提高内存效率。使用低精度参数进行训练的主要挑战是 梯度信息的显著减少 。在每次优化步骤中,全精度梯度必须量化为低精度权重更新。然而,如果梯度幅度不够大,它将通过最近舍入方案被削弱。传统的量化感知训练(QAT)保留了高精度参数以累积小的梯度贡献,尽管这增加了内存开销。为了解决这个问题,作者采用了 随机舍入(SR) ,其公式如下:

在这种公式下,







请到「今天看啥」查看全文