[论文解读] QONNX: Representing Arbitrary-Precision Quantized Neural Networks
本文提出了 QONNX,一种基于 ONNX 的新型高级中间表示(IR),用于任意精度量化神经网络。它通过向现有 ONNX 格式扩展后向兼容的基于截断的量化方法,引入了三种新算子——Quant、BipolarQuant 和 Trunc——以实现对均匀量化灵活且平台无关的表示,从而在 QAT 框架与 FPGA 工具链(如 FINN 和 hls4ml)之间实现互操作性,并发布了公开的模型库以支持基准测试与共享。
We present extensions to the Open Neural Network Exchange (ONNX) intermediate representation format to represent arbitrary-precision quantized neural networks. We first introduce support for low precision quantization in existing ONNX-based quantization formats by leveraging integer clipping, resulting in two new backward-compatible variants: the quantized operator format with clipping and quantize-clip-dequantize (QCDQ) format. We then introduce a novel higher-level ONNX format called quantized ONNX (QONNX) that introduces three new operators -- Quant, BipolarQuant, and Trunc -- in order to represent uniform quantization. By keeping the QONNX IR high-level and flexible, we enable targeting a wider variety of platforms. We also present utilities for working with QONNX, as well as examples of its usage in the FINN and hls4ml toolchains. Finally, we introduce the QONNX model zoo to share low-precision quantized neural networks.
研究动机与目标
- 为解决在深度学习框架与硬件工具链之间缺乏标准化、高级别的量化神经网络(QNNs)表示形式的问题。
- 通过整数截断实现后向兼容的子 8 位量化表示,扩展现有格式(如 QDQ 和量化算子),在 ONNX 中支持子 8 位量化。
- 设计一种更高层次、更具表现力的 ONNX 格式——QONNX,通过广播语义抽象化量化细节,支持张量级和通道级量化。
- 实现与现有量化感知训练(QAT)框架(如 Brevitas 和 QKeras)以及 FPGA 编译工具链(如 FINN 和 hls4ml)的无缝集成。
- 建立公开的 QONNX 模型库,以支持在多种数据集和位宽配置下对低精度量化模型进行基准测试与社区共享。
提出的方法
- 通过引入整数截断,扩展现有的 ONNX 量化格式——量化算子格式与 QDQ——以在后向兼容的前提下支持子 8 位量化。
- 提出两种新的低层级格式:带截断的量化算子格式与量化-截断-反量化(QCDQ)格式,用于表示具有有界整数值的低精度量化张量。
- 引入 QONNX,一种具有三种新算子的高级 ONNX 中间表示:Quant(用于均匀量化)、BipolarQuant(用于二值化或双极量化)和 Trunc(用于基于截断的量化)。
- 在 QONNX 中使用广播语义,将量化推广至张量级和通道级设置,提升表达力与可移植性。
- 开发了用于形状推断、常量折叠与转换流水线的软件工具,将 QONNX 模型转换为工具链特定的格式(如 FINN-ONNX)。
- 通过自动转换步骤将 QONNX 转换为 FPGA 编译器(如 FINN 和 hls4ml)原生的 ONNX 语法,实现端到端模型导入。
实验结果
研究问题
- RQ1如何在不破坏现有工具链的前提下,以向后兼容的方式在 ONNX 中表示子 8 位量化神经网络?
- RQ2什么样的高级、抽象 ONNX 表示形式能够灵活表达任意精度的均匀量化,同时支持张量级和通道级量化等多样化量化方案?
- RQ3统一的中间表示(如 QONNX)是否能够实现 QAT 框架(如 Brevitas、QKeras)与 FPGA 编译工具链(如 FINN、hls4ml)之间的无缝互操作?
- RQ4如何建立一个标准化、可扩展的低精度量化模型库,以支持基准测试与社区共享?
- RQ5在低精度推理场景中,不同位宽配置对模型精度与计算成本的影响如何?
主要发现
- QONNX 通过基于 ONNX 的高级、可扩展中间表示,实现了对任意精度位宽(包括子 8 位)量化神经网络的表示。
- QCDQ 格式与带截断的量化算子格式可在现有 ONNX 工具链中实现对低精度量化的后向兼容表示。
- QONNX 模型库包含 7 个基准模型,涵盖 MNIST、CIFAR-10 和 ImageNet 数据集,准确率范围从 71.14%(MobileNet-w4a4)到 96.60%(TFC-w2a2),展示了其在多种数据集上的实用部署能力。
- QONNX 模型库中的模型展现出广泛的计算复杂度,从 59k BOPs(TFC-w1a1)到超过 740 亿 BOPs(MobileNet-w4a4),反映了不同效率与精度之间的权衡。
- 集成流水线成功将 QONNX 模型转换为 FINN-ONNX 格式,实现了使用 FINN 工具链在 FPGA 上的完整编译与部署。
- 所提出的 QONNX 格式在抽象化量化细节的同时保持了表达力,支持更广泛的硬件兼容性,并为 ONNX 社区未来的标准化奠定了基础。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。