量化神经网络实现低精度累计并保证溢出避免
我们提出了一种适用于训练量化神经网络(QNNs)以避免在推断过程中使用低精度累加器时的溢出问题的新颖的权重量化方法 ——accumulator-aware quantization(A2Q)。A2Q 引入了一种受权重归一化启发的独特公式,根据我们导出的累加器比特宽度限制来约束模型权重的 L1 范数。因此,在训练低精度累加器的 QNNs 时,A2Q 还本质上促进了非结构化权重稀疏性以保证溢出避免。我们将该方法应用于基于深度学习的计算机视觉任务,以表明 A2Q 可以在保持与浮点基准相竞争的模型准确性的同时,训练适用于低精度累加器的 QNNs。在我们的评估中,我们考虑了 A2Q 对通用平台和可编程硬件的影响。然而,我们主要针对在 FPGAs 上部署模型,因为它们可以被编程以充分利用定制累加器比特宽度。我们的实验表明,累加器比特宽度显著影响基于 FPGA 的加速器的资源效率。在我们的基准测试中,A2Q 相比于 32 位累加器对应物平均提供高达 2.3 倍的资源利用率降低,同时保持 99.2% 的浮点模型准确性。
Aug, 2023
通过限制权重和激活函数的精度,量化技术通常降低神经网络推理成本。最近的研究表明,降低累加器的精度可以进一步提高硬件效率,但存在数值溢出的风险,这会导致算术错误并降低模型的准确性。为了避免数值溢出并保持准确性,最新的工作提出了一种称为累加器感知量化(A2Q)的量化感知训练方法,在训练期间约束模型权重以在推理过程中安全地使用目标累加器位宽。尽管这显示出了潜力,但我们证明 A2Q 依赖于过于严格的约束和亚优化的权重初始化策略,每个都引入了多余的量化误差。为了解决这些缺点,我们引入了两个改进:(1)一种改进的上界,缓解了累加器约束而不损害溢出避免;(2)一种从预训练的浮点检查点初始化量化权重的新策略。我们将这些贡献与权重归一化结合起来,引入 A2Q+。我们通过实验证实,A2Q + 显著改善了累加器位宽和模型准确性之间的权衡,并表征了累加器约束引起的新的权衡。
Jan, 2024
我们提出了一种简单的方法来训练和微调高端深度神经网络,首次允许使用更廉价的 12 位累加器,而不会出现显著的准确度降低。最后,我们证明,通过进一步降低累加器的精度,并使用细粒度梯度逼近可以提高深度神经网络的准确性。
Jan, 2024
本研究介绍了一种训练低精度神经网络的方法,该方法使用二进制操作代替计算,达到降低内存大小、减少电力消耗的目的。经过 MNIST、CIFAR-10、SVHN、ImageNet 和 Penn Treebank 数据集的测试,结果表明 1 位权重和 2 位激活的量化版本的 AlexNet 能够达到 51% 的准确率,训练过程中也能使用仅有的二进制操作实现损失函数的计算,并在损失部分的代码上进行了优化,使得 QNN 的运行速度能比未优化的 GPU 加速速度快七倍,并且没有影响分类准确性。
Sep, 2016
本文概述了卷积神经网络量化技术,研究发现通过对权重和激活进行逐通道和逐层量化,即使在不支持 8 位运算的情况下,将权重量化为 8 位可以将模型大小降低 4 倍,并且分类的准确率可以达到浮点型卷积神经网络的 98%。作者介绍了针对 CPU 和 DSP 的量化网络的等待时间基准测试,并观察到相比于 CPU 上的浮点运算,量化实现的速度提高了 2 倍至 3 倍。作者提出了一种通过 TensorFlow 和 TensorFlowLite 进行卷积网络量化的工具,并回顾了用于量化训练的最佳实践。作者建议,对于硬件加速和内核优化,应将逐通道量化的权重和逐层量化的激活作为首选量化方案,并提议未来处理器和硬件加速器用于优化推断时支持 4、8 和 16 位的精度。
Jun, 2018
本文研究了深度神经网络在 FPGA 上的优化设计,提出使用多种精度量化来减少计算和数据传输成本,并成功实现了针对混合精度 CNN 的高效硬件加速器,能够达到高精度和高性能的权衡。
Aug, 2022
提出了一种新的价值感知量化方法,通过将大多数数据应用极低的精度并单独处理一小部分高精度数据以减少总量化误差。该方法可显著减少 ResNet-152 和 Inception-v3 的激活器内存成本,并能实现 1%以下的 top-1 精度下降。
Apr, 2018
利用低精度的神经网络进行量化,可以通过减少内存消耗和优化位运算实现更高的效率。本文提出低精度神经网络的第三个优点是在一些对抗攻击中有更好的鲁棒性,最坏情况下的表现也可以与高精度模型媲美。作者着重于量化权重和激活到 +-1 的非缩放二进制神经网络,在黑盒和白盒实验中探究其应对逐步攻击的能力。该方法可以在不人为掩盖梯度的情况下保证模型的安全性。
Nov, 2017