随着模型规模的迅速增加以及各种微调应用的重要性日益增加,轻量级训练变得至关重要。由于反向传播的代价是前向传播的两倍,因此优化反向传播尤为重要。 然而,对此过程的修改可能导致次优的收敛,因此训练优化应尽量减少扰动,这是一项极具挑战性的任务。在本文研究中,作者引入了一种新的优化策略,称为哈达玛低秩量化(HLQ),重点关注降低卷积层和线性层中反向传播的成本。 作者首先分析了梯度计算关于激活和权重的敏感性,并审慎设计HLQ流程,将4位哈达玛量化应用于激活梯度,并将哈达玛低秩近似应用于权重梯度。 这种组合被发现在最大化收益方面效果最佳,作者的大量实验证明了HLQ在从头开始训练和微调中的卓越性能,在真实GPU上实现了显著的内存节省和加速,而质量下降可以忽略不计。
1 Introduction
到目前为止,大多数模型优化的努力都集中在降低推理成本上,而对模型训练成本的重视较少,因为这些成本只需承担一次。虽然优化重复使用的推理过程至关重要,但由于训练优化必须满足更具挑战性的条件,因此相对而言被忽视了。在推理优化中,人们可以很容易地估计优化引起的质量损失,并通过额外的训练来减轻,例如量化感知训练(QAT)[1; 2; 3]或知识蒸馏[4; 5; 6]。相比之下,训练优化的性能下降难以衡量且难以恢复。训练优化必须在显著降低成本的同时,尽量减少训练过程中的扰动。
由于上述限制,训练优化尚未得到广泛探索。然而,随着模型变得越来越大,以及跨各种应用持续更新的需求增加[7; 8],对高效训练的需求迅速上升。大型模型的出现,如大型语言模型(LLM)和视觉 Transformer (ViT),加速了这一趋势,使得在资源受限的环境中高效训练变得至关重要。
为了满足这一需求,作者探索了训练优化方面的新潜力。与一些先前方法[14; 15]不同,作者专门关注线性层和卷积层的反向传播(BP)。
这种策略背后的理由有两方面:首先,这些层的反向传递的计算成本是前向传递的两倍,占BP开销的大部分;
其次,利用未修改的前向传递可以确保精确的损失评估,确保稳定和最优的收敛。通过设计一个具有最小扰动的有效BP Pipeline ,作者可以在显著降低训练开销的同时,保持训练模型的质量。
在这项研究中,作者提出了一种名为哈达玛低秩量化(HLQ)的新型高效训练方案。该方案根据激活和权重梯度的敏感性,有选择地应用哈达玛量化(HQ)[14]和哈达玛低秩近似(HLA)[16],以最大化效益。总的来说,作者的贡献可以总结为以下四点:
- 作者的观察表明,HLA适用于权重梯度优化,但激活梯度路径在使用HLA时受到严重影响。
- 作者还验证了激活梯度对低精度HQ非常鲁棒,但权重梯度对HQ要脆弱得多。
- 基于这一观察,作者设计了一种名为HLQ的新思想,它选择性地应用HQ和HLA,以确保稳定和高效的训练。
- 作者在自定义的CUDA Kernel 上实现HLQ,并在真实的GPU上实现这些好处。
根据作者的广泛分析,HLQ在保持复杂数据集上训练模型准确性的同时,在训练期间提供了好处,实现了高达2.5倍的性能提升和78.59%的内存占用降低。
2 Related Work
近年来,在人工智能领域,尤其是在计算机视觉领域,已经取得了显著的进展。提出了各种模型和算法,并在物体检测、图像分类和语义分割等广泛的应用领域中展示了卓越的性能。本节将对这些领域中的相关研究工作进行简要概述。
Quantization for Training Optimization
量化是迄今为止最成功的优化方法之一,许多研究探讨了它在高效训练中的潜力。代表性的方法是将量化应用于前向传播。在[15]中,作者们试图通过引入具有自定义FP4数据格式的对数量化器来解决梯度长尾问题。尽管他们成功实现了高精度,但由于采用了自定义表示,其方法难以加速。在[14]中,作者们将HQ应用于前向传播,并对梯度应用结构化剪枝以实现高效训练,在语言任务上展示了有希望的结果。此外,诸如FP8训练[17; 18]和仅整数训练[19]等替代研究也在积极研究之中,旨在共同替换前向和反向传播的所有数值表示。与这些先前研究不同,作者专注于优化反向传播,同时使用原始前向传播以保持训练质量。
Low-rank Approximation for Training Optimization
除了量化,还有其他方法专注于通过减少张量的大小来降低训练成本。一个突出的例子是LoRA [8],这是一种用于LLM的轻量级微调技术。LoRA在预训练的原始权重旁边添加低秩分解的权重,并且只训练新增的权重,从而显著降低了训练成本。也有研究通过将量化应用于预训练权重来追求额外的效率[20; 21]。然而,这些研究主要关注推理效率,在训练过程中的成本降低有限。LBP-WHT [16]首次通过在反向传播中整合HLA来优化训练过程。通过在计算激活和权重梯度的路径上沿着序列长度或批量维度减少秩,它显著降低了反向传播的成本,这通常是前向传播的两倍。尽管它比LoRA更准确,并且在训练性能上更高,但与全秩训练相比,它仍然存在相当大的准确度损失,限制了其适用性。作者的分析揭示激活梯度对低秩近似非常敏感,基于这一发现,作者改进了优化流程,在提高训练网络的品质的同时实现了更高的效率。
3 Preliminary
在介绍HLQ之前,作者解释所使用的符号并提供相关的背景知识。
Backpropagation of Linear Layer
由于作者处理的是多维张量,作者将使用统一的维度表示法以帮助理解。作者用表示输入通道,表示输出通道,表示批量维度,表示空间宽度,表示空间高度,表示序列长度。为了简洁起见,作者主要基于优化线性层的反向传播来解释作者的想法,这在基于 Transformer 的结构中占用了大部分的计算和内存空间。然而,请注意,通过将空间维度视为序列长度或用替换,卷积层也可以使用相同的技巧进行优化。
在前向传播中,当给定一个输入和一个权重时,输出是通过矩阵乘法产生的。在反向传播中,当来自后续层的输出梯度传播时,作者可以通过链式法则计算激活的梯度和权重,如下所示:
其中和分别是和的 Reshape 张量。由于每次传递都需要与前向操作相同的计算量,因此优化两者是可取的。
Hadamard Transform
哈达玛矩阵[22]是一个正交矩阵,其特点是矩阵为方形,行和列是正交的单位向量。此外,哈达玛矩阵的元素要么是,要么是,这使得通过加法或减法操作简化了矩阵乘法。
哈达玛变换(HT)是一个线性映射函数,它使用一个特殊的哈达玛矩阵,即沃尔什-哈达玛矩阵,这可以看作是傅里叶变换的推广版本。对于维度的沃尔什-哈达玛矩阵定义如下:
其中表示克罗内克积。当一个向量给定后,可以通过的HT映射到频域,这可以通过快速沃尔什-哈达玛变换(FWHT)[23]仅用加法/减法操作来完成,其中。
在实际应用中,通常使用一种块对角变换,也称为n阶2D HT[14]。这里,块对角矩阵是,其中是的倍数。块对角变换可以看作是一种局部变换,其中数据的维边被 Reshape 为,并在的一侧独立应用HT。这种变换因在真实GPU上的效率而受到青睐,作者也采用了这种方法。
最近,HT因其能够在几乎不增加额外计算成本的情况下补偿优化技术引起的质量损失的能力而受到广泛关注,这种好处适用于量化和低秩近似。在后续章节中,作者将深入分析HQ和HLA在反向传播中的优点和缺点,然后根据这些观察详细解释作者的方法。
4 Analysis on Hadamard Low-rank Approximation for Backpropagation
低秩反向传播通过沃尔什-哈达玛变换(LBP-WHT)[16]是一项前沿研究,它将硬件高效线性代数(HLA)应用于反向传播,旨在通过降低更新成本来替代LoRA[8],以实现对ViT模型的参数高效微调。本研究展示了HLA的潜力,但也揭示了其局限性:在微调期间准确度略有下降,从随机初始化开始训练时准确度显著下降。在本节中,作者将广泛分析LBP-WHT,以展示HLA在反向传播中的局限性。
图1(b)可视化了LBP-WHT的 Pipeline 。该 Pipeline 使用HLA将输出梯度的维度和输入激活投影到一个低秩r<<lb。设降低后的输出梯度和输入激活分别为hat{g}_{y}inmathbb{r}^{rtimeshat{o}}和hat{x}inmathbb{r}^{rtimes i}。相应的权重hat{g}_{w}inmathbb{r}^{otimes="" i}hat{g}_{x}inmathbb{r}^{rtimes="" i}
由于与目标权重具有相同的维度,梯度可以无缝地整合到权重更新中。然而,由于与的形状不匹配,需要应用逆投影函数来恢复原始的维度大小。
他们观察到,由于HT是一种广义的傅立叶变换,选择一个合适的较低数量的变换基,可以让精心挑选的频率分量创建一个代表性的低秩表示。这一特性有助于在显著降低BP成本的同时维持微调质量,其中原始计算需要浮点运算,而修改后的方法仅需要浮点运算。
Limitation of LBP-WHT
根据他们的观察,LBP-WHT在计算成本和ViT的微调质量方面均优于LoRA。然而,它们的微调质量不如全秩训练,并且由于准确度大幅下降,它们不适用于从零开始训练。
为了详细说明它们限制的来源,作者通过在从零开始训练ResNet-50以应对CIFAR-100时,有选择地将LBP-WHT应用于和来进行额外的实验。在作者的设置中,采用传统BP的模型的top-1准确度为76.46%。当作者对应用HLA时,模型的准确度为76.29%,仅比原始BP低0.17%。然而,当作者对应用HLA时,top-1准确度下降到72.01%,表明准确度下降了4.45%。
与不同,路径对低秩近似非常敏感。看来,空间(以及批量上的)差异信息对于保持的训练质量至关重要。然而,对的LBP-WHT通过低秩投影忽略了空间分辨率,这种信息丢失在BP过程中传播到前面的层,导致准确度显著下降。相比之下,在更新过程中自然地在空间和批量维度上进行平均。因此,在这些维度上降低秩似乎造成的损害可以忽略不计。为了最大化使用LBP-WHT的更新质量,避免对应用低秩近似至关重要。
5 Alternative Optimization Technique: Hadamard Quantization
在第4.1节中,作者证明了LBP-WHT在优化 路径上存在局限性。因此,有必要为 寻找替代的优化技术。通过广泛的评估,作者确定HQ是一个有前景的候选者。在本节中,作者首先解释如何将HQ应用于BP,并评估其对 和 的敏感性。
最近的研究表明,HT显著减少了量化误差。例如,在从任意向量 和 生成输出 时,可以修改为 ,因为Hadamard矩阵是正交的。在这个方程中,作者首先将向量映射到频域空间,然后通过频域空间的内积产生输出,这在使用满秩Walsh-Hadamard矩阵时保持一致。然而,当联合应用量化时,出现了一个令人惊讶的趋势: 的输出误差低于 的输出,其中 表示量化算子。由于这个特性,许多先前的工作提出了使用HQ优化推理。尽管这些方法显示了有希望的结果,但据作者所知,尚未探索HQ在BP中的好处。在以下章节中,作者为BP设计了HQ的流水线。
Analysis on Hadamard Quantization for Backpropagation
为了将HQ应用于反向传播(BP),作者在方程1中引入了HT。在路径中,LBP-WHT中的HT可以直接使用,而不作修改,调整的计算为。注意,当足够大时,作者对维度应用变换,或者改为对批量维度应用。然而,对于,作者针对维度应用变换,以在内积过程中抵消Hadamard矩阵。因此,具有HQ的激活的计算方式为。与原生量化相比,后者为、,HQ显示出更低的量化误差,如图2所示。在频域中映射的值遵循没有异常值的平滑钟形曲线,允许细致且误差较低的量化。
为了验证HQ对BP的好处,作者进行了一项消融研究,分析由(Hadamard)量化在激活和权重的反向传播中引起的质量退化。结果如表1所示。当将4位随机最小最大量化应用于或时,观察到明显的准确度下降。然而,当应用Hadamard量化时,量化误差显著减少,与简单量化相比,训练模型的质量有了明显提升。注意,在Hadamard量化中,在变换后使用了相同的量化算子。尽管变换引入了映射开销,但它通过减少量化误差提供了很大的好处。
然而,一个重要的观察是,权重梯度路径的损害是不可恢复的,即使使用Hadamard量化也是如此。在激活的情况下,通过批量维度平均多个梯度,使得低精度误差可以得到分摊。然而,对于权重,它们的梯度直接累积以更新权重,因此精度不足可能导致收敛轨迹偏离并引发不稳定,从而引起质量显著下降。因此,广泛的量化不适合权重优化。
6 HLQ: Hadamard Low-rank Quantization
在第4.1节和第5.1节中,作者的观察表明,能够承受HLA但对HQ非常敏感。相反,对广泛的HQ具有鲁棒性,但受到HLA的严重影响。因此,作者必须有选择地应用优化技术,考虑到BP中每个计算路径的敏感性。
在本研究中,作者设计了一种针对线性(或卷积)层的BP新型优化流程,称为Hadamard低秩量化(HLQ)。图1(c)可视化了HLQ流程的概览。在HLQ中,作者对应用HLA和int8加速。尽管对量化敏感,但Hadamard变换消除了梯度中的异常值,使得通过int8算术加速时质量损失可以忽略不计。此外,由于低秩投影本身通过FWHT诱导的成本可以忽略不计,但显著减少了FLOPs,因此预计会有显著的性能提升。相反,作者对应用int4 HQ,不进行低秩近似。HLQ保持了路径的全秩和批处理信息,同时通过int4算术提供了实质性的加速,因为先进的NVIDIA GPU支持在TensorCore上进行int4矩阵乘法,比int8操作快达3倍[24]。通过利用每种方法的优势,作者在质量退化可以忽略不计的情况下实现了BP成本的最大减少。正如实验部分所证明的,作者的方法在提供高达2.5倍的计算速度和78.50%的更低内存占用的情况下,与传统的训练流程取得了相当的准确度。
Implementation Details
到目前为止,作者已经解释了HLQ的理论背景。然而,为了在实际中实现HLQ的好处并最大化其优势,作者应用了各种额外的考虑。作者将解释这些详细的想法以帮助读者理解。
首先,像现有研究[25; 16]一样,作者利用了块对角哈达玛变换(HT)。使用矩阵作为基本构建块,作者构建了一个16x16的哈达玛矩阵,然后对的或维度以及的维度应用HT。对于,需要考虑低秩近似。遵循LBP-WHT的基选择方法,作者从的16个通道中选择8个基,使得维度减少到一半。
对于量化,需要无偏量化,因为如果使用有偏量化,训练可能会面临明显的质量下降[15]。众所周知,随机舍入是一个无偏估计器[26],所以HLQ也使用了最小-最大随机量化。然而,为了减少生成随机数的开销,作者使用了一个伪随机量化器[19],利用浮点数据的低11位作为伪随机数来确定是否舍入浮点数。
在HLQ中,的计算通过六个阶段进行:1. 通过在维度上的HLA投射到低秩频域空间。2. 投射的被量化为int8精度。3. 通过在维度上的HLA投射到低秩频域空间。4. 投射的被量化为int8。5. 执行int8矩阵乘法。6. 将输出反量化为fp32。作者利用基于CUTLASS TensorCore的GEMM核来加速int8。此外,FWH变换、量化和反量化阶段被实现在共享内存上执行,以最大化计算的吞吐量。
此外,为了在训练期间最小化内存占用,作者在前向传播期间应用阶段1和2,并将中间特征图存储为int4表示。这种简单的技术将激活的内存占用减少到(fp32 int4),由于在训练期间激活占据了大部分总体内存空间,这种方法在减少内存使用方面非常有效。作者称这种技术为反向传播的激活压缩(ACBP),并且默认应用它。
同样,的计算也通过六个阶段进行:1. 通过在维度上的FWH投射到频域空间。2. 投射的被量化为int4精度。3. 通过在维度上的FWH投射到频域空间。4. 投射的被量化为int4精度。5. 执行int4矩阵乘法。6. 将输出反量化为fp32。作者也使用了基于CUTLASS TensorCore的GEMM核和基于共享内存的实现。
7 Experiments
为了验证所提出方案的优势,作者针对两种情景进行了广泛的实验:从零开始模型训练和针对迁移学习的微调。
在从零开始训练的情况下,作者选取了ResNet-18、ResNet-34和ResNet-50作为代表性的CNN网络,以及EfficientFormer-L1和L3作为代表性的ViT网络。这些网络在CIFAR-10、CIFAR-100和ImageNet-100数据集上进行训练。对于微调的情况,作者将从ImageNet数据集预训练的EfficientNetV2-s、EfficientNetV2-m、EfficientFormer-L1和L7模型迁移到CIFAR-10和CIFAR-100数据集。
为了比较在从零开始训练时HLQ的优势,作者准备了三个 Baseline :没有Hadamard变换的朴素int4量化,依赖于HLA的LBP-WHT [16],以及LUQ [15],它是目前完全量化训练的最先进方法。对于微调,作者对CNN使用了相同的 Baseline ,但对于ViT模型,作者使用了LoRA [8]和LBP-WHT。
作者的实验使用PyTorch 2.0实现,并使用自定义的CUDA Kernel ,在配备8个RTX 3090 GPU的系统上进行。对于完全训练,所有模型都训练了200个周期,并以批处理大小128进行更新。CNN模型使用带有动量的SGD进行训练。学习率最初设置为0.1,并在60、120和160周期时减少到1/10。对于ViT模型,它们使用AdamW优化器[27]进行训练,并采用余弦退火调度器[28]。在完全训练期间,所有量化操作符在前25个周期内使用整数,包括 Baseline ,以确保训练的稳定开始。在初始阶段之后,精度调整到目标位宽,并继续训练。对于微调,模型使用AdamW优化器以0.001的学习率更新50个周期。与完全训练中的ViT情况类似,作者采用了余弦退火调度器。
Comparison to the Trained Model Quality with Optimization
表2的上半部分在完全训练环境下将HLQ与其他 Baseline 方法进行了比较。从表中可以看出,int4和LBP-WHT在某些性能上有所下降。然而,HLQ显示出最小的质量退化。例如,在CIFAR-100上的ResNet-34实验中,LBP-WHT的准确度下降了1.36%,而HLQ仅下降了0.4%。同样,在CIFAR-100上的EfficientFormer-L3实验中,LUQ和LBP-WHT分别显示出1.07%和显著的14.22%下降,而HLQ只显示出0.32%的损失。
表的下半部分也突显了HLQ在微调方面的优势。根据表格,在CIFAR-100上的EfficientNetV2-s上,LUQ无法训练,而LBP-WHT显示出0.26%的准确度损失,而HLQ实际上比FP表现得更好,高出0.26%。这种趋势在微调ViT模型时尤其明显。对于CIFAR-100上的EfficientFormer-L1,HLQ大幅优于LoRA和LBP-WHT。此外,值得一提的是,在传统梯度量化中处于领先地位的LUQ模型在一些模型中显示出相似的质量,但随着模型深度的增加,训练变得极不稳定,常常导致训练失败。与现有方法相比,HLQ不仅提供了最高的质量,还提供了最大的稳定性。
为了更全面地分析HQ的影响以及HLQ的好处,作者可视化了训练后模型的损失景观[29],如图3所示。与图(a)相比,图(b)展现出更平滑的表面和更低的值,这解释了HQ对BP优化的好处。此外,在这些图中,图(c)展示了最低的损失表面,可视化了HLA对于路径的好处,而不是应用int4量化。
Computation Cost Reduction Analysis
表4:在具有不同层尺寸的实际GPU上测量的延迟分析结果。表中数字表示延迟(s)。
与vanilla BP路径相比,额外的转换、 Reshape 以及量化/反量化过程为HLQ引入了一些开销。然而,通过利用低精度算术,作者可以实现实际性能的提升。在本节中,作者提供了三个表格来详细解释作者方法在计算上的优势。与vanilla BP相比,HLQ增加的开销可以忽略不计,如表3(左)所示,特别是当相对于其他尺寸足够小的时候。在作者的工作中,作者使用,使得此条件成立。例如,在EfficientFormer-L1的倒数第二层中,vanilla BP需要137.3 MFlops,而作者的方法只需要11.5 MFlops。通过这7%的开销,作者可以利用高效的低精度算术。
虽然表3(左)展示了额外的开销,但包括整数算术在内的整体成本尚未评估。为了比较端到端的计算成本,作者使用位操作(BoPS)[30; 31]作为衡量浮点数和整数操作计算成本的指标,评估了各种模型的训练成本。表3(右)展示了结果,与vanilla BP相比,HLQ只占不到9%的BOPS,突显了所提出算法的效率。
除了数值估计之外,作者还进行了额外的实验,以估计在实际GPU上的实际性能提升。为了更实际的观察,作者实现了一个专门的 Kernel 并在实际GPU上分析了延迟。根据分析的数据,与vanilla路径相比,作者的方法在实际GPU上可以实现高达2.5倍的加速。由于矩阵乘法占据了执行周期的大部分时间,通过低精度算术加速它提供了满意的改进。
Memory Reduction Analysis
HLQ的另一个重要优点是其高内存效率。通过HQ和HLA压缩数据表示,作者显著减少了内存占用。与LBP-WHT相比,当作者不使用ACBP而应用HLQ时,内存消耗是可比较的。然而,ACBP的简单想法将中间激活的内存空间减少到1/8(从fp32减少到int4),显著降低了内存使用。表5展示了HLQ实现的内存减少。与fp32相比,HLQ将CNN模型的内存使用减少了最多78.5%,对于ViT模型,最多减少了66%。与LBP-WHT相比,HLQ使得仅使用59.2%或更少的内存进行训练,相比原始BP(或者比LBP-WHT最多降低75.5%的内存使用),显示了其优越性。
Limitation
尽管作者的研究有效地展示了HLQ在计算机视觉模型上的优势,但作者没有实验性地验证其在LLMs上的有效性。然而,作者的框架表明HLQ可能适用于LLMs。因此,作者打算研究将HLQ扩展到LLMs的可能性。
8 Conclusion
这项工作解决了大型多模态模型在理解长视频时所面临的挑战。作者通过在文本上扩展语言模型,并将这一扩展模型与视觉输入对齐,显著提高了LMMs处理长视频的能力,这得益于长上下文传递现象。
作者提出的模型LongVA在输入帧数更多的情况下表现出更优的性能,并在Video-MME数据集上取得了最先进的结果。
此外,作者还引入了一个综合基准V-NIAH,以有效地衡量视频LMMs的视觉上下文长度。
作者希望这项工作能够启发长视频LMMs和多模态代理领域的进一步研究。
参考
[1].HLQ: Fast and Efficient Backpropagation.