AQLoRA:一种快速量化LoRA微调的零搜索方案

arXiv cs.LG 论文

摘要

AQLoRA是一种零搜索方法,通过自适应地将高NF4重构误差的层保持为fp16格式,加速量化LoRA微调,实现最高11%的训练速度提升,且精度损失极小。

arXiv:2608.23816v1 发布类型:新 摘要:量化微调(QLoRA)节省内存但不节省时间。它实时反量化每个4位权重,因此训练速度比fp16 LoRA慢。我们提出AQLoRA(自适应量化LoRA),一种部分恢复时间的方案。一次CPU遍历权重即可设置所有参数,无需搜索和校准数据。该遍历按NF4重构误差对层进行排序,并在内存预算内将前K层保持为fp16格式。这些层跳过反量化,从而实现加速。质量设置自适应调整每一层。速度设置仅自适应调整前几个块,使反向传播提前停止。该规则能在几秒内精确复现Unsloth手动调整的动态4位选择,而基于搜索的分配需要重复的校准遍历。 我们在Commonsense-170K数据集上对六种模型和四个架构族(从1.4B到14B)进行了评估。速度设置比优化后的QLoRA训练快11.1 +/- 2.7%,精度损失约一个百分点。在所有九次独立计时会话中都更快,最差情况下快7%。质量设置训练快4.8 +/- 2.4%。其精度在所有模型上与QLoRA持平,并在fp16 LoRA的一个百分点内,内存仅多0.2 GiB。这些误差条是在独立会话间测量的,而非单个会话内。获得这些数据教会了我们关于共享硬件计时的三个规则:固定测量时长,而非步数;从重复分支测量噪声基线,而非近乎相同的方法;重复整个会话:单次扫描内计算的基线会低估真实不确定性数倍,而随机种子几乎无法控制它。 我们使用对照实验验证了该方案,并报告了两个失败案例。按权重密度选择适配器层并不比随机选择更好。按量化误差选择保护层也不佳。保护层的数量,而非其身份,才是加速效果的关键。
查看原文
查看缓存全文

缓存时间: 2026/08/26 09:25

# AQLoRA:一种用于快速量化 LoRA 微调的零搜索方案
来源:https://arxiv.org/html/2608.23816

###### 摘要
量化微调(QLoRA)虽然节省内存,但并未节省时间。它需要动态反量化所有4位权重,因此训练速度比fp16 LoRA更慢。我们提出了AQLoRA(自适应量化 LoRA),一种能够部分找回这部分时间的方案。仅需在CPU上对权重进行一次遍历即可完成所有设置,无需搜索,无需校准数据。此遍历根据NF4重构误差对层进行排序,并在内存预算内将误差最高的K层保持为fp16精度。这些层跳过了反量化操作,速度提升由此而来。质量设置对每一层进行自适应;速度设置则仅对最高块进行自适应,从而提前终止反向传播。该规则能在几秒内精确复现Unsloth手工精选的动态4位选择,而基于搜索的分配方案则需要在校准数据上进行多次遍历。我们在Commonsense-170K基准上对六种模型和四个架构族(从1.4B到14B)进行了评估。速度设置比精心调优的QLoRA快11.1±2.7%,准确度仅下降约一个百分点。在九个独立计时会话中,每一次都更快,最差情况下快7%。质量设置快4.8±2.4%。在每个模型上,其准确度与QLoRA持平,并与fp16 LoRA相差在1个百分点以内,仅多消耗0.2 GiB内存。这些误差范围是在独立会话之间测量的,而非单一会话内部。获取它们的过程教会了我们三个在共享硬件上进行计时的规则:固定测量持续时间,而非步数;通过复制臂测量噪声基底,而非使用近乎相同的方法;重复整个会话:在单次扫描内计算的基底会将实际不确定性低估数倍,而随机种子几乎无法控制它。

我们通过对照实验验证了该方案,并报告了两个失败的结果:按权重密度选择适配器层并不优于随机选择;按量化误差选择受保护层也不优于随机选择。受保护层的数量,而非其身份,决定了速度效应。

## 1 引言
低秩自适应(LoRA)及其量化形式QLoRA使得在内存受限的消费级GPU上微调数十亿参数的大语言模型成为可能。但内存节省不等于训练加速。QLoRA在每个前向和反向传播中都需要将所有4位权重块反量化回半精度,这导致其比fp16 LoRA更慢。多项研究表明,NF4 QLoRA的训练吞吐量仅为普通LoRA的0.7到0.8倍。那些为了能够部署模型而进行量化(无论是在旧数据中心卡、笔记本电脑还是手机上)的用户,在内存节省的基础上还额外付出了速度代价。这部分代价可以被部分找回。

