一、简介
1、模型压缩方法
- 模型蒸馏
- 模型剪枝
2、实际压缩方式
通过精简模型机构,进而减少参数量
二、模型蒸馏
1、简介
- 概念:将复杂模型(又称教师模型)包含的知识迁移到简单模型(又称学生模型)中,从而实现模型压缩
- 蒸馏损失函数:用于模型蒸馏,蒸馏损失函数和分类损失函数(又称交叉熵损失函数)常一起用于训练学生模型
- 核心思想:引入额外的损失函数(蒸馏损失函数、分类损失函数),训练学生模型的输出尽可能接近教师模型输出
2、传统知识蒸馏
- 基于反馈的知识蒸馏:让学生模型输出的logits去近似教师模型的logits,进而通过这种方式让学生模型学习到教师模型的特有知识
- 基于特征的知识蒸馏:使用教师模型中间层的激活值作为监督信息训练学生模型
3、大模型知识蒸馏
- 蒸馏方法分类:
- 分类依据:根据大模型的权重数据是否可以获得
- 分类情况:
- 白盒模型蒸馏方法:获取模型权重来指导学生模型
- 黑盒模型蒸馏方法:使用模型输出来训练学生模型
三、模型剪枝
1、目的
在不损失模型性能的情况下,努力削减模型参数两,以见尽量降低模型对于算力与显存的消耗
2、传统剪枝方法
- 结构化剪枝:旨在去除对于模型性能影响较小的组件,可以删除神经元、通道、中间层
- 非结构化剪枝:去除模型权重矩阵中不重要的数值
3、大模型剪枝方法
- 结构化剪枝:与传统方式类似
- 非结构化剪枝:容易获得更高压缩率