引言
大语言模型的参数规模在过去几年里持续攀升,一个百亿参数的模型如果以32位浮点数存储,仅权重文件就可能占用数十GB空间,普通消费级显卡根本无法承载。
模型量化(Quantization)正是解决这一矛盾的核心技术之一,它通过降低数值精度来压缩模型体积、加快推理速度,同时尽量保留模型的原始能力。本文尝试从原理到实践,梳理量化技术的基本脉络。
一、量化的基本原理
量化的核心思路是把模型中原本用高精度浮点数(如FP32、FP16)表示的权重和激活值,映射到更低位宽的整数或浮点格式(如INT8、INT4)。
映射过程通常涉及两个关键参数:缩放因子(scale)和零点(zero point)。以线性量化为例,浮点值x与量化整数q之间的关系大致为:
q = round(x / scale) + zero_point
反量化时再通过逆运算还原出近似的浮点值。由于低位宽整数的表示范围远小于浮点数,量化过程必然伴随信息损失,如何在压缩率和精度损失之间取得平衡,是量化算法设计的核心问题。
二、几种常见的量化策略
**训练后量化(Post-Training Quantization, PTQ)** 不需要重新训练模型,只需用少量校准数据统计权重和激活值的分布范围,再进行映射。
这种方式实现简单、成本低,适合对精度要求不算极端的场景,但在低位宽(如4位以下)时容易出现明显的精度下降。
**量化感知训练(Quantization-Aware Training, QAT)** 在训练过程中就模拟量化误差,让模型学习适应低精度表示带来的扰动。
这种方法通常能取得更好的精度保留效果,但需要额外的训练成本和标注数据。
**分组量化与混合精度量化** 则是在同一模型内对不同层甚至不同通道采用不同的量化粒度和位宽,对敏感层保留较高精度,对不敏感层大胆压缩,从而在整体压缩率和精度之间做更精细的取舍。
三、量化带来的实际收益与局限
从工程角度看,量化的收益主要体现在三方面:显存占用大幅下降,使得原本需要多卡部署的模型可以在单卡甚至消费级显卡上运行;
推理速度提升,尤其在支持低精度计算的硬件上,整数运算的吞吐量通常高于浮点运算;
部署成本随之降低,为边缘设备和端侧推理打开了空间。
但量化并非没有代价。极低位宽(如2位)通常会导致模型在复杂推理任务上的表现明显下滑;
某些对数值敏感的层(如归一化层)如果处理不当,容易成为精度损失的主要来源;
此外,不同硬件平台对量化格式的支持程度也参差不齐,落地时往往需要针对具体推理框架做适配和调优。
结语
量化技术不是万能药,但确实是当前让大模型走出实验室、走向实际部署的关键一环。
理解其背后的数值原理和取舍逻辑,比单纯调用某个量化工具库更重要——只有清楚每一步压缩带来的代价,才能在具体业务场景中做出合理的精度与效率平衡。