INT8 vs FP8:低比特量化下谁

论文:INT v.s. FP: A Comprehensive Study of Fine-Grained Low-bit Quantization Formats

https://zhuanlan.zhihu.com/p/1998468976825619938

最近大家都在关注 NVIDIA Blackwell 架构对 FP4/FP8 的支持,但这篇论文通过极其严谨的理论推导和实验告诉我们:在细粒度量化下,INT 格式可能比 FP 更好,尤其是 INT8。


1. 核心观点

当前 AI 硬件趋势(如 NVIDIA Blackwell)正大力转向低精度的浮点格式(FP8, FP4),理由是 FP 的高动态范围能更好地处理 LLM 中的 Activation Outliers。

然而,这篇论文指出了一个盲点:当我们将量化粒度细化到 Block 级别(例如 Microscaling 格式,Block size=32)时,局部的数据分布其实不再需要 FP 那么大的动态范围。

主要结论:

  1. Crossover Point 理论:FP 在粗粒度(Per-tensor/Per-channel)下确实更好,但随着 Block size 变小,数据的 Crest Factor降低,INT 格式的均匀精度优势开始显现。
  2. MXINT8 > MXFP8:在标准的 Microscaling 格式下(Block size=32),MXINT8 在算法精度和硬件效率上都全面优于 MXFP8。
  3. 4-bit 的反转:通常 4-bit 下 FP 精度更高,但如果配合 Hadamard Rotation 来抑制离群点,NVINT4(NVIDIA 的 INT4 变体)可以击败 NVFP4。
  4. Symmetric Clipping:为了解决 INT 量化在训练时的梯度偏差问题,论文提出了对称截断法,实现了几乎无损的 MXINT8 训练。

2. 理论框架:为什么 INT 有机会翻盘?

论文并没有只跑实验,而是建立了一个基于 QSNR (Quantization Signal-to-Noise Ratio) 的理论模型来对比 INT 和 FP。

2.1 关键指标:Crest Factor (峰值因子 )

比较的核心在于数据的分布特性。定义 Block 内的 RMS 为 ,最大绝对值为 ,则峰值因子为:

 越大,说明数据离群点越严重,动态范围需求越大。

2.2 INT 的 QSNR 模型

对于 -bit 的 INT 量化,QSNR 近似为:

解读:INT 的精度随着  的增加而线性下降。因为 INT 是均匀量化,为了覆盖最大的 outlier,必须拉大 step size,导致整个范围内的量化噪声变大。

2.3 FP 的 QSNR 模型

FP 的情况比较复杂,分为 Normal(规约数)和 Subnormal(非规约数)区域。对于 E4M3 这种 scale 的情况,QSNR 近似为:

解读:FP 的精度主要受 Mantissa(尾数)位数限制。它对  不那么敏感,因为指数位(Exponent)会自动适应数值的大小。

2.4 理论对决 (The Crossover)

论文画出了不同 值下的 QSNR 曲线。

Figure 3: 不同 Crest Factor 下 INT 和 FP 的理论 QSNR 对比

图注:横轴是 Crest Factor ,纵轴是 QSNR。可以看到随着 变小(即 Block size 变小,或者经过处理消除了 outliers),INT 的曲线(实线)会超过 FP 的曲线(虚线)。

  • Block size 的影响:当 Block size 只有 32 或 16 时,局部的 通常很小(数据比较平滑)。
  • 结论
    • MXINT8 vs MXFP8:交叉点在 。实测数据的  远小于这个值,所以 MXINT8 完胜。
    • 4-bit 格式:交叉点  很低(约 2.0~2.4),通常 FP 占优。但如果能把  压得更低,INT 也有机会。

3. 实战分析:推理与 4-bit 的逆袭

3.1 8-bit 的情况 (MXINT8 vs MXFP8)

