基本概念

量化格式由精度格式、块格式和校准算法组成。 可用的量化格式的详细列表可以在量化格式中找到。 下面我们提供重要主题的概述:

精度格式

精度格式定义了量化值的位宽。通常,有整数格式(符号位 + 尾数位)和浮点格式(符号位 + 指数位 + 尾数位)。Fp8 Formats for Deep Learning 提供了浮点格式的详细解释。

缩放因子

缩放因子是一个浮点值,用于在量化操作前后分别缩放和反缩放值。缩放因子用于将原始值的范围映射到量化值的范围。缩放因子在同一块中的量化值之间共享。缩放因子在校准过程中计算。

块格式

块格式定义了张量被划分为块以共享缩放因子的方式。 最常见的块格式是每张量量化,其中整个张量被量化为一个具有一个全局缩放因子的单一块。其他块格式包括每通道量化,其中每个通道被单独量化,以及细粒度的每块量化,其中张量沿通道维度被划分为固定大小的块。对于低位量化(例如4位),通常需要每块量化以保持准确性。

权重和激活可能共享不同的精度和块格式。例如,在GPTQ和AWQ中,权重被量化为4位,而激活保持高精度。仅权重量化对于带宽受限的场景有帮助,而权重和激活量化可以减少带宽和计算成本。

校准算法

校准算法计算缩放因子并可能调整权重以最大化量化后的准确性。最简单的校准算法是“最大校准”,其中缩放因子是从张量的全局最大值计算得出的,权重保持不变并四舍五入到最接近的量化值。更高级的校准算法的例子包括 Entropy CalibrationSmoothQuantAWQ

量化感知训练 (QAT)

QAT 可以看作是常规的 PTQ 后跟微调,在此期间,原始的未量化权重会被更新以最小化损失。与常规微调相比,我们必须模拟量化对前向和后向传播的影响。常用的 QAT 技术,如 Straight-Through Estimator (STE) 或带剪裁的 STE,具有固定的缩放因子,并在训练期间调整权重以最小化损失。ModelOpt 实现了带剪裁的 STE 用于 QAT。

更多阅读