清华大学提出1-Bit FQT:将全量化训练极限推到极致,训练速度提升5倍!
在深度神经网络的训练过程中,全量化训练(Fully Quantized Training, FQT)通过将激活值、权重和梯度量化到较低的精度,显著加速了训练过程。随着对训练数值精度的不断压缩,一个自然而然的问题浮现出来:全量化训练的极限是什么?即,能够实现的最低位宽是多少?理想情况下,如果能将位宽压缩到1位,训练将可以通过二进制操作实现,这不仅能极大简化硬件设计,还可能在保持训练质量的前提下,实现极致的计算效率。
本文首次尝试将全量化训练的精度推向1位极限。我们提供了基于Adam和SGD的全量化训练的理论分析,并揭示了梯度方差如何影响全量化训练的收敛性。在此基础上,我们引入了激活梯度修剪(Activation Gradient Pruning, AGP)策略,通过修剪不太有信息量的梯度,并提高剩余梯度的数值精度来减少梯度方差。此外,我们还提出了样本通道联合量化(Sample Channel joint Quantization, SCQ)策略,该策略在权重梯度和激活梯度的计算中采用不同的量化策略,以确保方法对低位宽硬件友好。最终,我们展示了如何部署我们的算法,并在多个数据集上对VGGNet-16和ResNet-18进行微调,平均准确率提高了约6%,训练速度提升了最高达5.13倍。
论文基本信息
- 标题: 1-Bit FQT: Pushing the Limit of Fully Quantized Training to 1-bit
- 作者: Chang Gao, Jianfei Chen, Kang Zhao, Jiaqi Wang, Liping Jing
- 机构:
Beijing Jiaotong University
Tsinghua University
地址:https://arxiv.org/pdf/2408.14267
全量化训练(FQT)的概述
全量化训练(Fully Quantized Training,简称FQT)是一种通过将激活值、权重和梯度量化为低精度数值格式来加速深度神经网络训练的技术。这种方法使得在低精度硬件上能够快速实现前向和后向传播,从而提高计算和内存效率。随着研究的深入,FQT的数值精度已经从最初的16位(FP/INT16)逐步降低到8位(FP/INT8),并且目前一些研究已经将精度成功降至4位。
尽管FQT在提高训练速度方面具有潜力,但其挑战在于理论理解的不足,尤其是梯度量化对收敛性的影响,以及梯度的大量化误差可能导致性能急剧下降或甚至发散。目前的研究前沿仍停留在4位FQT,但探索将位宽推向更低极限,即1位FQT,是未来的研究方向。
1-bit FQT的理论分析
在我们的研究中,我们首次尝试将全量化训练的精度推向1位(1-bit FQT)。通过对Adam和SGD两种优化器的理论分析,我们发现梯度方差是影响FQT收敛性的关键因素。具体来说,我们的分析揭示了在低位宽情况下,Adam优化器比SGD更适合于FQT,因为Adam对梯度方差的敏感度较低。
为了应对由梯度量化引起的大量化误差,我们提出了激活梯度修剪(Activation Gradient Pruning,AGP)策略。该策略利用梯度的异质性,通过剪除信息量较少的梯度组,并将节省下来的资源用于提高剩余梯度的数值精度,从而减少梯度方差。此外,我们还提出了样本通道联合量化(Sample Channel joint Quantization,SCQ)策略,该策略在计算权重梯度和激活梯度时采用不同的量化方法,确保两者都能在低位宽计算单元上有效实现。
通过在多个数据集上对VGGNet-16和ResNet-18进行微调,我们的1-bit FQT算法在平均精度上比每个样本量化提高了约6%,并且训练速度提升最高可达5.13倍。这些结果表明,在特定任务中,FQT的精度可以被推向极限1位。
提出的1-bit FQT算法
1-bit FQT算法是在全量化训练(Fully Quantized Training, FQT)的基础上,进一步推动模型训练中的数值精度降至1比特。全量化训练通过将激活值、权重和梯度量化到较低的数值精度,加速了深度神经网络的训练过程。在本研究中,我们首次尝试将FQT的精度推至1比特极限。
1.1 理论分析
我们基于Adam和SGD优化器对FQT进行了理论分析。分析结果表明,梯度的方差是影响FQT收敛性的关键因素。Adam优化器在低比特宽度训练中表现出比SGD更好的稳定性,这是因为Adam对梯度方差的敏感度较低。
1.2 算法组成
1-bit FQT算法包括激活梯度修剪(Activation Gradient Pruning, AGP)和样本通道联合量化(Sample Channel joint Quantization, SCQ)两个主要策略。AGP策略通过剪除信息量较少的梯度组,重新分配资源以提高剩余梯度的数值精度,从而减少梯度方差。SCQ策略则在权重梯度和激活梯度的计算中采用不同的量化方法,确保这些操作能够在低比特宽度的硬件上高效执行。
实验设计与结果
为了验证1-bit FQT算法的有效性,我们在多个数据集上对VGGNet-16和ResNet-18模型进行了微调实验。
2.1 实验设置
我们选择了包括CIFAR-10、CIFAR-100、Flowers和Pets等多个视觉分类数据集。实验中,所有模型首先在ImageNet数据集上进行预训练,然后使用1-bit FQT算法进行微调。
2.2 主要结果
实验结果显示,与传统的每样本量化方法相比,我们的1-bit FQT算法在多个数据集上平均提高了约6%的准确率。特别是在Flowers和Pets数据集上,准确率损失几乎可以忽略不计(小于1%),这表明在某些情况下1-bit FQT是非常有效的。此外,我们的方法在训练速度上最高可达到传统全精度训练的5.13倍加速。
讨论与未来方向
在本研究中,我们首次尝试将全量化训练(FQT)的精度推至1比特。通过理论分析和实验验证,我们发现梯度方差是影响FQT收敛性的关键因素。基于此,我们提出了激活梯度修剪(AGP)策略和样本通道联合量化(SCQ)策略,有效降低了梯度方差,提高了模型的训练效率和精度。
未来的研究方向可以从以下几个方面进行探索:
优化量化策略:虽然我们的AGP和SCQ策略已经取得了一定的成效,但仍有进一步优化的空间。例如,探索更高效的梯度修剪方法或更精细的量化级别调整,以适应更广泛的网络结构和数据集。
扩展到其他网络架构:目前的研究主要集中在卷积神经网络(CNN)上,未来可以将1比特FQT扩展到其他类型的深度学习模型,如循环神经网络(RNN)和Transformer,检验其在不同架构上的普适性和有效性。
从头训练的探索:目前1比特FQT主要应用于迁移学习和微调场景,从头开始训练的场景仍是一个开放的问题。未来的研究可以探索在无预训练模型的情况下,如何有效实施1比特FQT,以及如何处理由此带来的梯度方差问题。
本文转载自 AI论文解读,作者:柏企