在整体量化的模型中,保持某个层为fp16精度就可以跳过该层的反量化,因此每个保持fp16的层都用一点内存换取了一点速度。自然的问题是:应该保留哪些层?敏感性研究文献提示了一个答案:NF4误差在不同层之间分布不均,因此应保留受损最严重的层。我们采纳了这一规则,并对其进行了测试——这很重要。受保护层的数量驱动了我们可测量的一切。我们的对照实验无法证明这些层的具体身份起到了任何作用。该规则在不同依据下依然成立:它是确定性的、无需数据的,并且与工业界已经手工部署的选择方法完全相同。

层保护本身已在使用中。Unsloth的动态4位模型将选定层保持为16位以恢复QLoRA准确度;QEFT则通过自定义内核将敏感列保持为fp16,并报告了质量和速度上的双重提升。所缺失的是一个明确的规则,无需校准数据,能在HuggingFace和bitsandbytes的标准技术栈上运行,无需自定义内核。同样缺失的是与基于搜索的比特和秩分配器(定义该领域其余部分的方法)的比较。AQLoRA填补了这一空白。

在CPU上对权重进行一次遍历仅需几秒,无需数据,也无需前向传播。它生成两个映射:精度映射在内存预算内将NF4受损最严重的K层保持为fp16;放置映射为质量自适应每一层,或仅为速度自适应最高块,从而提前终止反向传播。该方案可与秩稳定缩放结合使用。我们将所有通用的速度提升手段(长度分组批处理、融合优化器、注意力后端)同样应用于所有基线,因此我们测量到的任何增益都来自AQLoRA自身的组件,而非调优。

在Commonsense-170K的8任务基准上,针对1.4B到14B的六个模型和四个架构族,AQLoRA的质量设置在所有方面匹配QLoRA,并与fp16 LoRA参考值相差在1个百分点以内;在GSM8K数学推理上同样保持了这种一致性。准确度是持平的结果,而非优势;增益在于速度。我们谨慎归因:基于敏感性的保护和提前终止反向传播已有前人工作,我们已引用;我们的贡献是零搜索的精度规则,以及在内核和FP8方法无法运行的硬件上依然有效的速度结果。我们还检查了用于选择适配哪些层的权重密度规则,发现其不优于随机选择,并报告了该结果。一次秩扫描(r∈{4,8,16,32})证实方法排序并非某一适配器大小的伪影。它也揭示了一个值得关注的失败案例:在r=8时表现最强的基线rsLoRA,在共享学习率下当r=32时坍缩到随机准确度,而其训练损失仍看似健康。

**贡献:**
1.  提出了一个形式化的量化LoRA微调零搜索分配规则:一次无需校准的CPU遍历计算每层的块级NF4重构误差,并在内存预算内将受损最严重的K层保持为fp16。基于敏感性的保护在推理PTQ和行业实践中已有确立。我们的贡献在于其形式化及其系统评估:经验性地与Unsloth部署的手工选择进行比较,并在成本上与基于搜索的分配方法进行比较。
2.  报告了我们自身对照实验得出的两个负面结果,以及一个有效的速度旋钮:用于选择适配哪些层的权重密度规则不优于随机选择,同样,我们用于选择保护哪些层的NF4误差排序也不优于大小和内存匹配的随机层集。真正有帮助的是仅自适应最高块——已知的反向传播提前终止加速在4位基座上的应用;我们测量了它,但不声称其为新方法。
3.  在标准技术栈上(未修改的HuggingFace、bitsandbytes和PEFT),在五个模型上进行了九次会话的计时,得到一个系统层面的结果。速度设置在几乎相同内存下,比精心调优的QLoRA快11.1±2.7%,准确度仅下降约一个百分点。质量设置快4.8±2.4%,准确度与fp16 LoRA相差在1个百分点以内。两者在我们运行的每一次会话中都更快。质量设置在不同会话间的离散度与其效果大小相当,因此我们只报告其更快,但不给出具体幅度。这在V100类硬件上成立,而FP8方法无法在此类硬件上运行。
4.  提出了一个公平杠杆的评估方案:每个通用效率杠杆(长度分组批处理、融合优化器、Dropout、注意力后端)都被应用于*所有*基线,因此测量到的优势仅来自AQLoRA自身的机制。我们发布了代码和每次运行的原始产物,因此论文中的每个数字都可以在没有GPU的情况下重新计算。完整的杠杆阶梯使每个杠杆的贡献可审计。

