[field:fulltitle/]

科技之窗 > 互联网 > 正文

腾讯开源PocketFlow自动化深度学习模型压缩与加速框架
2018-11-02 16:13  [db:来源]    我要投搞

11月1日,腾讯AI Lab在南京举办的腾讯全球合作伙伴论坛上宣布正式开源“PocketFlow”项目, 该项目是一个自动化深度学习模型压缩与加速框架,整合多种模型压缩与加速算法并利用强化学习自动搜索合适压缩参数,解决传统深度学习模型由于模型体积太大,计算资源消耗高而难以在移动设备上部署的痛点,同时极大程度的降低了模型压缩的技术门槛,赋能移动端AI应用开发。

这是一款适用于各个专业能力层面开发者的模型压缩框架,基于Tensorflow开发,集成了当前主流与AI Lab自研的多个模型压缩与训练算法,并采用超参数优化组件实现了全程自动化托管式的模型压缩。开发者无需了解具体模型压缩算法细节,即可快速地将AI技术部署到移动端产品上,实现用户数据的本地高效处理。

目前该框架在腾讯内部已对多个移动端AI应用模型进行压缩和加速,并取得了令人满意的效果, 对应用整体的上线效果起到了非常重要的作用。

项目访问地址:

https://github.com/Tencent/PocketFlow

随着移动互联网的普及和AI算法的愈加成熟,移动端AI的需求和应用场景也愈加丰富,如智能美颜,瘦身,手势识别,场景识别,游戏AI,视频检测,车载语音交互,智能家居,实时翻译等。将模型部署在移动端代替服务器端可以实现实时交互,在无网络环境的情况下也可正常运行,并且保护了数据的隐私和安全性,降低运维成本。而在移动端AI模型部署方面,小而快变成了模型推理最渴望的要求之一,因为小的模型可以使得整个应用的存储空间减小;而提高模型的推理速度则可以使得整个模型应用场景的反应速度加快,同时也可以在低配设备上取得很好的效果。因此,模型的推理速度逐渐已经成为了各大AI应用市场竞争力上最重要的评测指标之一。然而往往训练出来的模型推理速度或者尺寸大小不能满足需求,大部分开发者对极致的模型压缩和加速方法又感到困惑。

PocketFlow的出现就是为了解决这个令众多AI应用开发者头痛的问题。

框架开源内容:

PocketFlow框架本次开源内容主要由两部分组件构成,分别是模型压缩/加速算法部分和超参数优化部分,具体结构如下图所示:

模型压缩/加速算法部分包括多种深度学习模型压缩和加速算法:

?通道剪枝(channel pruning): 在CNN网络中,通过对特征图中的通道维度进行剪枝,可以同时降低模型大小和计算复杂度,并且压缩后的模型可以直接基于现有的深度学习框架进行部署。PocketFlow还支持通道剪枝的分组finetune/retrain功能,通过实验我们发现此方法可以使原本压缩后的模型精度有明显的提升。

?权重稀疏化(weight sparsification):通过对网络权重引入稀疏性约束,可以大幅度降低网络权重中的非零元素个数;压缩后模型的网络权重可以以稀疏矩阵的形式进行存储和传输,从而实现模型压缩。

?权重量化(weight quantization):通过对网络权重引入量化约束,可以降低用于表示每个网络权重所需的比特数;我们同时提供了对于均匀和非均匀两大类量化算法的支持,可以充分利用ARM和FPGA等设备的硬件优化,以提升移动端的计算效率,并为未来的神经网络芯片设计提供软件支持。

关键词: [db:TAG标签](1672)

责任编辑:[db:作者]