近年来,深度学习技术在很多方向都取得了巨大的成功,但由于深度神经网络计算复杂度高,模型参数量大,限制了其在一些场景和设备上进行部署,特别是在移动嵌入式设备的部署。因此,模型小型化技术成为最近几年学术界和工业界研究的热点,模型小型化技术也从最开始的网络剪枝、知识蒸馏、参数量化等发展为最新的神经网络架构搜索(NAS)和自动模型压缩等技术。
飞桨核心框架 Paddle Fluid v1.5 版本,PaddleSlim 也发布了最新升级,新增支持基于模拟退火的自动剪切策略和轻量级模型结构自动搜索功能(Light-NAS)。
PaddleSlim 简介
PaddleSlim 是百度飞桨 (PaddlePaddle) 联合视觉技术部发布的模型压缩工具库,除了支持传统的网络剪枝、参数量化和知识蒸馏等方法外,还支持最新的神经网络结构搜索和自动模型压缩技术。
PaddleSlim 工具库的特点
接口简单
-
以配置文件方式集中管理可配参数,方便实验管理
-
在普通模型训练脚本上,添加极少代码即可完成模型压缩
效果好
-
对于冗余信息较少的 MobileNetV1 和 MobileNetV2 模型,卷积核剪切工具和自动网络结构搜索工具依然可缩减模型大小,并保持尽量少的精度损失。
-
蒸馏压缩策略可明显提升原始模型的精度。
-
量化训练与蒸馏的组合使用,可同时做到缩减模型大小和提升模型精度。
-
网络结构搜索工具相比于传统 RL 方法提速几十倍。
功能更强更灵活
-
剪切压缩过程自动化
-
剪切压缩策略支持更多网络结构
-
蒸馏支持多种方式,用户可自定义组合 loss
-
支持快速配置多种压缩策略组合使用
PaddleSlim 工具库的功能列表
模型剪裁
-
支持通道均匀模型剪裁(uniform pruning)、基于敏感度的模型剪裁、基于进化算法的自动模型剪裁三种方式
-
支持 VGG、ResNet、MobileNet 等各种类型的网络
-
支持用户自定义剪裁范围
量化训练
-
支持动态和静态两种量化训练方式
-
动态策略: 在推理过程中,动态统计激活的量化参数。
-
静态策略: 在推理过程中,对不同的输入,采用相同的从训练数据中统计得到的量化参数。
-
-
支持对权重全局量化和 Channel-Wise 量化
-
支持以兼容 Paddle Mobile 的格式保存模型
蒸馏
-
支持在 teacher 网络和 student 网络任意层添加组合 loss
-
支持 FSP loss
-
支持 L2 loss
-
支持 softmax with cross-entropy loss
-
轻量级神经网络结构自动搜索
-
支持百度自研的基于模拟退火的轻量模型结构自动搜索 Light-NAS
自动模型压缩
-
支持基于模拟退火自动网络剪枝
其它功能
-
支持配置文件管理压缩任务超参数
-
支持多种压缩策略组合使用
PaddleSlim 应用效果
经典压缩 Benchmark
Light-NAS Benchmark
Light-NAS 百度业务应用效果
轻量级模型搜索详解
1、自动网络结构搜索
网络结构的好坏对最终模型的效果有非常重要的影响,高效的网络结构可以可以用较少的计算量获得较高的精度收益,比如 MobileNet,ShuffleNet 等,但手工设计网络需要非常丰富的经验和众多尝试,并且众多的超参数和网络结构参数会产生爆炸性的组合,常规的 random search 几乎不可行,因此最近几年神经网络架构搜索技术(Neural Architecture Search)成为研究热点。
区别于传统 NAS,我们专注在搜索精度高并且速度快的模型结构,我们将该功能统称为 Light-NAS。网络结构搜索关键的几个要素一