大模型剪枝(Pruning)、量化(Quantization)、知识蒸馏(Knowledge Distillation)是三种主流的模型压缩与优化技术。
- 剪枝:去掉冗余参数,减小模型大小和计算量
- 量化:降低模型参数精度,降低存储成本和计算成本
- 知识蒸馏:知识迁移,小模型学习大模型的知识
一、区别
维度 | 剪枝(Pruning) | 量化(Quantization) | 蒸馏(Distillation) |
---|---|---|---|
核心目标 | 减少模型参数量和计算量 | 降低模型存储和计算精度 | 让小模型模仿大模型的性能 |
操作对象 | 移除冗余参数(权重、神经元、层) | 转换数值精度(如32位浮点→8位整数) | 迁移知识(从教师模型到学生模型) |
主要优势 | 降低计算延迟,减少内存占用 | 减少存储体积,加速低精度硬件计算 | 小模型接近大模型效果,提升泛化能力 |
典型方法 | - 结构化剪枝(移除整层/通道) - 非结构化剪枝(移除单个权重) | - 训练后量化(Post-Training) - 量化感知训练(QAT) | - 软标签蒸馏(概率分布) - 特征图蒸馏(中间层知识) |
对精度影响 | 可能显著下降(需微调恢复) | 通常轻微下降(量化感知训练可缓解) | 学生模型精度可能接近或超越直接训练 |
硬件友好性 | 结构化剪枝 > 非结构化剪枝 | 高度依赖硬件支持(如GPU/TPU的int8) | 通用性强,不依赖特定硬件 |
适用阶段 | 训练后或训练中(逐步剪枝) | 训练后或训练中(量化感知训练) | 训练阶段(需教师模型指导) |
二、联系
2.1、目标一致:模型轻量化
三者最终目标都是让模型更小、更快、更高效,适用于资源受限的场景(如移动端、嵌入式设备)。三者可独立使用,但组合后能实现模型体积、速度、精度的平衡。
2.2、互补性:组合使用效果更佳
-
剪枝 + 量化:
剪枝减少参数数量,量化降低参数精度,组合后模型体积可压缩数十倍。
示例:BERT模型剪枝50%参数后量化至8位,体积从400MB→50MB。 -
蒸馏 + 剪枝/量化:
先通过蒸馏训练小模型,再对蒸馏后的模型剪枝或量化,进一步压缩。
示例:教师模型(ResNet-50)→ 学生模型(ResNet-18)→ 剪枝后体积再减少30%。 -
量化感知蒸馏:
在蒸馏过程中模拟量化效果,让学生模型直接适应低精度计算。
示例:手机端实时检测模型,同时压缩精度和体积。
三、典型应用场景对比
技术 | 适用场景 | 案例 |
---|---|---|
剪枝 | 计算资源严格受限(如无人机、低端手机) | 移除YOLOv5中50%的冗余通道,提升推理速度 |
量化 | 存储敏感或专用硬件部署(如MCU、边缘AI芯片) | 将人脸识别模型转为int8,适配摄像头NPU |
蒸馏 | 需要轻量模型但要求高精度(如智能手表健康监测) | 用BERT蒸馏出TinyBERT,体积缩小7倍 |
三者结合 | 极端资源限制下保持可用性能(如森林火灾传感器) | 蒸馏→剪枝→量化,模型体积从100MB→1MB |