10.4 模型量化:用更少的位数表示权重

10.4.1 量化的基本原理

量化(Quantization)将模型权重和/或激活值从高精度(如 FP16)转换为低精度(如 INT8 或 INT4),从而减少模型大小和内存带宽需求。

基本思想是将浮点值映射到一组离散的整数值。例如,INT8 量化将连续的浮点值映射到 256 个离散值($-128$ 到 $127$)。主要的量化方案包括:

训练后量化(Post-Training Quantization,PTQ):在训练完成后直接将权重量化,无需重新训练。代表方法有 GPTQ(基于二阶信息的逐层量化)和 AWQ(Activation-aware Weight Quantization,优先保留激活值较大的权重通道的精度),通过分析权重分布和激活值来最小化量化误差。

量化感知训练(Quantization-Aware Training,QAT):在训练过程中模拟量化误差,让模型学会适应低精度表示。精度更好但计算成本更高。

10.4.2 量化的精度影响

精度
每参数占用
相对于 FP16 的压缩比
精度损失

FP16

2 字节

基准

INT8

1 字节

极小

INT4

0.5 字节

小到中等

INT3/2

<0.5 字节

5-8×

中到大

图 10-1:不同量化精度的对比

10.4.3 实际部署中的量化选择

INT8 量化通常对模型质量几乎无影响,已成为推理部署的标配。INT4 量化(如 GPTQ-4bit)在许多任务上精度损失可控,配合 AWQ 或 GPTQ 可将精度损失控制在可接受范围内,是显存受限场景的优选。

最后更新于