返回技术文章

模型量化:省下来的是什么

  • 大模型
  • 量化
  • 推理

示例文章,用于演示分页与列表排版,请替换成你自己的内容。

量化把权重从高精度压到低精度,省显存、提速度,代价是精度损失。但「损失多少」这个问题没有统一答案,因为它取决于量化什么、怎么量化。

量化的对象不止权重

对象省什么难度
权重显存占用低,可以离线校准
激活值显存 + 带宽高,随输入动态变化
KV 缓存长上下文的显存中,对长文本收益大

只量化权重,推理时仍要把激活值转回高精度,加速有限。真正提速要靠权重和激活一起量化。

为什么会有离群值

激活值里存在少数数值极大的通道,动态范围被它们撑开。如果按整体范围均匀量化,绝大多数数值会挤在很少的几个量化格子里,误差很大。

主流做法是把离群通道单独拎出来保持高精度,其余部分正常量化。这也是各种「某通道保留」方案的共同出发点。

误差会累积

逐层看,量化误差都不大。但 Transformer 层数多,误差在层间逐级放大,到输出端可能就不可忽略了。

所以评估量化效果不能只看单层误差,要在端到端任务指标上看——困惑度、或者具体下游任务的准确率。很多时候困惑度只涨了一点,但某个需要精确复述的任务已经明显退化了。

一句话

量化是在显存、速度、精度三者之间挪动取舍点,没有免费的午餐。先明确你要省哪一样,再选方案。