一个70亿参数的模型,用FP16存要14GB,压成INT8是7GB,压成INT4只剩3.5GB。同一套权重,换个存储格式,体积直接砍到四分之一。
这就是量化在做的事:把FP16参数映射到更小的整数格式上。FP16每个参数占2字节,INT8占1字节,INT4占0.5字节。参数量没变,每个参数占的格子变小了,推理时搬运数据的内存带宽压力也随之减半或降到四分之一。
但格子变小不是没有代价。朴素量化最怕的是离群权重——极少数极端值会把整个量化网格的范围撑大,绝大多数正常权重被挤进同一个量化区间里,精度损失随之而来,模型准确率明显下滑。
围绕这个问题,出现了两类补偿思路。
- GPTQ(2022):用海森矩阵估计逐层误差,在量化前对权重做补偿,能在4个GPU小时内完成175B模型的INT4压缩,困惑度下降可以忽略。
- AWQ(2023):根据激活模式识别出最重要的前1%权重并加以保护,其余权重自由量化,在边缘设备上最高可实现3倍加速。
量化的应用边界也在移动。DeepSeek-V3(2024)在大规模训练中把FP8混合精度贯穿前向传播、反向传播和优化器操作,显著降低了训练成本。训练量化和推理量化之间的界线,正在变得模糊。
落到实操层面,有几条路径可选:PTQ(训练后量化)与QAT(量化感知训练)之间的取舍,量化与蒸馏、剪枝的组合使用,以及对KV缓存做量化以支撑更长的上下文推理。
用一句话区分这几类压缩手段:蒸馏是换一个更聪明的学生,量化是让同一个模型穿上更合身的衣服——数还是那些数,只是格子变小了。
热门跟贴