深入探索低比特量化:FP4 训练与推理技术的现状及展望
前言
近年来,深度学习模型,特别是大型语言模型(LLM)的规模呈现爆炸式增长。动辄数十亿甚至上万亿参数的模型在带来强大能力的同时,也给计算资源带来了巨大的挑战:显存占用高、计算量大、能耗惊人。为了应对这些挑战,模型量化技术应运而生,旨在通过降低模型参数和计算过程中的数值精度,来压缩模型大小、减少内存带宽需求、加速计算并降低功耗。
在众多量化技术中,从 32 位浮点(FP32)到 16 位浮点(FP16/BF16),再到 8 位整数(INT8)和 8 位浮点(FP8),研究人员不断探索着精度与效率的最佳平衡点。而现在,一个更为激进的量化前沿——4 位浮点(FP4)——正逐渐进入人们的视野。本文将全面梳理低比特量化技术,特别是 FP4 在训练和推理方面的现状、挑战与未来展望,并首先解释 INT8、INT4、FP8 等关键概念,以便读者更好地理解 FP4 的背景和意义。
一、量化基石:理解 INT8、INT4 与 FP8
在深入 FP4 之前,我们先快速回顾一下当前较为常见的低比特量化格式:
-
INT8 (8 位整数)
- 是什么: 使用 8 个比特来表示整数。通常有一个符号位,剩下的 7 位表示数值。为了表示原始 FP32 的数值范围,通常需要配合一个缩放因子(Scale Factor)和一个零点(Zero Point)。其公式可以简化为:
FP32_value ≈ Scale * (INT8_value - Zero_Point)
。 - 优点:
- 计算高效: 整数运算在大多数硬件(CPU、GPU、TPU、NPU)上都非常快,且能耗较低。
- 硬件支持广泛: 许多现有硬件都对 INT8 运算提供了原生加速支持。
- 压缩效果显著: 模型大小压缩约 4 倍(相比 FP32)。
- 缺点:
- 动态范围有限: 难以精确表示数值范围非常大或非常小的浮点数。
- 精度损失: 量化过程是有损的,可能导致模型精度下降,尤其是在量化敏感的模型或任务上。需要精心的校准(Calibration)或量化感知训练(Quantization-Aware Training, QAT)来弥补。
- 应用: 主要用于模型推理加速,尤其是在资源受限的边缘设备和追求高吞吐量的云端推理场景。
- 是什么: 使用 8 个比特来表示整数。通常有一个符号位,剩下的 7 位表示数值。为了表示原始 FP32 的数值范围,通常需要配合一个缩放因子(Scale Factor)和一个零点(Zero Point)。其公式可以简化为:
-
INT4 (4 位整数)
- 是什么: 使用 4 个比特表示整数,通常也需要配合缩放因子和零点。
- 优点:
- 极致压缩: 模型大小压缩约 8 倍(相比 FP32)。
- 潜