Compress to Impress: Efficient LLM Adaptation Using a Single Gradient Step on 100 Samples


TL;DR

本文提出了一种名为”Compress to Impress”的高效LLM自适应方法,仅需在100个样本上进行单次梯度计算,并结合多子空间矩阵分解,即可在无需任何微调的情况下,快速提升模型在下游任务上的性能。

关键定义

本文的核心是围绕对现有方法 LASER 进行效率和效果上的改进,提出了以下关键概念:

相关工作

当前,将大型预训练模型适应到特定领域或任务是一项昂贵的工作。标准的完全微调(full supervised fine-tuning)需要巨大的计算资源。尽管出现了参数高效微调方法,如 LoRA、Adapter 和 Prompt-Tuning,它们在减少训练参数量的同时,仍然存在不可忽视的计算和存储开销。

最近,一种无需梯度优化的后训练干预方法 LASER 显示出了潜力:通过对精心挑选的权重矩阵进行降秩,可以提升下游任务的准确率。然而,LASER 方法存在一个致命的瓶颈:它需要对模型中的每个矩阵进行详尽的搜索,每次搜索都需要在整个数据集上进行前向传播,这使得它在需要快速部署的场景下不切实际。

本文旨在解决 LASER 方法的效率低下问题,提出一种既快速又有效的LLM自适应算法,使其能够在单个GPU上以分钟级的速度完成,且无需任何微调。

本文方法

本文提出了一种全新的、无需微调的LLM自适应流程,通过三个核心洞见极大地提升了效率和效果。该方法首先通过一次梯度计算快速定位需要压缩的关键层,然后运用多子空间分解技术进行更精细的去噪,并且整个过程仅需少量样本即可完成。

方法流程图 上图展示了本文方法的整体流程:

  1. 在目标任务数据上进行单次梯度计算,获得奇异值梯度,并以此为依据对所有权重矩阵进行排序,识别出最值得进行低秩压缩的矩阵,以抑制过拟合并适应新风格。
  2. 通过将选定矩阵的行聚类到多个子空间中并对每个簇进行分解,扩大了搜索范围,从而更有效地捕获异构结构并减少噪声。
  3. 整个梯度评分和性能评估过程仅需100个样本即可完成。
  4. 最终,该方法实现了高达52倍的加速和最多24.6个百分点的准确率提升,且完全无需微调。

创新点1:使用奇异值梯度定位关键矩阵

本文的第一个核心创新是提出了一种高效识别应被压缩的权重矩阵的方法。其关键思想是,损失函数$L$对矩阵$W$的奇异值$\sigma_i$的梯度,即$\frac{\partial L}{\partial\sigma_{i}}$,直接揭示了模型希望保留还是削弱该奇异值对应的分量。

给定一个权重矩阵$W$的奇异值分解(SVD)$W = U\Sigma V^{\top}$,以及通过反向传播得到的常规梯度$G=\frac{\partial L}{\partial W}$,损失对奇异值的梯度可以通过一个简单的点积计算得出:

\[\frac{\partial L}{\partial\sigma_{i}} = u_{i}^{\top}G\,v_{i}\]

其中$u_i$和$v_i$是$W$的左右奇异向量。

这个梯度的符号和大小具有明确的物理意义:

通过计算每个矩阵所有奇异值的梯度,并将负梯度值累加作为评分,本文可以快速地对模型中所有矩阵进行排序,只选择得分最高的(即最需要被压缩的)少数矩阵进行处理,从而避免了LASER方法中对所有层的暴力搜索。

创新点2:基于少量样本完成评估与梯度计算

本文的第二个重要发现是,整个自适应过程仅需少量样本(约100个)即可完成。这包括两个方面:

  1. 梯度计算:计算奇异值梯度只需要在100个样本上进行一次前向和后向传播。
  2. 性能评估:在搜索最佳压缩参数(如秩、聚类数)时,同样只需在这100个样本上评估压缩后模型的准确率。

这一发现的背后逻辑是,模型对新任务的自适应主要依赖于对“提示风格”(prompting style)的学习,如措辞、回答格式或主题焦点,而这些风格信息在数据集中是高度重复的。因此,仅用少量样本就足以捕捉到这些关键的风格信号,从而获得足够饱和的梯度信息并准确评估不同压缩策略的相对优劣。这一举措将原本耗时的过程缩短到在单GPU上分钟级即可完成。

