Bootstrap

LoRA与量化技术结合:QPiSSA方法降低量化误差的优势分析

LoRA与量化技术结合:QPiSSA方法降低量化误差的优势分析

量化技术
量化技术是指将矩阵的值域划分为若干连续区域,并将每个区域内的所有值映射为相同的“量化”值。量化技术的主要目的是减少前向传播的内存消耗。这在深度学习中是一个重要的问题,因为随着模型的复杂性增加,内存消耗也会急剧增加。然而,量化技术在反向传播中会遇到问题,主要是因为量化后的梯度计算不够精确。

LoRA技术
LoRA(Low-Rank Adaptation)是一种通过引入低秩适配器来减少反向传播内存需求的方法。LoRA的核心思想是将模型参数分解成低秩形式,保留高精度的适配器,以便在反向传播时能够精确地更新参数。因此,LoRA可以与量化技术结合使用,量化基本模型以提高前向传播的内存效率,同时保持LoRA适配器的全精度以保证反向传播的准确性。

QLoRA方法

QLoRA的工作原理
QLoRA(Quantized LoRA)将基本模型量化为Normal Float 4-bit(NF4),并使用高斯零初始化来初始化全精度的A和B。QLoRA的量化误差公式如下:
Quantization Error of QLoRA = ∥ W − ( nf4 ( W ) + A B ) ∥ ∗ = ∥ W − nf4 ( W ) ∥ ∗ \text{Quantization Error of QLoRA} = \|W - (\text{nf4}(W) + AB)\|_* = \|W - \text{nf4}(W)\|_* Quantization Error of QLoRA=W(nf4(W)+AB)=Wnf4(W)
其中, ( ∥ M ∥ ∗ ) (\|M\|_*) (M)表示核范数(也称迹范数),定义为:
∥ M ∥ ∗ = trace ( M ∗ M ) = ∑ i = 1 min ⁡ { m , n } σ i ( M ) \|M\|_* = \text{trace}(\sqrt{M^*M}) = \sum_{i=1}^{\min\{m,n\}} \sigma_i(M) M=trace(MM )=i=1min{m,n}σi(M)
这里, ( σ i ( M ) ) (\sigma_i(M)) (σi(M))是矩阵M的第i个奇异值。

QPiSSA方法

QPiSSA的工作原理
QPiSSA(Quantized PiSSA)与QLoRA不同,不对基本模型W进行量化,而是对残差模型Wres进行量化。QPiSSA的量化误差公式如下:
Quantization Error of QPiSSA = ∥ W − ( nf4 ( W r e s ) + A B ) ∥ ∗ = ∥ W r e s − nf4 ( W r e s ) ∥ ∗ \text{Quantization Error of QPiSSA} = \|W - (\text{nf4}(Wres) + AB)\|_* = \|Wres - \text{nf4}(Wres)\|_* Quantization Error of QPiSSA=W(nf4(Wres)+AB)=Wresnf4(Wres)

残差模型的优势
残差模型Wres移除了大奇异值成分,使得Wres的分布比W更窄。这种分布的特点有助于减少量化误差。此外,NF4优化针对正态分布数据,因此对更接近高斯分布且标准差较小的Wres应用NF4量化技术更加合适。

实验与结果分析

在这里插入图片描述

图表解读
论文中图展示了不同矩阵(W和Wres)的奇异值分布,以及QLoRA和QPiSSA的误差矩阵和数据值分布。具体如下:

  1. 图a和图b:展示了原始矩阵W和残差矩阵Wres的奇异值分布。可以看到,Wres的奇异值分布比W更窄,表明Wres中大部分大奇异值成分已被移除。

  2. 图c和图f:展示了W和Wres的数据值分布。Wres的数据分布更接近高斯分布,且标准差较小,这使得NF4量化技术更适用于Wres。

  3. 图d和图e:展示了QLoRA和QPiSSA的误差矩阵。QPiSSA的误差矩阵显示其量化误差显著低于QLoRA。

结论

QPiSSA通过对残差模型进行量化,成功地减少了量化误差。由于Wres的分布更接近高斯分布且标准差较小,NF4量化技术在应用于Wres时更加有效。这些特点使得QPiSSA在实际应用中能够实现比QLoRA更低的量化误差,并且在模型微调性能方面也表现更优。

;