可训练的固定点量化用于在 FPGA 上加速深度学习

💡 原文中文,约1600字,阅读约需4分钟。
📝

内容提要

本文综述深度神经网络量化研究,涵盖固定点、浮点与混合精度方法。FxP-QNet可动态设计量化级别,压缩内存7至10倍,精度损失低于2%。研究比较了整数量化与低精度浮点,提出FPGA混合方案、GPTQ后训练量化及一次性混合精度搜索,在ImageNet上提升ResNet精度。

🔎

延伸解读

量化精度与硬件资源的权衡

文章指出,整数量化在FPGA上通常是优选方案,但低精度浮点(minifloats)在精度与准确度的权衡中也有其有效性。FPGA的LUT和DSP资源有限,不同行采用不同量化方案可充分利用这些资源。因此,实际部署时需根据模型分布(如高斯或均匀)和硬件特性选择量化策略,而非一味追求低比特。

后训练量化的鲁棒性与混合精度

GPTQ作为一种基于梯度的后训练量化方法,在权重选择、特征增强和校准集方面表现出鲁棒性。文章还提出了基于重要性的混合精度技术,可进一步提升已有GPTQ方法和网络的性能。这意味着在无法重新训练的场景下,后训练量化结合混合精度能有效平衡精度与效率,为可扩展的量化设计提供了新思路。

固定点量化的实际收益与局限

FxP-QNet在ImageNet上实现了7.16至10.36倍的内存压缩,准确率损失不到2%。F8Net则完全由8位固定点乘法构成,降低了内存和能耗。但文章也提到,低精度量化可能带来精度下降,且不同网络和数据集的最佳精度分配需通过实验确定。因此,量化收益虽显著,但需针对具体任务验证,避免过度压缩导致性能不可接受。

❓

Q&A

FxP-QNet 是什么?它有什么主要优势?

FxP-QNet 是一种深度神经网络固定点量化框架,能够根据网络对低精度的需求动态设计不同精度的量化级别。在 ImageNet 基准测试中,它实现了 7.16 倍至 10.36 倍的内存压缩,同时准确率损失不到 2%。

在 FPGA 上部署量化神经网络时,整数量化和低精度浮点量化哪个更常用?

根据文章,通过 FPGA 型号评估结果,整数量化通常是优选选择。研究比较了 3 至 8 位的浮点数和整数量化方案,验证了低精度 minifloats 在精度-准确度权衡中的有效性,但整数量化在 FPGA 上更受青睐。

GPTQ 后训练量化方法有哪些鲁棒性?

GPTQ 是一种基于梯度的后训练量化方法,文章证明了它在选择权重、特征增强、校准集等方面具有一定鲁棒性,并提出了设计更高效、可扩展的 GPTQ 方法的准则,以及一种基于重要性的混合精度技术。

一次性混合精度量化搜索如何提升 ResNet 在 ImageNet 上的准确性?

文章提出了一种一次性的混合精度量化搜索方法,通过整数和低精度浮点模型,在不需要重新训练的情况下提高了 ResNet-18 和 ResNet-50 在 ImageNet 上的准确性,并探索了混合精度浮点搜索和量化与神经架构空间的联合搜索。

F8Net 量化框架有什么特点?

F8Net 是一种完全由固定点 8 位乘法构成的量化框架,可以降低神经网络量化模型与完全精度模型之间的性能差距,并显著降低内存占用和能源消耗。

如何通过量化感知训练将关键词检测模型精度降低至 4 位而不损失准确性?

文章提出了一种新的 FXP 卷积关键词检测模型训练方法,结合了两种量化感知训练技术:压缩权重分布和模型参数的绝对余弦正则化,并针对瞬变变量提出了 QAT 技术。实验表明,可以在不降低准确性的情况下将模型精度降低至 4 位,同时在推断阶段消除了 Q 格式规范化,使用低比特累加器和最大内核 SIMD,降低了 68% 的执行时间。

🏷️

标签

➡️

继续阅读