大模型推理优化:在更小的设备运行、推理增速
- 知识蒸馏(优先)
- 模型剪枝
- 模型量化(优先)
- 参数共享
- 低秩分解
- 参数搜索
知识蒸馏(优先)
知识蒸馏:
- 知识:模型参数、一堆矩阵
- 蒸馏:把大模型参数迁移到小模型,用更小的矩阵代替更大的矩阵
让大、小模型最后一层输出尽可能接近。
- 判别指标:KL 散度、L2 距离
学习的是最后一层的概率分布,但大模型不止最后一层,还有很多中间层。
- 所以,不仅要最后一层接近,还有俩者的中间层、输入层、注意力层也要接近
- 判别指标:MSE loss
主流是知识蒸馏,但需要多训练一个模型,成本更高。
模型剪枝
把其中一些参数(矩阵)去掉,接近 0 的参数。
- 去掉 30% 的参数,对下游任务性能不影响
对于注意力层,定义重要性指标,去掉不重要的层。
模型量化(优先)
把浮点数变成定点数。
主流框架都支持。
参数共享
相邻矩阵共享同一套参数,原先相邻矩阵参数都不同。
- 只使用一个层,效果也不会差
低秩分解
用一小维代替整个参数矩阵。
参数搜索
找更好的神经网络配置,比如加卷积层、找更好的非线性函数、注意力机制优化等。