量化(Quantization)是一种通过降低神经网络模型中数值的表示精度(如从32位浮点数转换为8位整数),来压缩模型体积、提升计算与推理效率的核心模型优化技术。其核心目标是在尽可能保持模型性能的前提下,实现模型在资源受限环境(如移动设备、边缘计算芯片)中的高效部署。
可以将量化过程想象为将一张高清彩色照片转换为文件体积更小的网络表情包。原始神经网络模型中的权重和激活值通常使用高精度的浮点数(如FP32)存储和计算,这好比照片保留了丰富的色彩和细节。量化则将这些连续的浮点数值,映射到一个有限的、离散的整数集合(如INT8)上,类似于将千万种颜色缩减为256色。这个过程主要包含两个关键步骤:

首先,确定浮点数范围的“缩放因子”和“零点偏移”,建立一个从浮点数到整数的线性映射公式。然后,根据此公式将所有浮点参数转换为低精度整数。在推理时,计算主要在整数域进行,大幅减少了内存带宽需求和计算开销。为了弥补精度损失带来的性能下降,通常会采用“训练后量化”或更精细的“量化感知训练”等技术。

与量化紧密相关的概念包括:剪枝(移除模型中不重要的连接)、知识蒸馏(用大模型指导小模型训练)、神经架构搜索(自动设计高效网络结构)、低秩分解以及 混合精度训练。

若想深入了解量化,建议从谷歌发布的《Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference》论文入手,这是该领域的奠基性工作之一。同时,可以查阅主流深度学习框架(如TensorFlow的TensorFlow Lite、PyTorch的Torch.ao.quantization)的官方文档和教程,通过实践掌握后训练量化与量化感知训练的具体实现。
