跳到正文
AI 图鉴
08 AI 工程、安全与伦理进阶本域第 2 篇

模型压缩

在几乎不牺牲精度的前提下把模型变小、变快、变便宜——但三者通常只能同时占两样

定义

模型压缩是一类在尽量保持精度的前提下,减少模型参数量、显存占用与计算量的技术。主流手段包括量化(用更低的位宽表示权重与激活)、知识蒸馏(让小模型学习大模型的输出)、剪枝(移除冗余的权重或结构)以及低秩分解(用若干小矩阵近似一个大矩阵)。

直观理解

把一间塞满杂物的大房子收纳成一套紧凑公寓:量化是把每件物品的尺寸标注从毫米改成厘米,省下大量标签却不改变物品本身;剪枝是扔掉那些从没用过的物件;蒸馏是让徒弟照着师傅做好的成品练手,而不是重走师傅摸索的弯路。三种做法都能腾出空间,但也都可能顺手丢掉某件不起眼却关键的东西。

图 1

压缩方法的分类:量化改位宽、蒸馏换模型、剪枝删结构、分解降秩,四条路径可以叠加使用

模型压缩模型压缩量化量化训练后量化 PTQ训练后量化 PTQ量化感知训练 QAT量化感知训练 QATINT8 / INT4 / AWQ / GPTQINT8 / INT4 / AWQ / GPTQ知识蒸馏知识蒸馏logits 蒸馏logits 蒸馏特征 / 中间层蒸馏特征 / 中间层蒸馏剪枝剪枝非结构化剪枝非结构化剪枝结构化剪枝结构化剪枝低秩分解低秩分解SVD 分解SVD 分解LoRA 式低秩适配LoRA 式低秩适配
图 2

不同量化方案在 LLaMA 级模型上的困惑度增量(示意量级,越小越好,FP16 为基准):4 位在多数任务上接近无损,2–3 位开始明显退化

工作原理

  1. 01

    量化:用更少的比特表示数值

    把一个 FP16 浮点数映射成 INT8 或 INT4 整数,需要先确定一组缩放因子(scale),尽量覆盖权重的取值范围。权重分布均匀、激活分布带离群值时,训练后量化(PTQ)就够了;否则需要量化感知训练(QAT),在训练时就让模型“习惯”低位宽。

  2. 02

    蒸馏:把教师的知识搬进学生

    用大模型(教师)的输出概率分布作为软标签训练小模型(学生)。相比硬标签,软标签携带了“这个答案有多接近另一个答案”的信息,学生因此能以更小的体量学到更平滑的决策边界。

  3. 03

    剪枝:找出并移除冗余

    按权重的绝对值或重要性打分,移除影响最小的连接。非结构化剪枝去掉单个权重,稀疏度高但通用硬件不一定加速;结构化剪枝整块删掉神经元或注意力头,压缩比有限但能真正换来速度提升。

  4. 04

    低秩分解:用两个小矩阵近似一个大矩阵

    一个 m×n 的大矩阵若秩较低,可以写成 m×r 与 r×n 两个小矩阵之积,参数从 mn 降到 r(m+n)。SVD 是经典做法,LoRA 则把“低秩更新”用在了微调上——冻结原权重,只训练一对小矩阵。

图 4

压缩方案的代价-质量权衡:横轴为相对推理成本,纵轴为相对精度;理想区域在左上(低代价、高精度),悬停看具体方案

应用场景

  • 端侧与移动部署:把模型塞进手机、车机或嵌入式设备的内存
  • 降低推理成本:INT4 权重让同样的显存同时服务更多请求
  • 蒸馏小模型:用高并发、低延迟的小模型承接结构化任务
  • 大模型低比特部署:在消费级显卡上运行原本需要数据中心的大模型

常见误区

  • “4 位几乎无损”是统计上的常见结果,不是普遍保证。个别敏感层或长尾任务在低位宽下会明显掉点,需要逐层评估而不是一刀切。
  • 稀疏不等于加速。非结构化剪枝得到的稀疏矩阵,在通用 GPU 上往往因为访存不规则而得不到实际提升,除非硬件或内核专门支持。
  • 蒸馏无法超越教师的上限,学生会继承教师的偏见与幻觉。把大模型的缺陷“压”进小模型时,缺陷也一并被保留了下来。

关键术语

量化
用低位宽整数表示浮点权重与激活
知识蒸馏
用大模型的软输出训练小模型
剪枝
移除影响力低的权重或整块结构
低秩分解
用两个小矩阵之积近似一个大矩阵

延伸阅读