模型压缩:理论基础
模型压缩基本方法分为三类:
- 量化
- 裁剪
- 蒸馏
量化
裁剪
绿线:随机裁剪 30% 已经扛不住了
蓝线:60% 还不错
蒸馏
- 蒸馏任务与原来的学习任务同时进行.
- 对于没有标注的数据,可以只学习teacher的预测概率
Teacher model:教师模型,是已经训练好的,比较不错的模型。
Student(distilled) model:学生模型,是重新初始化的小模型,去学生老师的结果
设置损失函数,让学生的概率分布,往老师上靠。使得学生能够复现老师的输出,从而获得老师的准确率
蒸馏的信号
第一步:A 首先对Student进行学习,不带蒸馏的,一般在无监督数据上进行 lask
第二步:把学习的模型拿过来,带一个老师模型,同样进行无监督学习,B
第三步:通过通用的老师.. 视频时间:20:00
任务无关蒸馏:不需要知道下一步要做什么,蒸完就能直接拿去用
3层,比12层更小,更宽。
压缩模型最好是压深度,而不是宽度,因为压缩深度可以有效的降低依赖性,使用3步就可以完成计算,宽度有些设备可以高效的并行完成
宽度的大小对整个模型的预测时间,是影响不大的
中文是没有空格的语言,所以先要分词
产业实践案例
模型上线,首先要考虑的是模型是不是需要微调,有些模型不需要微调,直接可以上线。
- 可能没有数据给他微调
- 希望这个模型做为下游模型的输入
CPU在线预测应用
数据增强
实践案例:搜索问答
实践案例:GPU在线预测应用在搜索引擎