🚀 大模型压缩与加速全手册:量化、蒸馏与剪枝

5 阅读3分钟

在工业界,大模型的落地是一场“既要智商,又要速度”的博弈。本手册详细拆解了实现这一目标的三个核心技术路径。


一、 量化 (Quantization):数字位宽的降维打击

量化是改变参数的存储格式运算类型,其本质是将连续的浮点映射到离散的整数格点。

1. 数学底层:线性量化公式

Q=clamp(round(RS+Z);Qmin,Qmax)Q = \text{clamp}\left(\text{round}\left(\frac{R}{S} + Z\right); Q_{min}, Q_{max}\right)

  • RR (Real): 原始 FP16 值。
  • SS (Scale): 缩放因子(步长),决定格点密度。
  • ZZ (Zero-point): 零点偏移,确保浮点 0 对应整数格点。

2. 参数 SSZZ 的获取(校准 Calibration)

  • 策略:输入少量真实数据(校准集),观察每一层数值的分布范围 [α,β][\alpha, \beta]
  • 计算S=βαQmaxQminS = \frac{\beta - \alpha}{Q_{max} - Q_{min}}
  • 优化策略
    • Min-Max:取绝对边界。
    • KL 散度:寻找信息丢失最小的截断点,忽略干扰精度的大离群值(Outliers)。

3. 推理真相:整数域战斗

  • 带宽红利:4-bit 参数搬运速度比 16-bit 快 4 倍。
  • 算力红利:硬件直接执行 INT4×INT4INT4 \times INT4 整数运算。反量化(还原回浮点)仅发生在每一层计算结束的收尾阶段。

二、 知识蒸馏 (Distillation):名师出高徒的传承

蒸馏是改变模型的架构规模。通过大模型(Teacher)引导小模型(Student)学习,实现“智力压缩”。

1. 路径 A:基于 Logit 的传统蒸馏(“神交”)

  • 原理:学生模仿老师输出的概率分布(Soft Label)
  • 核心:利用 KL 散度 计算 Loss。学生学习老师对不同选项的“偏好”和“犹豫”,获取老师的决策边界。

2. 路径 B:基于 CoT 的逻辑蒸馏(“手抄”)

  • 原理:让大模型生成详细的思维链 (Chain of Thought) 文本。
  • 核心:小模型通过 SFT(监督微调) 直接背诵老师的推理步骤。
  • 现状:DeepSeek 系列的核心成功学,实现了跨量级的逻辑迁移(如 70B -> 7B)。

三、 模型剪枝 (Pruning):针对冗余的外科手术

剪枝是改变模型的连接密度。剔除模型中贡献度极低的权重,消除参数冗余。

1. 非结构化剪枝 (Unstructured Pruning)

  • 动作:随机剪掉散落在矩阵各处的单个权重。
  • 特点:精度保留好,但由于产生不规则稀疏矩阵,普通 GPU 难以实现真实的推理加速。

2. 结构化剪枝 (Structured Pruning)

  • 动作:物理切除。直接删除一整个神经元、通道或网络层。
  • 特点:矩阵规模真实缩小,推理速度立竿见影提升,但通常需要后续微调(Fine-tuning)来修复受损的精度。

四、 核心技术对比与实战组合拳

维度PTQ 量化知识蒸馏模型剪枝
操作对象参数位宽 (Bit-width)模型架构 (Architecture)权重连接 (Sparsity)
参数数量保持不变显著减少显著减少
主要收益显存占用、推理吞吐量逻辑能力、推理速度存储空间、计算延迟
实施成本极低(分钟级)高(需要完整训练)中(需要评估权重价值)

🛠️ 工业级优化顺序建议

  1. 蒸馏:先用大模型带出一个逻辑强大的小尺寸模型。
  2. 剪枝:如果小模型仍有冗余,进行结构化剪枝瘦身。
  3. 量化:最后将模型进行 4-bit 量化,实现显存与速度的终极优化。

总结:量化省钱(显存),蒸馏保智(逻辑),剪枝提速(结构)。