优化方向一:计算优化
>>模型结构优化
针对业务特点,设计精度高、鲁棒性强深度学习模型,比如一些精度网络的设计:ResNet, MobileNet, GoogleNet、YOLO、SSD等
>>深度模型剪枝
模型剪枝分:结构化剪枝和非结构化剪枝
结构化剪枝
非结构化剪枝
dropout操作dropconnect操作droplayer优缺点: 受底层计算平台限制较多,精度损失明显失效,适用于精度不敏感的模型推理应用场景
>>深度模型量化
模型量化方法:将float-32映射到int类型,分为:线性量化和非线性量化
量化类型:
优缺点: 技术适用较广,加速明显。
>>深度模型蒸馏
用teacher模型指导student模型,以期待提高student模型精度,一般来说,teacher模型精度高,不过计算复杂度也大
不适用在终端设备部署,而student模型计算复杂度虽符合终端设备部署,但精度不够,为此可采用蒸馏处理
蒸馏更适合于分类任务,对于teacher和student模型的选择,对蒸馏也起到一定的作用
一般说,teacher和students的结构越是类似,蒸馏后的两者精度差异就越小
优化方向二:系统优化
通信机制优化:利用分布式集群等技术,提高模型训练速度和推理速度
可参见:https://www.usenix.org/conference/
优化方向三:硬件推理优化
>>深度模型推理硬件
GPU/TPU/NPU
>>深度模型推理加速库/部署工具:
NCNN:腾讯公司开发的移动端平台部署工具
TensorRT:NVIDIA公司针对自家GPU开发的部署工具
MediaPipe: 谷歌针对自家硬件设备和深度学习框架开发的部署工具
ONNX:微软、亚马逊等公司开发的神经网络交换格式
除此之外还有一些深度学习框架有自己的专用部署工具如:
TFLITE:tensorflow为自己提供的部署服务
LibTorch:pytorch为自己提供的部署服务