压缩组合拳:蒸馏-剪枝-量化的流水线编排
一句话定义
真实项目极少只用一种压缩技术;流水线的正确编排是"先改结构(蒸馏/剪枝)并恢复精度,最后做量化",每一步之间用固定评测闸门验收,顺序错了误差会叠加放大。
为什么重要
量化、剪枝、蒸馏各自引入误差,组合使用时误差不是线性相加而是互相放大(剪过的权重对量化更敏感)。生产中"全都要"导致精度崩盘的案例远多于单一技术失败;一张正确的流水线图能避免大部分组合压缩事故。
前置知识
- kp-009(量化的误差来源与验收纪律——流水线最后一步要复用其全部方法论)。
核心概念
- 编排原则一:结构先于数值。蒸馏和剪枝改变模型"形状",需要训练恢复;量化是最后一次、代价最低的数值压缩,放在最末以免结构改动破坏量化后的 scale 适配。
- 编排原则二:一步一闸门。每步之后跑同一套评测(任务指标 + 长文本),跌破底线即回退或加大恢复训练,禁止"一口气全压完再测"。
- 编排原则三:按场景裁剪。服务端显存够时,量化 alone 通常最优(操作最简单、无训练依赖);端侧/极限压缩才值得引入蒸馏与剪枝。
原理与机制
误差叠加是非线性的:剪枝改变权重的有效分布,使按原分布校准的量化 scale 失配;反过来在量化后的模型上做恢复训练,教师信号里又混入量化噪声。流水线的顺序本质是"按误差可恢复性排序"——结构误差可以用训练修复,数值误差只能靠回退档位修复,可恢复性差的(量化)必须放最后,让前面的每一步误差都有机会被训练吸收。
实践步骤(可执行操作)
- 建立基线档案:任务指标 + PPL + 长文本样例 + TTFT/TPOT/显存(kp-002 口径)。
- 判定场景:
- 云端服务、显存可容纳 W4:直接量化(kp-009 流程),结束。
- 端侧/资源极限:进入压缩流水线——
- 蒸馏或剪枝:目标尺寸定结构(如 7B→3B 用蒸馏,7B→5B 用剪枝),恢复训练后过闸门。
- 量化收尾:W4-G128(端侧对应 GGUF Q4_K_M,kp-026),过最终闸门。
- 归档:每步产物、评测数字、决策理由全部留痕,方便回退定位。
图示
FP16 大模型
│ ①结构压缩(可选): 蒸馏(7B→3B) 或 剪枝(-1/3 FFN)
▼
[闸门A: 任务指标 ≥ 底线? 否→加强恢复训练/回退]
│ ②数值压缩: W4A16 / GGUF Q4
▼
[闸门B: 最终验收, 长文本必测]
▼
部署产物
实例或案例
端侧助手案例:7B 教师 → on-policy 蒸馏出 1.5B 学生(闸门 A:任务分恢复到教师的 90%)→ GGUF Q4_K_M(约 1GB)→ 手机 8GB RAM 实测 TPOT 约 20ms。若跳过闸门直接对 7B 做 W3:显存虽小但精度崩坏,返工成本更高——这就是"顺序与闸门"的价值。
常见误区
- "压缩技术叠加一定更好":误差叠加 + 分布漂移,叠加后常见非线性掉点。
- "先量化再蒸馏更省训练算力":在量化后的权重上做恢复训练,学的是"带噪教师",效果差且 scale 失配;正确顺序是先结构后数值。
- "流水线一步到位没有中间产物":每步产物都应保留,回退时才知道问题出在哪一环。
自测题
- 为什么量化必须放在流水线最后?
要点:量化是对数值分布最敏感、恢复手段最少的压缩;先做会被后续结构改动破坏。
- 流水线中闸门的作用是什么?
要点:每步用同一评测验收,定位误差来源,防止误差叠加到不可回退。
- 云端显存充足时推荐什么组合?
要点:通常仅量化(W4A16 或 FP16 直接部署),避免不必要的训练依赖与风险。
与其他知识点的关系
汇聚 kp-009/kp-010/kp-011;产物形态指向 kp-025(ONNX)与 kp-026(GGUF);kp-029 的选型决策树是本页编排原则的速查版。
延伸阅读
本节不适用——组合流水线主要散见于各量化/蒸馏论文的实验章节,建议以 kp-009 与 kp-011 的延伸阅读为基础拼装实践路线。