核心要点
剪枝(Pruning):移除冗余权重/通道/注意力头,结构化剪枝才能真正加速,需重训恢复精度
量化(Quantization):用低精度(INT8/INT4)表示权重激活,省显存提吞吐,分 PTQ 与 QAT
蒸馏(Distillation):用大教师模型的软标签(含类间相对概率)训练小学生模型,迁移暗知识
三者可叠加:常先蒸馏得到小模型,再量化部署,剪枝按硬件是否支持稀疏决定
标准回答
剪枝
去掉对输出贡献小的权重或结构。非结构化剪枝(单个权重置零)压缩率高但需硬件支持稀疏才能加速;结构化剪枝(整通道/整头)直接缩小矩阵,能在通用硬件上提速,通常剪枝后需微调恢复精度。
量化
把 FP32/FP16 权重和激活降到 INT8、INT4 等低精度,直接减少显存与带宽、提升吞吐。PTQ(训练后量化)无需重训、部署快,低比特时精度损失较大;QAT(量化感知训练)在训练中模拟量化误差,精度更高但成本高。
蒸馏
让小学生模型拟合大教师模型输出的软标签——软标签携带类别间的相对概率(暗知识),信息量大于硬标签,使小模型获得接近大模型的能力。
如何取舍
- 追求即插即用、快速上线:优先 PTQ 量化;
- 精度敏感、可承担训练成本:QAT 或蒸馏;
- 想减小模型结构本身:结构化剪枝或蒸馏到更小架构。
工程上常组合:先蒸馏出小模型,再量化部署。
常见误区
⚠️ 常见踩坑
以为非结构化剪枝必然加速——无稀疏硬件支持时只省存储不提速;混淆 PTQ 与 QAT,或忽略剪枝后通常需微调才能恢复精度。
延伸学习
与本题相关的知识库文章、术语、工具与行业资讯。
🛠️ AI 工具
- Pytorch
Meta 开源的深度学习框架,100K+ stars。以动态计算图和 Pythonic 风格著称,在学术界和工业界都有广泛应用,支持分布式训练、移动端部署和 ONNX 导出