对网络模型压缩有什么了解
网络模型压缩方法通常有剪枝、量化、蒸馏。
剪枝分为非结构化剪枝和结构化剪枝,非结构化剪枝指将部分不重要的参数置0,在一般的硬件设备中其实并不能加速,因为即使是0仍然要参与运算,结构化剪枝指将部分不重要的通道去掉,可以直接减少运算量,一般在判别模型中权重越低重要性也越低,可以优先作为被剪枝的通道,但是在生成模型中,权重低不代表重要性低,可能权重低的通道会影响细节部分,因此常规的剪枝方式也不适用于生成模型。
量化是将精度转换为存储空间更小的精度,从32位单精度转换为8位整型,可以将占用空间直接缩小到原来的四分之一,而整型推理速度一般也会比单精度浮点型快。
蒸馏是将训练好的大模型迁移到小模型上,在实践中也是最能稳定出成果的方案,通过减小原本大模型的复杂度,或者直接改用轻量化模型,通过蒸馏方案学习原本大模型的效果,牺牲一定精度换来性能显著提高,当然,如果原本的大模型过拟合,适当降低模型复杂度甚至还能提高精度。