创新点3:通过多子空间分解增强去噪效果

本文的第三个创新点是引入了多子空间分解(multi-subspace decomposition)来替代传统的单一SVD。其核心假设是:

权重矩阵的行向量是从多个子空间的混合体中抽取的。过拟合表现为每个子空间内部的微小奇异值方向,而非整个矩阵的。将分解的搜索空间从单一SVD扩展到多个特定于簇的SVD,可以更有效地找到去除噪声的分解方式。

传统的SVD试图用一个低维子空间拟合矩阵的所有行,这在处理包含多种混合特征(如语法与语义)的权重矩阵时,可能因为“一刀切”而同时损害有用的结构并保留部分噪声。

为了解决这个问题,本文采用了一种简单而有效的启发式方法:块分割(block splitting)。具体做法是:

  1. 将待压缩的矩阵$W$按行顺序分割成$K$个连续的块$W_1, \dots, W_K$。
  2. 对每个块$W_k$独立进行SVD,并保留其最重要的$j$个奇异值,得到压缩后的块$\widehat{W}_k$。
  3. 将所有压缩后的块$\widehat{W}_k$重新堆叠起来,形成最终的压缩矩阵$\widehat{W}$。

这种方法允许每个块拥有自己独立的子空间,从而更灵活地适应局部结构,分散并隔离噪声。实践证明,这种方法能够发现更高质量的、噪声更少的分解方案,从而在提升效率的同时进一步提高模型准确率。

实验结论

本文在一系列数据集上对GPT-J和Roberta模型进行了实验,验证了所提方法的有效性。实验的核心配置包括:

提升SOTA性能与效率

实验结果表明,本文方法不仅大幅提升了计算效率,还在多个任务上超越了基线和原LASER方法的准确率。

GPT-J实验结果

下表展示了在GPT-J模型上的结果。CL-100G-100E配置在平均准确率上比LASER提升了0.95%,同时实现了52倍的加速。特别是在BigBench-Epistemic Reasoning任务上,准确率提升高达24.6个百分点,显著证明了多子空间分解假设的价值。

数据集 基线 LASER CL-100G-SE CL-100G-100E
  Acc % Acc % / 加速比 Acc % / 加速比 Acc % / 加速比
CounterFact 43.19 48.06 / 1× 48.91 / 2.3× 47.78 / 62.9×
HotPotQA 23.95 28.52 / 1× 28.89 / 1.7× 28.16 / 49.3×
BigBench-Epistemic 25.00 25.00 / 1× 49.60 / 1.1× 49.60 / 30.5×
BigBench-WikidataQA 2.50 2.50 / 1× 2.70 / 2.8× 2.50 / 74.3×
FEVER 85.58 85.90 / 1× 86.85 / 1.9× 86.10 / 53.6×
Bios Gender 91.01 91.31 / 1× 92.51 / 1.9× 92.41 / 53.1×
Bias in Bios 96.08 96.38 / 1× 97.23 / 1.7× 97.23 / 48.5×
TruthfulQA 50.40 50.40 / 1× 50.40 / 2.8× 50.40 / 74.3×
平均 52.21 53.51 / 1.0× 55.89 / 2.0× 54.46 / 52.0×

Roberta实验结果

对于较小的Roberta模型,虽然仅使用多子空间分解带来的提升不如GPT-J明显,但CL-100G-100E配置依然能在保持与LASER相当性能的同时,实现约20倍的加速。

数据集 基线 LASER CL-100G-SE CL-100G-100E
  Acc % Acc % / 加速比 Acc % / 加速比 Acc % / 加速比
FEVER 85.73 86.41 / 1× 85.83 / 2.2× 86.41 / 20.3×
Bios Gender 90.75 92.83 / 1× 91.43 / 2.2× 92.11 / 20.4×
Bias in Bios 96.44 97.35 / 1× 96.65 / 2.2× 97.22 / 20.4×
平均 90.97 92.20 / 1.0× 91.30 / 2.2× 91.91 / 20.4×

消融实验

消融实验进一步验证了各项效率改进技术的有效性:

总结

本文成功地提出了一种极其快速和有效的LLM自适应方法。通过结合奇异值梯度、少量样本策略和多子空间分解,该方法可以在完全不进行微调的情况下,以极低的计算成本(单GPU分钟级)显著提升模型在下游任务上的表现,使得LLM的快速、轻量化自适应变得更加现实和可行。