腾讯 AI Lab 正式开源PocketFlow,让深度学习放入手机!
2018-11-03 18:13:12AI云资讯744
11月1日,腾讯AI Lab在南京举办的腾讯全球合作伙伴论坛上宣布正式开源“PocketFlow”项目, 该项目是一个自动化深度学习模型压缩与加速框架,整合多种模型压缩与加速算法并利用强化学习自动搜索合适压缩参数,解决传统深度学习模型由于模型体积太大,计算资源消耗高而难以在移动设备上部署的痛点,同时极大程度的降低了模型压缩的技术门槛,赋能移动端AI应用开发。
这是一款适用于各个专业能力层面开发者的模型压缩框架,基于Tensorflow开发,集成了当前主流与AI Lab自研的多个模型压缩与训练算法,并采用超参数优化组件实现了全程自动化托管式的模型压缩。开发者无需了解具体模型压缩算法细节,即可快速地将AI技术部署到移动端产品上,实现用户数据的本地高效处理。
目前该框架在腾讯内部已对多个移动端AI应用模型进行压缩和加速,并取得了令人满意的效果, 对应用整体的上线效果起到了非常重要的作用。
项目访问地址:
https://github.com/Tencent/PocketFlow
自2016年腾讯首次在GitHub上发布开源项目(https://github.com/Tencent),目前已累积开源覆盖人工智能、移动开发、小程序等领域近60个项目。
随着移动互联网的普及和AI算法的愈加成熟,移动端AI的需求和应用场景也愈加丰富,如智能美颜,瘦身,手势识别,场景识别,游戏AI,视频检测,车载语音交互,智能家居,实时翻译等。将模型部署在移动端代替服务器端可以实现实时交互,在无网络环境的情况下也可正常运行,并且保护了数据的隐私和安全性,降低运维成本。而在移动端AI模型部署方面,小而快变成了模型推理最渴望的要求之一,因为小的模型可以使得整个应用的存储空间减小;而提高模型的推理速度则可以使得整个模型应用场景的反应速度加快,同时也可以在低配设备上取得很好的效果。因此,模型的推理速度逐渐已经成为了各大AI应用市场竞争力上最重要的评测指标之一。然而往往训练出来的模型推理速度或者尺寸大小不能满足需求,大部分开发者对极致的模型压缩和加速方法又感到困惑。
PocketFlow的出现就是为了解决这个令众多AI应用开发者头痛的问题。
框架开源内容:
PocketFlow框架本次开源内容主要由两部分组件构成,分别是模型压缩/加速算法部分和超参数优化部分,具体结构如下图所示:

模型压缩/加速算法部分包括多种深度学习模型压缩和加速算法:
通道剪枝(channel pruning): 在CNN网络中,通过对特征图中的通道维度进行剪枝,可以同时降低模型大小和计算复杂度,并且压缩后的模型可以直接基于现有的深度学习框架进行部署。PocketFlow还支持通道剪枝的分组finetune/retrain功能,通过实验我们发现此方法可以使原本压缩后的模型精度有明显的提升。
权重稀疏化(weight sparsification):通过对网络权重引入稀疏性约束,可以大幅度降低网络权重中的非零元素个数;压缩后模型的网络权重可以以稀疏矩阵的形式进行存储和传输,从而实现模型压缩。
权重量化(weight quantization):通过对网络权重引入量化约束,可以降低用于表示每个网络权重所需的比特数;我们同时提供了对于均匀和非均匀两大类量化算法的支持,可以充分利用ARM和FPGA等设备的硬件优化,以提升移动端的计算效率,并为未来的神经网络芯片设计提供软件支持。
网络蒸馏(network distillation):对于上述各种模型压缩组件,通过将未压缩的原始模型的输出作为额外的监督信息,指导压缩后模型的训练,在压缩/加速倍数不变的前提下均可以获得0.5%-2.0%不等的精度提升。
多GPU训练(multi-GPU training):深度学习模型训练过程对计算资源要求较高,单个GPU难以在短时间内完成模型训练,因此我们提供了对于多机多卡分布式训练的全面支持,以加快使用者的开发流程。无论是基于ImageNet数据的Resnet-50图像分类模型还是基于WMT14数据的Transformer机器翻译模型,均可以在一个小时内训练完毕。
超参数优化(hyper-parameter optimization)部分可以通过强化学习或者AutoML,在整体压缩率一定的情况下,搜索出每一层最合适的压缩比例使得整体的精度最高。多数开发者对模型压缩算法往往了解较少,调节压缩算法参数需要长期的学习和实验才能有所经验,但超参数取值对最终结果往往有着巨大的影。PocketFlow的超参数优化部分正是帮助开发者解决了这一大痛点,并且通过实验我们发现,其优化结果也要好于专业的模型压缩工程师手工调参的结果。其结构如下图:

PocketFlow性能
通过引入超参数优化组件,不仅避免了高门槛、繁琐的人工调参工作,同时也使得PocketFlow在各个压缩算法上全面超过了人工调参的效果。以图像分类任务为例,在CIFAR-10和ImageNet等数据集上,PocketFlow对ResNet和MobileNet等多种CNN网络结构进行有效的模型压缩与加速。
在CIFAR-10数据集上,PocketFlow以ResNet-56作为基准模型进行通道剪枝,并加入了超参数优化和网络蒸馏等训练策略,实现了2.5倍加速下分类精度损失0.4%,3.3倍加速下精度损失0.7%,且显著优于未压缩的ResNet-44模型;在ImageNet数据集上,PocketFlow可以对原本已经十分精简的MobileNet模型继续进行权重稀疏化,以更小的模型尺寸取得相似的分类精度;与Inception-V1、ResNet-18等模型相比,模型大小仅为后者的约20~40%,但分类精度基本一致(甚至更高)。

相比于费时费力的人工调参,PocketFlow框架中的AutoML自动超参数优化组件仅需10余次迭代就能达到与人工调参类似的性能,在经过100次迭代后搜索得到的超参数组合可以降低约0.6%的精度损失;通过使用超参数优化组件自动地确定网络中各层权重的量化比特数,PocketFlow在对用于ImageNet图像分类任务的MobileNet-v1模型进行压缩时,取得了一致性的性能提升;用PocketFlow平均量化比特数为8时,准确率不降反升,从量化前的70.89%提升到量化后的71.29%。

PocketFlow落地助力内部移动应用AI落地
在腾讯公司内部,PocketFlow框架正在为多项移动端业务提供模型压缩与加速的技术支持。例如,在手机拍照APP中,人脸关键点定位模型是一个常用的预处理模块,通过对脸部的百余个特征点(如眼角、鼻尖等)进行识别与定位,可以为后续的人脸识别、智能美颜等多个应用提供必要的特征数据。我们基于PocketFlow框架,对人脸关键点定位模型进行压缩,在保持定位精度不变的同时,大幅度地降低了计算开销,在本身已经十分精简的网络上取得了1.3 ~ 2倍不等的加速效果,压缩后的模型已经在实际产品中得到部署。

在人体体态识别项目中,PocketFlow更是在满足上线精度的要求下,使得模型推理速度有3倍以上的加速, 为项目的移动端落地起到了决定性的作用。

相关文章
- 腾讯云与阶跃星辰达成战略合作,共塑大模型时代智能座舱新体验
- 发布即适配| 天数智芯全力支持腾讯混元Hy3 preview 开源落地,共推国内大模型产业普惠
- TINNOVE梧桐科技与腾讯音乐共建座舱AI“声学创新实验室”正式挂牌
- 腾讯公司与浙江大学达成深度合作,共建联合实验室培育硬核技术人才
- 腾讯会议发布“天籁智联”协议,面向硬件生态伙伴全面开放
- 腾讯音乐与长安汽车打造首个座舱AI声学技术研发中心 推动车载音频体验迈向生态协同
- 腾讯云与赞同科技深化金融科技合作——技术研讨凝共识 装机实操促落地
- 从Agent 浪潮到组织变革,腾讯云携手业界专家共探OpenClaw时代的安全边界与企业进化
- 腾讯云TVP走进招商局,共探具身智能与 Agent 协同演进新路径
- 新经济企业TOP500连续六年发布,腾讯五年蝉联榜首、比亚迪首进前三
- 腾讯云发布ADP Agent Portal:企业级智能体统一纳管、高效运营
- 腾讯云与聚水潭战略合作 助力电商SaaS全链路智能化与全球化升级
- 大模型智能体行业元年来临,腾讯/阿里/微美全息集体锁定AI+Agent高增长赛道!
- QQ开启AI社区运营新时代,腾讯频道Skill正式上线
- 网络媒体论坛郑州启幕,腾讯以AI为纽带,共建向上向善数字生态
- 腾讯云吴运声:构建实用、可靠、易管的企业级Agent平台,让AI人人可用
人工智能企业
更多>>人工智能硬件
更多>>人工智能产业
更多>>人工智能技术
更多>>- Twinkle x昇腾,率先实现Deepseek-V4系列模型高效训练
- 高德发布鸿蒙首个生成式 UI 开源框架 AGenUI,告别传统 UI 开发模式
- 发布即适配| 天数智芯全力支持腾讯混元Hy3 preview 开源落地,共推国内大模型产业普惠
- Seedance 2.0面向企业公测,豆包大模型日均Token使用量突破120万亿
- 端到端OCR模型第一!百度千帆Qianfan-OCR正式发布
- 云知声Unisound U1-OCR大模型发布!首个工业级文档智能基础大模型,开启OCR 3.0时代
- 基石智算上线 MiniMax M2.5,超强编程与智能体工具调用能力
- 昇腾原生支持,科学多模态大模型Intern-S1-Pro正式发布并开源









