选择正确量化方法的最佳实践

量化方法包括三个主要组成部分:

  1. 重量精度格式

  2. 激活精度格式

  3. 校准算法

通常,在小批量推理场景(批量大小 ≤ 4)中,推理往往是“内存受限”的。在内存受限的推理中,吞吐量受到从GPU内存加载权重到GPU缓存的时间的限制 - 即,推理受限于内存带宽。 在这种操作模式下,仅权重量化方法(如INT4 AWQ或INT4-FP8 AWQ)提供了显著的性能改进。

相反,对于大批量推理场景,例如服务场景(批量大小 ≥ 16),内存带宽和计算密度都成为关键因素。因此,建议选择一种既有权重量化和激活量化,又有较低精度计算内核的量化方法。对于批量大小 ≥ 16,量化方法的选择可以是模型特定的。

我们建议优先使用FP8,因为FP8导致的精度损失非常小,并且能提供强大的性能。 如果FP8的性能不能满足您的需求,您可以尝试INT4-FP8 AWQ。 如果您的部署是在Ampere GPU或更早的版本上,我们推荐使用INT4 AWQ或INT8 SQ。

根据具体的使用情况,用户可能对精度下降和校准时间有不同的容忍度。下表总结了选择量化方法时需要考虑的权衡*。

量化方法

性能 小批量

性能 大批量

准确性 下降

详情

FP8

中等

中等

非常低

  • FP8 每张量权重和激活量化,使用最小-最大校准。

  • 将FP16/BF16模型压缩至原始大小的50%。

  • 校准时间:分钟**。

  • 通过TensorRT, TensorRT-LLM部署。支持的GPU:Ada, Hopper及更高版本。

INT8 平滑量化

中等

中等

中等

  • 使用SmoothQuant校准的变体进行8位整数量化。

  • 每通道权重量化,每张量激活量化。

  • 将FP16/BF16模型压缩至原始大小的50%

  • 校准时间:分钟**。

  • 使用TensorRT、TensorRT-LLM进行部署。支持大多数GPU。

INT4 仅权重 AWQ (W4A16)

  • 使用AWQ校准的4位整数分组/分块仅权重量化。

  • 将FP16/BF16模型压缩至原始大小的25%。

  • 校准时间:数十分钟**。

  • 通过TensorRT-LLM部署。支持的GPU:Ampere及更高版本。

INT4-FP8 AWQ (W4A8)

中等

  • 4位整数分组/分块权重量化,FP8每张量激活量化 & AWQ 校准。

  • 将FP16/BF16模型压缩至原始大小的25%。

  • 校准时间:数十分钟**。

  • 通过TensorRT-LLM部署。支持的GPU:Ada、Hopper及更高版本。

* The performance and impact are measured on 10+ popular LLMs. We’ll follow up with more data points.
** Calibration time is subject to the actual model size.
Please see how to apply these quantization methods below: