✂️ 模型剪枝与蒸馏 · 实战方法
30 章 · 从入门到部署 · 动手实践
🌱 友好色系
🧠 30个完整章节
⚡ 点击卡片跳转
01
剪枝入门
核心
什么是模型剪枝?为什么需要剪枝?核心思想与收益分析。
02
剪枝分类
结构化
结构化剪枝 vs 非结构化剪枝,权重剪枝 vs 神经元剪枝。
03
剪枝粒度
细粒度
细粒度剪枝、向量剪枝、核内剪枝、通道剪枝。
04
剪枝标准
准则
基于权重大小、梯度、L1/L2范数、信息熵的剪枝标准。
05
训练后剪枝
PyTorch
训练后直接剪枝的方法与步骤,以PyTorch为例。
06
训练时剪枝
动态
边训练边剪枝 (Dynamic Pruning),重训练机制。
07
迭代剪枝
循环
逐步剪枝策略,剪枝-重训练循环,学习率调度。
08
通道剪枝实战
ResNet
对ResNet进行通道剪枝,使用BN层gamma值作为重要性指标。
09
结构化剪枝实战
VGG
对VGG进行结构化剪枝,移除整个卷积核。
10
非结构化剪枝实战
torch.prune
使用torch.nn.utils.prune进行细粒度剪枝。
11
剪枝后微调
恢复精度
剪枝后模型精度恢复技巧,学习率选择与数据增强。
12
剪枝工具库
NNI
torch-pruning、NNI、TensorFlow Model Optimization Toolkit介绍。
13
蒸馏入门
教师-学生
什么是知识蒸馏?教师-学生网络架构,蒸馏的核心公式。
14
蒸馏温度
T参数
温度参数T的作用,软标签与硬标签,温度对梯度的影响。
15
蒸馏损失
KL散度
KL散度损失、交叉熵损失、蒸馏损失加权组合。
16
离线蒸馏
固定教师
教师模型固定,学生模型从教师输出中学习。
17
在线蒸馏
同步
教师与学生同时训练,互相学习。
18
自蒸馏
自教
模型自己教自己,无需额外教师网络。
19
特征蒸馏
中间层
不仅学习输出,还学习中间层特征表示。
20
关系蒸馏
相似度
学习样本间的关系,如相似度矩阵。
21
蒸馏实战
PyTorch
使用PyTorch实现一个简单的蒸馏训练流程。
22
蒸馏与剪枝结合
联合
先剪枝后蒸馏,或先蒸馏后剪枝,联合优化策略。
23
量化入门
INT8
模型量化的基本概念,FP32到INT8的转换。
24
量化感知训练
模拟
模拟量化误差,训练时学习量化参数。
25
后训练量化
直接量化
无需训练,直接对权重和激活进行量化。
26
混合精度训练
FP16
FP16与FP32混合使用,加速训练并减少显存。
27
模型部署
ONNX
ONNX导出、TensorRT优化、移动端部署 (TFLite/NCNN)。
28
压缩效果评估
指标
模型大小、推理速度、精度损失、FLOPs计算。
29
实际案例
BERT
将BERT模型剪枝+蒸馏,压缩至原大小的30%并保持95%精度。
30
总结与展望
AutoML
模型压缩的未来趋势,自动化剪枝与蒸馏 (AutoML方向)。