27

轻量级部署,腾讯优图开源深度学习推理框架TNN

 4 years ago
source link: https://www.jiqizhixin.com/articles/2020-06-10-11
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

从学界到工业界,“开源”已经成为AI领域的一个关键词。一方面,它以“授人以渔”的方式为AI构建了一个开放共进的生态环境,帮助行业加速AI应用落地;另一方面,在解决行业实际问题时持续更新和迭代,源源不断地给AI领域输送重要的技术养料和创造力,可以说开源是AI落地和繁荣不可或缺的源动力。 UVBrYj3.png!web

6月10日,腾讯优图实验室宣布正式开源新一代 移动端深度学习 推理框架TNN,通过底层技术优化实现在多个不同平台的轻量部署落地,性能优异、简单易用。基于TNN,开发者能够轻松将深度学习算法移植到手机端高效的执行,开发出人工智能APP,真正将 AI 带到指尖。

开源地址: https://github.com/Tencent/TNN

轻量级部署,TNN助力深度学习提速增效

深度学习对算力的巨大需求一直制约着其更广泛的落地,尤其是在移动端,由于手机处理器性能弱、算力无法多机拓展、运算耗时长等因素常常导致发热和高功耗,直接影响到app等应用的用户体验。腾讯优图基于自身在深度学习方面的技术积累,并借鉴业内主流框架优点,推出了针对手机端的高性能、轻量级移动端推理框架TNN。

TNN在设计之初便将移动端高性能融入核心理念,对2017年开源的ncnn框架进行了重构升级。通过GPU深度调优、ARM SIMD深入汇编指令调优、低精度计算等技术手段,在性能上取得了进一步提升。以下是MNN, ncnn, TNN框架在多款主流平台的实测性能: JbUBni6.png!webINnieeI.png!webyye2aia.png!webja6BZb2.png!web

TNN在麒麟970、骁龙835、骁龙845,骁龙615平台实测性能数据

注:纵轴单位:ms  测试分支:MNN:1.0.0(2020.05.07), ncnn:20200413, TNN: master(2020.06.10)

测试模型: https://github.com/alohali/benchmark-models

低精度计算的运用对TNN的性能提升发挥了重要作用。在神经网络计算中,浮点精度在许多研究和业务落地成果上都被证明存在一定冗余,而在计算、内存资源都极为紧张的移动端,消除这部分冗余极为必要。TNN引入了INT8、 FP16、 BFP16等多种计算低精度的支持,相比大部分仅提供INT8支持的框架,不仅能灵活适配不同场景,还让计算性能大大提升。TNN通过采用8bit整数代替float进行计算和存储,模型尺寸和内存消耗均减少至1/4,在计算性能上提升50%以上。同时引入arm平台BFP16的支持,相比浮点模型,BFP16使模型尺寸、内存消耗减少50%,在中低端机上的性能也提升约20%。骁龙615平台实测: i6B3Mzm.png!web

MRbM32j.png!web 通用、轻便是TNN框架的另一大亮点。长久以来,不同框架间的模型转换都是AI项目应用落地的痛点。TNN设计了与平台无关的模型表示,为开发人员提供统一的模型描述文件和调用接口,支持主流安卓、iOS等操作系统,适配CPU、 GPU、NPU硬件平台。企业一套流程就能部署到位,简单易用、省时省力。同时, TNN通过ONNX可支持TensorFlow, PyTorch,MXNet, Caffe等多种训练框架,目前支持ONNX算子超过80个,覆盖主流CNN网络。TNN所有算子均为源码直接实现,不依赖任何第三方,接口易用,切换平台仅需修改调用参数即可。

开源文化兴起,AI底层技术助推产业发展

事实上,作为腾讯旗下顶级AI实验室,腾讯优图长期致力于AI基础设施的研发和推进。此前,腾讯优图已开发了Rapidnet 前向计算框架、RapidAIoT边缘计算框架,实现了业界首个专注移动端的推断框架ncnn的开源,并在业界受到广泛推崇。从2017年开源至今,ncnn在GitHub上star(8.9k)和 fork(2.3k)数均领先于其它各大推理框架。

据悉,TNN已于3月中旬在腾讯内部开源,为腾讯QQ、QQ空间、腾讯微视、腾讯云、天天P图等多款产品和服务中持续提供技术能力,释放出更多效能。

“TNN已在GitHub上开源,欢迎业界人士参与协同共建,共同打造更优的移动端推理框架。“腾讯优图实验室副总经理吴永坚介绍,腾讯优图后续将在现有CV业务的基础上研发更多的AI推理模型,如语音、NLP等相关业务,同时开展针对CPU、GPU服务器端的服务,为业界公司提供更广泛的优化服务。 “作为产业发展的高速公路,以深度学习框架、组件为代表的AI基础设施将是未来的主流趋势,腾讯优图也将以此为着力点,助推产业发展。”吴永坚表示,腾讯优图还将持续开发模型训练组件、模型压缩组件、基础算法组件,并择机开源,希望从框架到平台、到算法,打造一体化的AI基础设施,降低AI门槛,加速产业发展。

随着以开源为代表的新代码文化的兴起,腾讯近年来在开源领域表现亮眼:在全球最大的代码托管平台GitHub上,腾讯发布的开源项目已经超过一百个,涵盖云原生、大数据、AI、云计算、安全、硬件等多个热门的技术方向。

通过开源协同,腾讯将各个事业群最底层和共性的技术能力进行梳理和拉通,在业务实践和海量用户检验下,优质的内部开源项目不仅在公司层面推广复用,同时也对外贡献整个开源社区。仅在Github上,腾讯的开源项目就收获了30w+star数,跻身国际上有影响力的开源企业之一。

在开源的道路上,腾讯不仅将内部优质项目持续对外开放,也积极与开源社区协同合作,发挥中国企业的科技力量,推动开源和开放进一步升级。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK