SheepNav
新上线今天0 投票

CARE-LoRA:用压缩激活重建实现内存高效的LoRA微调

随着大模型参数规模不断膨胀,在有限内存下进行微调变得越来越困难。LoRA(Low-Rank Adaptation)作为最流行的参数高效微调方法之一,通过仅优化低秩适配矩阵大幅减少了可训练参数量。然而,当参数开销被显著压缩后,用于反向传播的激活值反而成为了新的主要内存瓶颈。针对这一挑战,上海交通大学等机构的研究者提出了 CARE-LoRA(Compressed Activation REconstruction for Memory-Efficient LoRA),一种数据感知的压缩激活重建框架。

核心思路:利用LoRA的固有结构

CARE-LoRA的核心洞察在于:LoRA分支本身在向前传播时就会产生低秩的压缩激活。传统LoRA需要保留完整的输入激活以便反向传播计算梯度,而CARE-LoRA则用这些压缩激活替代完整激活进行存储。为了不丢失梯度信号,它在向前传播过程中额外计算一个轻量级的重建矩阵,该矩阵的计算开销极小,却能在反向传播时精确重建所需的梯度,从而保持LoRA矩阵的完全可训练性。

实验结果:内存节省与性能兼得

研究团队在多种模型(如LLaMA、GPT-2、ViT等)和下游任务(文本分类、自然语言生成、图像分类等)上进行了大量实验。结果显示:

  • 内存占用显著降低:相比标准LoRA,CARE-LoRA在保持相同可训练参数量的情况下,将激活内存开销减少了50%-70%。
  • 性能持平甚至更优:在大部分任务上,CARE-LoRA的微调效果与标准LoRA相当,部分任务上还略有提升。
  • 额外计算成本极低:重建矩阵的计算仅增加不到1%的前向时间,几乎可以忽略不计。

行业意义:让大模型微调更亲民

当前,大模型微调的主要门槛已经从参数存储转移到了激活内存。例如,在单张24GB显存的GPU上,标准LoRA可能只能微调7B参数规模的模型,而CARE-LoRA则有望支持13B甚至更大规模的模型,且无需牺牲性能。这对于资源受限的研究者和小型企业来说,无疑是一个好消息。

小结

CARE-LoRA巧妙利用了LoRA本身的低秩特性,将激活压缩与梯度重建融为一体,在几乎不增加计算量的前提下大幅降低了内存开销。这一方法为参数高效微调领域提供了新的思路,也预示着未来大模型微调将更加内存友好。代码已在GitHub开源,感兴趣的读者可以进一步探索。

延伸阅读

  1. 查询可见性如何颠覆KV缓存压缩排名:一项匹配预算的审计研究
  2. 数据科学数学:一部连接理论与实践的权威新著
  3. 镜子地平线:可行路径熵作为有限反思的度量
查看原文