大模型量化入门:用更低精度换效率
一个大模型动辄几十 GB 权重,全用 16 位浮点(FP16)存放,显存开销直接劝退多数机器。量化(Quantization)是最实用的降本手段之一:用更低的数值精度表示同样的模型,让它在更小、更便宜的硬件上跑起来,且效果损失往往小到难以察觉。
基本思路
量化本质是「重新刻度」。模型里那些浮点数,其实大多集中在一个有限范围内。我们把它线性映射到更少的比特上,比如从 FP16 映射到 8 位整数(INT8)或 4 位整数(INT4):
量化值 = round( 浮点值 / 缩放因子 ) + 零点
浮点值 ≈ (量化值 - 零点) * 缩放因子
推理时模型用整数计算,速度更快、占用更小;需要时再反量化回近似浮点。难点在于怎么选缩放范围,才能把截断误差压到最小。
常见方案
按粒度,有逐张量、逐通道、逐组(group-wise)等,组越细通常越准但越复杂。按时机,分训练后量化(PTQ)与量化感知训练(QAT):PTQ 不用重训,直接对现成模型做,门槛低;QAT 在训练中就模拟量化误差,精度更好但成本高。近年来 4 位权重加 16 位激活的混合方案,在消费级显卡上跑大模型变得常见。
收益与代价
量化的好处直接:显存近似按比特数等比下降,INT4 相比 FP16 可节省约四分之三空间,吞吐与延迟也明显改善。代价主要是精度:过度激进的低位宽会让模型在某些任务上退步,尤其是数值敏感的步骤。实践中常要做小范围校准,挑一个「显存-精度」都舒服的位点,而不是一味求低。
小结
量化通过把权重与激活从高精度浮点映射到低位整数,以极小精度代价换来显存与速度的大幅改善。它分为训练后与量化感知两类,配合合适的粒度与校准,是让大模型在普通硬件上落地的最实用杠杆之一。
参考与延伸阅读
- Jacob et al. Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference(CVPR 2018),量化感知训练的代表作。已核验。
- 各类 4 位/8 位推理实现的细节(校准集、分组大小等)以对应框架与硬件文档为准。待核实。
本文累计阅读 — 次