模型量化是把模型里的参数从高精度数字换成低精度数字,比如从 32 位浮点换成 8 位整数或 8 位浮点,让模型体积变小、占用的显存和内存下降,手机和普通笔记本也能跑起原本装不下的大模型。它不改模型的结构,只改数字的表示精度,是一种用一点精度换速度和体积的近似办法。
量化到底压掉了什么
量化压的主要是权重,也就是模型训练完存下来的参数。训练时常用的 32 位浮点数,每个参数占 4 个字节;换成 8 位整数后只占 1 个字节,体积直接缩到原来的四分之一左右。激活值也可以量化,但更敏感,压得太狠容易先在推理中间步骤里放大误差。常见做法分两种:训练后量化,直接拿训好的模型转格式,省事但精度损失难控;量化感知训练,在训练或微调时就让模型适应低精度,效果更稳,代价是得多训一轮。有些实现还会给特别敏感的层保留高精度,只压不敏感的部分。
压完会不会变笨,怎么判断
会不会变笨,要看任务和压的幅度。8 位量化对日常对话、摘要、分类的影响通常很小,很多人用起来察觉不到差别;压到 4 位及以下,数学推导、长代码、多步推理更容易先出问题。判断不能只看体积,要看两样:同一任务上量化版和原版的实测分数差了多少,以及自己真实的输入跑起来有没有明显退化。同一模型常有多个量化版本,选的时候先看量化方法和位宽,再看评测和用户反馈,别只看文件最小的那个。
什么情况下别直接用量化版
显存和内存本来就够用,又要求结果尽量准,先用原版,需要精确数值计算、多步推理或处理高风险内容时,也别直接拿量化版当最终答案。量化版最适合的场景是设备受限、要离线跑、延迟和成本优先,且结果有人复核或可以容错。记住一条边界:量化不是剪枝,也不是蒸馏,它不删参数、不换小模型,只是把数字记便宜了,模型记错东西的毛病,量化本身修不好。