## 2 相关工作

##### 量化PEFT。QLoRA通过冻结的NF4基座反向传播到LoRA。后续工作改进了量化感知初始化、可合并性、信息保留或量化器模块化。这些工作均未针对训练*速度*;有些甚至比QLoRA更慢。

##### 混合精度与基于敏感性的分配。按量化敏感性对层进行排序并将最差层保持在更高精度是长期存在的PTQ实践。它已在llama.cpp的k-quant混合和Unsloth的动态4位模型中大规模部署,后者基于测量的量化误差将选定层保持为16位用于QLoRA微调,但未提供明确的选择规则或系统研究。QEFT和OWQ通过自定义布局将敏感*列*保持为fp16,并报告了质量和微调速度的双重提升。另一条路线通过搜索分配每层的比特和秩:LQ-LoRA使用整数线性规划,LowRA使用带学习映射的整数线性规划分配器达到1.15比特,QR-Adaptor使用无梯度搜索,AutoQRA使用进化和贝叶斯搜索。AQLoRA在范围而非思想上与这些方法不同。它在标准技术栈上以整层粒度工作,而非QEFT的内核;它陈述了一个带预算的规则,而非Unsloth的手工选择列表;它在几秒内完成剖析,而其他方法则需要搜索。

##### 适配器放置与选择性反向传播。并非每个层都需要适配器的观点可追溯至AdapterDrop,该工作移除了较低层的适配器并量化了由此带来的反向传播节省。LoRA-drop、SR-LoRA、PaFi和Aletheia根据输出、谱、幅度或探测统计信息选择层或参数。AdaLoRA自适应秩预算。随机反向传播缩减、层冻结和旁路网络都减少了反向传播计算。AQLoRA从这一脉络中采用了深度受限的放置方法,并增加了在4位基座上的测量速度与质量权衡,包括其如何与梯度检查点交互。

##### 快速微调系统。内核级系统(Unsloth、Liger、LoRAFusion)和FP8方法在现代数据中心GPU上设定了绝对速度标杆;SparseLoRA通过上下文稀疏性减少计算。这些方法需要自定义内核或Hopper类硬件。AQLoRA针对的是另一种情况:在Hopper前和边缘设备上的标准技术栈,且其杠杆仍可与这些系统组合。

##### 设备端微调。真实的手机LLM微调已通过内存高效反向传播、零阶方法、基于llama.cpp的移动LoRA以及如PockEngine和MobileFineTuner等引擎实现;EDGE-LLM在仿真中自适应压缩。所有这些方法都通过统一设置或固定启发式混合来固定基座精度;没有一种方法从被微调模型的测量中选择每层精度。

## 3 方法
图1:AQLoRA流程图。
### 3.1 剖析遍历
对于每个线性层ℓ及其权重W_ℓ,将其展平为大小为64(与bitsandbytes匹配)的块b,计算:
ε_ℓ = (1/|W_ℓ|) * Σ_b || b - absmax-NF4⁻¹(absmax-NF4(b)) ||₂²,
s_ℓ = Pr[ |W_ℓ,ij| < τ ],
其中τ=0.01,使用真实的16级NF4分位数网格。该遍历在CPU上对fp16检查点运行,无需数据,无需前向传播。在热检查点上,实测挂钟时间在0.5B模型时约1.7秒,1.4B模型时约2.5秒,大部分时间用于NF4算术;从磁盘冷加载会多花几秒。与多小时的微调运行相比,这可以忽略不计。并且,它比QR-Adaptor或AutoQRA等基于校准和搜索的分配方法在数量级上更快,后者的每次配置评估需要在进行校准数据的多次前向传播。

### 3.2 精度分配(零搜索)
误差ε_ℓ被用作层敏感性排序...

相似文章

Hybrid-LoRA:桥接全微调与低秩适应的后训练方法

arXiv cs.LG

Hybrid-LoRA提出了一种框架,选择性地对一小部分模块进行全微调,同时对其他模块使用LoRA,在显著降低计算成本的同时实现了接近全微调的性能。实验表明,与现有参数高效基线方法相比,性能提升高达5.65%。

超越旋转:AuroOFT用于表达性量化正交微调

arXiv cs.LG

介绍了AuroOFT,一种通过零起点门控低秩非线性残差增强量化正交微调(QOFT)的方法,在低比特语言模型上以更少的可训练参数提升了数学推理准确率,优于QOFT和QLoRA。