在 Block size = 32 的设置下,MXFP8(E4M3)把宝贵的 bit 浪费在了指数上以换取巨大的动态范围,但小 Block 内根本不需要这么大的范围。相比之下,MXINT8 提供了更高的有效精度。

  • 结果:在 Llama-3, Qwen-3 等多个模型上,MXINT8 的 KL 散度(越低越好)显著优于 MXFP8。

3.2 4-bit 的情况与 Hadamard Rotation

在 4-bit 下,直接对比的话,NVFP4 通常优于 NVINT4,因为 4-bit INT 的分辨率实在太低了。 但是,论文引入了 Random Hadamard Rotation

  • 原理:通过旋转坐标轴,将 Activation 的 Outliers “摊平” 到所有维度上,从而显著降低 。
  • 效果
    • 旋转后,数据的  降到了 2.39 以下。
    • 根据理论模型,此时 NVINT4 的 QSNR 反超 NVFP4。
    • 实验数据:加了旋转后,NVINT4 在 12 个模型的对比中全部胜出或持平。
Figure 4(b): 施加 Hadamard Rotation 后的实际 QSNR 对比

图注:可以看到在右下角的图中,施加旋转后,NVINT4(红点)的分布主要集中在 NVFP4(蓝点)的上方,意味着信噪比更高。


4. 训练端的挑战:Symmetric Clipping

很多论文只关注推理(Post-Training Quantization, PTQ),但这篇论文还研究了低比特训练。 作者发现直接用标准的 INT8 进行训练,Loss 会降不下去。

4.1 问题:梯度的非对称偏差

标准的 INT8 范围是 。

  • 在反向传播中,梯度通常是零均值的。
  • 由于 INT8 缺少  这个点,导致正向和负向的截断不对称。
  • 这种微小的 Bias 在 LLM 数万步的训练中会累积,导致梯度方向偏移。

4.2 解决方案:强制对称

论文提出 Symmetric Clipping,强制量化范围为 (即 )。 虽然少表示了一个数(-128),但保证了零点的严格对称性。

4.3 训练结果

使用 Symmetric Clipping 后,MXINT8 的训练曲线几乎与 BF16 重合,实现了近乎无损的训练。

Figure 5: Llama-1B 训练 Loss 曲线对比

图注:MXINT8(绿线)和 BF16(蓝线)几乎完全重叠,且 Loss 甚至比 MXFP8 还要稍微低一点点。


5. 硬件开销分析

这部分对于做硬件 Co-design 的同学很重要。即使 MX 格式需要处理共享指数,INT 的算力核心(MAC Unit)依然比 FP 便宜。

  • Area (面积):在相同吞吐量下,MXINT8 单元的面积仅为 MXFP8 的 79%。NVINT4 更是只有 NVFP4 的 38%
  • Energy (能耗):MXINT8 能耗为 MXFP8 的 63%
  • 原因:FP 加法器需要复杂的对齐(Alignment)、标准化(Normalization)和指数减法逻辑,而 INT 加法器非常简单。

6. 个人感受

这篇论文给了我们几个非常实际的启示:

  1. 不要盲目迷信 FP8:虽然 NVIDIA H100/Blackwell 都在推 FP8,但如果你能控制量化粒度(使用 Block-wise quantization),INT8 实际上是更好的选择。它精度更高,且硬件实现更高效。
  2. 4-bit 依然是 FP 的天下:如果你只做简单的 PTQ,FP4 还是更稳。但如果你愿意在预处理阶段加入 Hadamard Rotation,INT4 就能逆袭。这对于端侧部署非常有吸引力,因为端侧 NPU 对 INT 的支持通常好于 FP。
  3. 训练要注意对称性:如果你在尝试低比特训练,务必检查你的 Quantizer 是否是对称截断的,否则 Loss 可能会莫名其妙地无法收敛。

未来方向:论文呼吁未来的 AI 加速器设计应该重新评估对细粒度 INT 格式的支持,而不是一味地堆砌 FP 单元。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注