模型压缩大体上可以分为 5 种:
- 模型剪枝:即移除对结果作用较小的组件,如减少 head 的数量和去除作用较少的层,共享参数等,ALBERT属于这种;
- 量化:比如将float32 降到 float8;
- 知识蒸馏:将 teacher 的能力蒸馏到 student上,一般 student 会比teacher 小。我们可以把一个大而深的网络蒸馏到一个小的网络,也可以把集成的网络蒸馏到一个小的网络上。
- 参数共享:通过共享参数,达到减少网络参数的目的,如 ALBERT 共享了 Transformer 层;
- 参数矩阵近似:通过矩阵的低秩分解或其他方法达到降低矩阵参数的目的;