[关闭]
@wanghuijiao 2021-01-27T17:50:25.000000Z 字数 4051 阅读 1804

模型压缩调研

快速调研


0. 前言

1. 方法对比

层面 方法 效果 可行性判断 工作量预估 OP支持度
算法层加速 低秩近似(矩阵、张量分解) 精度无明显损失前提下,加速8倍 需要参考不同论文源码进行卷积层分解和全连接层分解,没有工具包,风险较大,应用到跌倒模型其精度和速度不敢保证 2月左右 --
剪枝 不损失准确率前提下,在ImageNet数据集上,对AlexNet的内存占用减少35倍(240MB->6.9MB),对于VGG-16减少49倍的内存占用(552MB->11.3MB)。 NNI (Neural Network Intelligence)微软开源工具包、PaddleLite也支持, 有完整工具链和文档 2周内可上手 --
量化 实现32x存储压缩的同时,可有58x的速度提升 TensorFlow支持INT8量化,Pytorch从1.3版本开始支持finetune的量化功能,MNN、NCNN、TFlite、PaddleLite等都支持量化 2周 --
知识蒸馏 TinyBERT在glue任务上,精度损失4%时,模型缩小7.5倍,加速9.4倍。 需要训练学生网络,应用较难,风险大 3月左右 --
轻量网络:MobileNets、ShuffleNets、Inception、SqueezeNet SqueezeNet+Deep Compression, 可以将AlexNet在不损失精度的前提下模型深度压缩510倍 需要替换模型backbone,风险较大 1月左右 --
框架层加速 TensorRT Nvidia 部署推理工具,可用于PX2,加速10X 有完整工具链和文档,易上手 2周 --
TVM 华盛顿大学,推理加速,相较于TensorRT,支持硬件平台更为广泛 有完整工具链和文档,易上手 2周 --
Tensor Comprehension Facebook,用于将高级语言生成GPU代码 有完整工具链和文档,易上手 2周 --
Distiller Intel开源的用于模型压缩的 Python 包 有完整工具链和文档,易上手 2周 --
移动端AI框架 TF-lite Google轻量级推理库。主要用于移动端。 有完整工具链和文档,易上手 2周 --
MNN 阿里高效、轻量的深度学习框架,它支持端侧深度模型推理与训练。 有完整工具链和文档,易上手 2周 支持149个TensorFlow Op,47 个CaffeOp、74 个 ONNX Op;CPU 110个,Metal 55个,OpenCL 29个,Vulkan 31个。不支持自定义扩展。
NCNN 腾讯手机端极致优化的高性能神经网络前向计算框架 有完整工具链和文档,易上手(文档写的不太规范) 2周 无算子列表,有支持的网络列表, 不易扩展
MACE 小米移动端异构计算设备优化的深度学习前向预测框架 有完整工具链和文档,易上手 2周 支持57个Op,不易扩展
PaddleLite 百度深度学习推理框架 有完整工具链和文档,易上手 2周 支持204个ops,易扩展
ONNX Runtime 是将 ONNX 模型部署到生产环境的跨平台高性能运行引擎 完整工具链和文档,易上手 2周 约100-200个Op, 易扩展
硬件芯片层 GPU、FPGA、ASIC(TPU\NPU) -- 需要定制芯片,根据与肇观公司接触来看,开发需要底层硬件工程师,算法人员开发过程过于艰难 较难实现,6个月以上 --

更加详细的信息请看下面的介绍。

2. 模型压缩和加速方法

2.1 算法层加速

2.1.1 低秩近似(矩阵、张量分解)

2.1.2 剪枝

2.1.3 量化

2.1.4 知识蒸馏

2.1.5 轻量网络

2.2 框架层加速

2.2.1 TensorRT

2.2.2 Auto TVM

2.2.3 Tensor Comprehension

2.2.4 Distiller

2.3 移动端AI框架

2.3.1 TF-lite

2.3.2 MNN

2.3.3 NCNN

2.3.4 MACE

2.3.5 PaddleLite

2.3.6 ONNX Runtime

2.4 硬件芯片层

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注