近日,借OPEN AI LAB(开放智能) AI端侧推理框架Tengine-Lite开源之际,同为tengine核心开发者的端侧开源界“四大卷王”齐聚一堂,共话AI。
此次畅聊涉及两方面内容,首先,Tengine-Lite项目负责人圈圈虫为众大咖抽丝剥茧,层层揭开了Tengine-Lite神秘面纱。同时,“四大卷王”也是真情流露,与大家真诚分享了端侧框架的发展之路。
那么,传说中的“四大卷王”究竟何许人也?小编帮诸位准备了人物画像,我们一睹为快~
nihui:
腾讯优图实验室高级研究员,热爱开源社区,系腾讯首个AI端侧开源项目ncnn负责人
派大星:
聚焦深度学习框架领域的自媒体公众号NeuralTalk运营成员,关注AI推理框架性能的开源组织ai-performance成员
大缺弦:
ONNX 成员,convertmodel.com、dabnn、DNNLibrary 作者,一流科技工程师
圈圈虫:
Tengine-Lite的项目负责人,Tengine开源社群负责人
nihui眼中的Tengine-Lite
nihui : 比较好奇Tengine-Lite后续是会完全代替Tengine么? 因为从介绍来看当前Tengine-Lite的功能覆盖了之前Tengine的功能. 是否之后开发者就完全切换到Tengine-Lite上了,Tengine-Lite后续的发展是怎么样的?
圈圈虫:Tengine-Lite的模型格式和Tengine是兼容的,API也和Tengine一致,所以开发者可以无缝的迁移到Tengine-Lite,后面我们也会有序的切换到Tengine-Lite。
nihui :Tengine-Lite 开源的范围有哪些?是全部开源还是部分开源?从介绍来看,Tengine-Lite功能很全面,从CPU/NPU/GPU都有覆盖,包括M核的设备也支持。
圈圈虫:7/6会开源CPU部分,GPU这块如果是ACL的话,应该会很快支持上去,vulkan的支持也在后续计划中。NPU我们有计划去逐步开源,MCU可以说已经开源了。
nihui: GPU上面有没有考虑做OpenCL的优化,感觉之前用ACL的plugin的方式实现性能并不是特别好?
圈圈虫:ACL本身也在不断地更新,如果保持跟进性能应该能维持到一个不错的水平,如果说单独针对OpenCL封装,我们短期内可能不会投入人力去做,毕竟vulkan的支持我们也在同步进行。
nihui: Tengine-Lite 后面会更新到OpenCV-DNN中嚒 ?
圈圈虫:会的,本月我们开源发布之后,会将Tengine-Lite更新到OpenCV中,之前4月份我们Tengine作为Arm上的推理后端集成到OpenCV的主线和4.3以及3.4版本,但是第一版本在性能和稳定性上都还有一些空间,计划在8月会在性能、多线程和稳定性上面有一个提升。
作为国内最早搞端侧开源框架的人之一,nihui对开源框架的发展趋势怎么看呢?
Nihui: 大家做开源就是这样的,后出的总是比旧的更好的一些,长江后浪推前浪,不同的项目,技术特点不一样,用你的话说就是大家一起卷起来,共同推动技术的发展,个人认为这是一个很好的趋势。
我觉得框架后面还是需要有自身特点的,就是所谓的差异化?单纯从性能来看,当前是没有差异化的,因为大家都是开源的,性能你追我赶,差距都不大,从差异化的角度来看,我觉得主要有以下四个方面:
1. 绑定硬件 -- 比如说类似英伟达的TensorRT ,如果你要用英伟达的硬件,那么用TensorRT肯定是最方便最好用的。
2. 绑定平台 – 比如Google 推Android系统,他自己有api ,TF也是Google的,那么之后可能会TF到MLIR到NNAPI直接打通,那么之后用Android就用TF就最方便了,另外比如苹果的IOS上的CoreML也是这样的。
3. 跟训练框架绑定,比如说TF和TF-lite, PyTorch和PyTorch Mobile,但是后续的训练框架的发展趋势也不明晰,是一家通吃,还是各家并行不确定。
4. 结合业务的发展,比如说BAT,他们自家都有框架,然后自己的框架基本都是自家在用,也因为自己的框架对自己的业务是最熟悉的,这也是一个差异化,结合业务落地也是一个最强的刚需。
大缺弦眼中的Tengine-Lite
大缺弦:想了解下Tengine-Lite之后的发展方向?Tengine-Lite的编码实现由C++切换到C语言,那后续Tengine-Lite后续的方向是主要在嵌入式平台上发力么?
圈圈虫:将编码实现切换到C语言之后,我们会主打嵌入式设备,并且会联系国内嵌入式平台推广,包括 liteos这样的系统,我们会做一些适配,让嵌入式平台上AI的开发更加的便利。
大缺弦:普通的Android设备呢? 会继续关注和支持么?
圈圈虫:会的,Android也是一种典型的嵌入式的系统。
大缺弦:贵团队的KPI是什么呢?你们有商业也有开源,那开源这块占比是个什么样的呢?
圈圈虫:哈哈,我们并不存在KPI的约束,当前我们的主要关注点还是Tengine-Lite 开源的关注度,在业界实际落地的流量,以及能真正给开发者赋能,达到让大家AI开发落地更方便便利的目的。
大缺弦:在打造社区上Tengine-Lite有什么想法吗?从之前来看Tengine对社区的投入有限?
圈圈虫:后续我们会持续加大对开源社区的维护和投入,Tengine-Lite的研发人员也会加入到开源的推广和维护中。之前我们开源这块维护力量薄弱,起步较晚,后面我们会更多投入资源去推广开源,包括我们的市场部的同事们也会积极的去做这一块的工作,会有更多的福利给到Tengine-Lite的开发者。
大缺弦: 说个我本人的建议,之前我有接触到一个社群,他们是发布了一个口罩模型,这个模型特别火爆,然后他们同时在上面加了qq群的链接,之后群就立马繁荣起来了,Tengine-Lite后续有没有类似的社群运营策略和计划?
圈圈虫:感谢大老师的建议,这块我们当前也已经开始在做了,我们在GitHub上有几个仓库有一些应用案例,包括人脸、语音识别等;后面我们会重点针对NPU、MCU、RTOS这块的一些应用,甚至包括特定场景的超分算法等。
最后, 大缺弦对Tengine-Lite还有一个期待: 我希望Tengine-Lite多推出一些完整的解决方案demo,这样会吸引不少人,因为从MXNet来看,当前训练领域已经很少人用了,但是因为insightface是使用MXNet的,所以当前在人脸领域MXNet应用还是很广的。
在开源AI框架、开源项目层出不穷的今天,怎样才能做到脱颖而出呢 ?大缺弦这么看
大缺弦: 我个人觉得Tengine-Lite想有优势,要从差异化里面找出路,主要是两点,一个是对嵌入式芯片或者NPU这块和硬件的一个绑定,另一个就是up主(指nihui)经常说的伸(bai)手(piao)项目,解决行业落地的一些应用或者方案,这样能有差异化,吸引大家关注和使用Tengine。
后续端侧框架发展会是一家独大,还是百家争鸣?
大缺弦:现在好多框架都是公司推出的,这种情况下肯定不会中途放弃,所以到最终一家垄断可能性不大,后续会是大家不断学习,每家都会做一个大而全的框架,以后趋势应该会是这样。
派大星眼中的Tengine-Lite
派大星:如果全部切换到Tengine-Lite,那么Tengine之前的底层加速库会迁移过去么?性能会有影响么?从算子和kernel层面来说切换成本会不会很高?
圈圈虫:算子我们已经迁移完毕了,kernel这块因为之前设计考虑到了模块的解耦,所以迁移难度和工作量都可控,当前已经完成了,迁移之后Tengine-Lite的和Tengine基本一致。
派大星:怎么看待当前的已经有的micro-tvm , mace-micro 版本?
圈圈虫:这个也不冲突,不管是TVM,还是mace都会给开发者更多的选择,而且不管是TVM还是mace也都是针对C++平台,Tengine-Lite是C的框架,平台之间的迁移成本会更低,比如MCU之类的芯片平台和RTOS之类的操作系统。而且考虑移植到RISC-V类的芯片上,目前RISC-V主流还是MCU Level的核,通常也并不支持C++的环境,那么就可以用Tengine-Lite进行部署。
派大星:Tengine-Lite会和硬件厂商,比如说risc-v的合作吗 ?
圈圈虫:我们对risc-v的支持已经做了蛮久了,后面我们也会针对risc-v做一些开源的案例,但是当前risc-v有一个问题是碎片化还比较严重,比较零散。
派大星对Tengine-Lite的期待:
派大星:从开源的角度来说还是最基本的一些功能,比如说编译,一键编译部署简单,然后最好有一些展示demo。
现在端侧的框架越来越多,每家都有各自的benchmark,但是却没有一个专业的第三方的评测机构能对各个框架有一个公平的评测,派大星对当前的评测现状有什么想法?
派大星:大家可以一起组织一个开源的repo,共同提交代码去评测,指定一个大家都能接受的标准。
当前开源AI框架、开源的项目层出不穷,派大星是怎么看待的呢?
派大星:我觉得做端侧框架,还是要把握住开发者流量的入口?我当前看来主要有三类:
1, 框架开发者是一类
2, 算法工程师与部署算法的工程师是一类
3, 传统行业的开发者、有落地需求、但是对AI技术不了解
从这三类人员来看,后续可能会收敛到第一、第二类,之后他们主要在乎的可能就是模型转换工具和模型可视化,这两个长期来看可能是流量的一个入口 。
在派大星眼里端侧推理框架最重要的点是什么?易用性?性能?快速迭代响应?还是生态 ?
派大星:速度大家已经基本上都是一个80分以上的水平,再往上走就比较难了,而且吸引力也不足,我的建议还是要差异化,这才是别人选择的一个重点。Tengine是一个商业框架,这个点也是一个很好的竞争点,当前来看MNN、ncnn、TFLite都还没有,肯定是有这样的类似的需求,前天看到还有一个XXCEO在ncnn社区提issue说需要商业支持,他们分割模型跑的慢。
后续端侧框架的发展会是收敛到一家独大,还是百家争鸣的状态?派大星这么看:
派大星:我感觉后面模型转换可能会更好的蓬勃发展,大致的意思是后续会从部署到工具链侧有一个迁移。
端侧推理框架的落地趋势是往硬件NPU侧收敛,还是会是算法的低比特聚拢 ? 圈圈虫这么看:
圈圈虫:这个就是一个魔高一丈道高一尺的状态了,为什么会有NPU,是因为业务对算力需求越来越大,传统的硬件(CPU\GPU)满足不了成本和性能的需求,所以就有NPU出现,但算法也是在不断迭代的,NPU这种高定制ASIC芯片或者比较潮的词叫Software-defined Hardware,并不能改变芯片开发的周期太长(~24个月)和算法迭代的周期短(~1个月)这一根本矛盾,这里面会有GAP,要么就是用NPU开发选择比较过时的算法,新颖的算法部署在NPU上会有问题,所以短期来看是齐头并进的。
以上就是本次开源界重量级的几位大佬的细谈,非常感谢大佬们的参与,相信大家看完之后对Tengine-Lite又有了不少的期待吧~毫无疑问,对广大开发者来说以后的AI开发一定会越来越便利和方便,所以别怀疑了, Tengine-Lite的github(https://github.com/OAID/Tengine) 等你点亮!
扫码添加OPEN AI LAB小助手,咨询产品/技术问题&加入技术交流群,和社群技术大佬畅聊AI
OPEN AI LAB(开放智能)专注边缘智能计算及应用。自主知识产权的边缘AI推理框架Tengine于2017年在GitHub开源,开源链接为https://github.com/OAID/Tengine?csdn欢迎大家Star、Watch、Fork三连支持~~
ps:Tengine与OpenCV进行了深度战略合作,已通过ONNX官方认证,也被CSDN评为“开发者最喜爱的本土 AI 框架工具”!