很多人第一次接触模型压缩,会把量化和蒸馏当成同一件事的两种说法,于是出现两种典型卡壳:想省显存却跑去重新训练一个小模型,或者想提升小模型能力却只改了个存储精度。这篇把两条路线的目标、代价和适用条件摆在一起对照,再给一套判断顺序,让你在动手前就知道该选哪条、什么情况下两条都不该选。
很多人第一次接触模型压缩,会把量化和蒸馏当成同一件事的两种说法。结果就出现两种典型卡壳:想省显存,却跑去重新训练一个小模型;想提升小模型能力,却只改了个存储精度。本质上这是两条目标完全不同的路线,动的地方也不一样。
这篇把两条路线的目标、代价和适用条件摆在一起对照,再给一套判断顺序,让你在动手前就知道该选哪条、先动哪一步,以及什么情况下两条都不该选。
先分清:一个改精度,一个改学生
量化动的是权重的存储与计算精度,模型结构和参数量基本不变,产物还是原来那个模型,只是跑起来更省。蒸馏动的是模型本身,让一个小模型去学大模型的输出分布,产物是一个新的、更小的模型。这两件事从根上就不是一回事,启动成本也完全不同。
| 对比项 | 量化 | 蒸馏 |
|---|---|---|
| 改动对象 | 权重精度 | 模型结构 |
| 产物 | 同一个模型 | 新的更小模型 |
| 是否要训练 | 通常不用,做校准即可 | 必须跑训练 |
| 主要收益 | 省显存、提吞吐 | 换更小的部署形态 |
| 主要代价 | 精度损失 | 训练成本与重新验收 |
| 许可证影响 | 看权重本身许可 | 看老师模型输出使用权 |
- 判断口诀一:只想省显存省成本,看量化
- 判断口诀二:想要一个能独立发布的小模型,看蒸馏
- 判断口诀三:连训练环境都没有,就别考虑蒸馏
- 判断口诀四:任务对数值输出极其敏感,量化档位要往上退
什么时候该走量化
如果你的目标是让同一份权重在更小显存里跑起来,或者在同样硬件上提高吞吐,量化就是首选路径。它不用重新训练,工程上通常是先试一档、测一轮精度,不行再往上退档位,迭代速度比蒸馏快很多。
- 先定瓶颈确认是显存不够、还是吞吐不够。显存不够就往下压档位;吞吐不够优先看是否支持对应的加速算子,而不是一味压精度。
- 选一个档位试跑不要一上来就选最激进的那一档,先用保守档位跑通,记录显存占用和延迟变化,不同档位的取舍可以到 /models/deploy 部署测算 对照当时的数字。
- 跑自己的任务集拿真实业务输入跑一轮回归,重点看长链推理、数值敏感输出、严格格式约束这三类场景是否掉得明显。
- 决定退档或放弃如果掉得明显,先往上退一档;退到最高精度还不行,说明这个模型本身就不适合走量化路线。
什么情况下不适用:任务对长链推理、数值敏感输出、严格格式约束要求极高时,低精度档位可能掉得明显,这时往上退档位或干脆不量化。另外量化只影响推理侧,如果你连训练环境都没有,也不用绕到蒸馏上去。
什么时候该走蒸馏
如果你的目标是换一个更小的模型来承担原本大模型的任务,比如下沉到端侧、私有化环境,或者压单次调用成本,那就该走蒸馏。它解决的不只是显存问题,还包括延迟、部署门槛和许可证可控性。
| 判断项 | 够用就继续 | 不够就先别上 |
|---|---|---|
| 训练数据 | 有覆盖目标任务的标注或合成数据 | 只有零散样本,没有稳定分布 |
| 老师模型权限 | 拿到输出使用权,允许用于训练 | 只能调用,不能拿输出做训练 |
| 算力 | 有可用的训练卡和排期 | 只有推理机,没有训练资源 |
| 验收方案 | 有能复现的评测集和回退方案 | 只看通用榜单,没有业务集 |
蒸馏产出的是新模型,评测、验收、回退都要重新做一遍,不是换个权重文件那么简单。具体哪些服务商在训练数据、算力和部署上能兜住,可以到 /stacks/fine-tuning 微调服务商目录 里对照各家支持的能力。
什么情况下不适用:没有训练数据、没有老师模型的输出权限、或者团队没有跑训练的资源,这三条缺一条就先别上蒸馏。硬上往往训出一个既不如老师、也不如原始小模型的中间产物。
两条路线能不能一起用,先做哪步
两条路线可以叠加,但顺序有讲究。常见顺序是先蒸馏再量化:先得到结构更小的学生模型,再对它做低精度压缩,收益叠加,但误差也叠加。反过来先量化再蒸馏通常不划算,老师模型被压过之后输出分布会漂移,教出来的学生质量不好保证。
- 先问显存和吞吐够不够,不够先量化
- 再问模型体积和部署形态能不能接受,不能接受才蒸馏
- 两条都做完之后,务必做一轮自己的任务集回归
- 不要只看通用榜单,榜单口径可以看 /benchmarks AI 测评榜单
- 保留每一步的中间产物,方便定位误差是哪一步引入的
动手前的排查清单
不管走哪条路线,动手前先过一遍下面四项,能省掉大部分返工。
- 明确瓶颈是显存、是单次成本、还是部署位置。不同瓶颈对应不同路线,写下你要解决的那一个,避免目标漂移。
- 确认权限蒸馏需要老师模型的输出使用权,量化只需权重和使用许可。许可证边界可以到 /models AI 模型库 查当时标注的条款。
- 确认算力量化基本在推理机上就能完成,蒸馏要训练卡,成本量级差很多。租卡行情可以看 /compute/gpu-rental GPU 租用比价 核对当时的数字。
- 留好回退任何压缩后的版本都要保留原始权重和一份可对比的评测记录,出问题能退回,也能定位误差来源。
量化和蒸馏不是二选一的口味问题,而是先看瓶颈在哪、再选工具的问题。下一步把你要压缩的模型和当前瓶颈写下来,到模型库和部署测算页对照规格与档位,再决定先量化还是先蒸馏。→
常见问题
量化模型和蒸馏模型,哪个效果掉得少?
没有统一答案,取决于任务。量化通常掉的是细节稳定性和格式遵循度,蒸馏掉的是知识广度和长尾能力。稳妥做法是两条都各拿一版,在你自己的真实任务上跑同一批样例对比,别只看别人给的结论。具体档位差异可以到站内部署测算页对照当时的数字。
我不训练模型,只部署,是不是只能用量化?
基本是这样。蒸馏必须有训练环节,要么自己跑,要么找支持蒸馏的服务商。如果你完全没有训练资源和数据,就应该把精力放在量化档位、并发和显存测算上,这条路已经有成熟工具链,不需要自己造轮子。
蒸馏出来的小模型能直接替代原来的大模型吗?
多数情况下不能整体替代,只能替代其中一部分任务。蒸馏学生的能力边界通常比老师窄,尤其在需要长链推理、跨领域迁移的任务上会明显退步。建议按任务切分,把稳定、重复、格式固定的活交给学生模型,复杂的仍走大模型,两种一起跑反而更省。