模型蒸馏与剪枝:前提与不该做的三种情况
蒸馏与剪枝,指的是把大模型的能力迁移到更小的模型上、或裁掉模型中贡献较低的部分,以换取更低的部署成本与更快的推理速度。两者都要求有足够的样本、可靠的评测集与明确的部署约束。本文说明两种压缩方式的差别、需要什么前提、哪三种情况下不该做,以及验收方式
蒸馏与剪枝,都属于用质量换成本的压缩手段:前者让小模型学习大模型的行为,后者直接移除模型里贡献较低的部分。它们不是免费的午餐 —— 省下的是算力,付出的是能力覆盖范围,问题在于能不能把代价控制在业务可接受的位置
两种压缩方式的区别
- 蒸馏:用更大的模型产生样本,再让小模型去学习;能迁移的不只是答案,还有输出风格与拒答行为。
- 剪枝:移除结构中冗余的部分,通常需要一次再校准;对高频能力影响较小,对长尾能力影响更大。
- 共同点:两者都会改变模型的行为分布,因此都必须用同一套业务评测集回归验证。
选择哪一种,取决于约束是什么:受限的是显存,剪枝往往更直接;受限的是延迟或成本,蒸馏出来一个更小的模型通常更彻底。
需要什么前提
- 有足够的高质量样本:没有样本就没有学习信号,样本质量直接决定压缩后的上限。
- 有能判断质量下降的评测集:来自真实业务问题,覆盖高频、边界与高风险三类场景。
- 有明确的部署约束:需要说清压缩是为了解决显存、延迟还是成本,否则无法判断取舍是否值得。
- 有可回退的原始版本:压缩版本与原始版本应能通过配置切换。
不该做的三种情况
- 没有部署约束,只是为了「更省」:约束不清时,压缩的代价与收益都无法评估,最后只会得到一个小一点但更难解释的模型。
- 没有评测集就开始压:没有基线就无法判断质量是否下降,也无法确定下降是否可接受。
- 数据涉敏但仍用真实业务数据生成样本:把数据用于训练等于扩大了它的处理范围,需要重新走一遍边界与合规确认。
第三条尤其容易被忽略。用真实业务数据生成训练样本,在很多团队眼里只是技术步骤,但从数据治理角度看,这是一次用途变更 —— 原本只用于推理的数据,现在被用于训练,两者的授权范围并不相同。
压缩之后要重测什么
- 业务评测集:与压缩前使用同一套题目,比较可感知的差异。
- 长尾与边界案例:压缩对小模型的影响通常首先体现在这些地方。
- 拒答行为:模型是否仍然在不确定时选择拒答,而不是给出看似合理的答案。
- 延迟与成本实测:确认压缩确实带来了预期收益,而不是只换了个瓶颈。
压缩与部署形态的关系
压缩不是独立的技术动作,它的意义取决于部署在哪里。同一份压缩结果,放在服务端与放在端侧,评价标准完全不同
- 服务端部署:显存与并发是主约束,压缩的收益体现在同一台设备能承载更多请求。
- 端侧或边缘设备:算力、内存与功耗都被严格限制,压缩往往是能不能跑起来的前提,而不是优化项。
- 混合形态:敏感任务跑在端侧小模型上,复杂问题回落到服务端,此时压缩的目标是让回落频率尽可能低。
- 离线场景:没有网络可用时,模型必须在本地完成推理,压缩决定的是可用能力的天花板。
验收
- 有压缩前后的评测对照,且差异在事先约定的范围内。
- 有部署约束的书面说明:这次压缩要解决的问题是什么。
- 有可回退路径与切换记录。
- 涉及真实业务数据的部分有用途变更确认,而不是默认沿用原授权。