RT-Thread杨武:端侧AI的算法与开发困境,详解操作系统创新方向

智东西(公众号:zhidxcom)
编辑 | 韦世玮

智东西6月9日消息,近日GTIC 2021嵌入式AI创新峰会在北京圆满收官!在这场全天座无虚席、全网直播观看人数逾150万次的高规格产业峰会上,来自产业链上下游的16位大佬共聚一堂,围绕嵌入式AI的软硬件生态创新、家居AIoT、移动机器人和工业制造产业4大版块地图,带来了深入浅出的分享。

在峰会上,多位嘉宾都提到了AI落地场景的碎片化。上海睿赛德电子科技有限公司RT-Thread人工智能总监杨武认为,解决碎片化的最好方法,是采用一套物联网操作系统。

RT-Thread杨武:端侧AI的算法与开发困境,详解操作系统创新方向
▲睿赛德电子人工智能总监杨武

在题为《让设备更聪明:物联网操作系统推动嵌入式AI开发》的演讲中,杨武谈到,当下,随着AI模型本身对算力的渴求直线上升,尽管人们不断用轻量化技术进行模型压缩,但一旦腾出一点点空间,人们就想用它解决更多问题。

在这种背景下,突破算力瓶颈需要专用处理器,AI芯片市场一片火热。但同时,这也导致智能物联产业进一步呈现碎片化态势。对于算法开发者来说,在端侧进行AI开发面临的首要问题,就是上手太难,尤其在算法部署方面力不从心。

为了支持AI算法在嵌入式设备中的便捷部署,睿赛德电子公司推出一套支持嵌入式AI落地的软件包,并更进一步推出RT-Thread AIKit软件包——一套易用、开放的边缘AI落地解决方案,这一方案能让开发者感到集成运用AI算法模型就跟普通代码库一样简单。

以下为杨武演讲实录整理:

一、物联网碎片化带来难题,操作系统的三大发展趋势

物联网很热。我们放到一个更大的时间轴来看,在PC时代,人需要给电脑精确的指令,我们把这些设备连网,再加上移动设备,可以用一种新的UI触摸的方式来让它关注我们需要的活动,把我们的数据和信息放进去。

今天非常方便了,我们做各种事情,无论工作、生活、娱乐、消费都可以在手机上随时随地解决。

如果放眼周边,这个世界跟它还是有很多割裂没有联系起来的地方,我们很希望在下一步,这个世界上一切东西都能为人类活动提供更加智能的支持。

所谓的智能就是设备要变聪明,最简单的办法是装一个芯片,另外联网,这样才能随时随地感知到它,控制它,这样我们就提出了物联网的概念。

物联网这个概念早在1996年就被提出来了,真正大发展在15年以后,近几年它已经非常火了。

这导致的结果是,互联网数据本身就已经是海量数据了,如果到物联网,这个数据量进一步爆炸。如果我们想驾驭好海量数据,很明显要靠人工智能,靠人去处理的话会很吃力。

另外,我们也希望生活能有更加自然的人机交互。例如我今天出门定个闹钟,已经不太习惯去点屏幕,而是直接跟手机说一声“帮我设定一个7点的闹钟”,或是更自然的人机交互,各种设备在观察并支持着我,我甚至不用去说。

再往前走一步,下了班我坐在自己车上,DMS摄像头会看到我的表情,连接上网就能知道我今天碰到的糟心事,于是它给我放了一首舒缓的音乐。

这个世界变得很有意思,一方面很方便,另外一方面也很吓人。为什么吓人?安全和隐私让人担心,尤其自然交互里面需要采集比较多的生物特征,比如人脸、指纹、声纹,这些东西一旦泄漏之后,没办法修改,后果很严重。

RT-Thread杨武:端侧AI的算法与开发困境,详解操作系统创新方向

世界发展的趋势不可阻挡,物联网有一个无比广阔的应用场景,各种地方都需要。

分散而广泛的场景很自然会导致它们需求的设备不同,需要的处理能力不一样,需要占用的智能化资源不一样。同样,这对联网的需求也是不一样的,需要传输的数据量不同,对于可靠性的要求、连接响应的时间都会不一样。

有可能只是偶然传一些数据,关注低功耗,不要占用太多的能量,也可能需要响应非常迅速,比如自动驾驶应用。

这样很自然给开发者出了一个小难题,我做一个设备时用的是这家芯片、这家网络、这种技术栈,当我接新设备的时候,可能还要换一个芯片平台,换一个技术栈,十分碎片化。

解决碎片化问题最好的办法是智能操作系统。裸机的前后台模式已经应对不了业务的复杂程度,操作系统能承上启下对于开发者来说,意味着有标准的API,有标准可重复的软件包生态,各种组件可以拿过来用。

最近各个巨头都在杀进这个市场,我们在这个领域也已经耕耘多年,得到更大的发展机会。

据我们观察,针对这个市场,物联网操作系统有几点发展趋势,一是平台要有一致性,业务开发时有接口一致的平台方便积累和复用。

二是开源中立,过去纷纷扰扰之下大家对这块非常敏感,对于一个厂商关起大门搞的东西,大家都是比较谨慎的态度。

三是生态服务要完整,不是拿来玩的,我是拿来做业务的,最好能让我非常省心且关注我应该要做的这块业务,这样整个工作才能很好地开展。

四是国产化不可逆,这两年特别是华为被限制之后,已经开始有这个趋势了。如果未来国际形势恢复了,我们是不是又能回到全球一体化?如果有人家从80年代就已经开始做,一直持续到现在有了非常成熟的系统,我们是不是还要自己搞或用国产的系统?

RT-Thread杨武:端侧AI的算法与开发困境,详解操作系统创新方向

二、神经网络的端到端优势,对芯片算力提出挑战

大趋势不讲那么多,接下来聚焦今天的主题。人工智能在物联网领域既然这么重要,我们在端侧做人工智能时都会碰到什么样的问题?

人工智能虽然红火了这些年,但它真正业务落地的大舞台就是在物联网端侧AI嵌入领域。这里面有非常庞大的应用场景,分散很厉害。

另外,物联网的设备数量巨大,且还在迅速增长,但服务器能有多少台?通过部署人工智能到设备中,产生的业务量非常惊人。

行业有过一个预测,我们仅仅做设备的预测性维护,使得我们能够提升设备资产利用率,由此在未来五年产生的经济价值大概在2.7万亿美元左右,市场非常庞大。

我讲的AI落地是把AI算法在端侧运行,如果有的设备把采集数据扔到云端,把分析结果拿回来再做一些相应的处理,这是不是人工智能在端侧的应用?广泛来说是的,但这并不难,真正有挑战性的是我们在端侧干的事情。

为什么要在端侧干这个事情?人脸随意被人采集过去,你心里不担心吗?最好数据就在端侧处理完,不要把原始的图片传回去,也不要把特征信息传过去,只要把授权发回到云端,这样比较好。

RT-Thread杨武:端侧AI的算法与开发困境,详解操作系统创新方向

我们讲人工智能是一个很宽泛的词,今天行业主流讲的就是用基于神经网络的深度学习模型,来解决对数据模式下产生的交互感知、信息加工,甚至是基于数据做一些决策判断工作。

神经网络具有端到端的优势,同时也有非常低的门槛,不像过去没有一个非常坚强的数据工具链,基于模式识别很难识别它。

神经网络有个特点是,有多少人工就有多少智能,有多少标注好的数据,你训练好的模型就有多厉害。

当然算法的设计能力是很重要的一环,在算法模型上做整个行业从没有的大差距其实不太容易。但是你有一份非常强悍的数据集,你有可能在某一个细分领域做得非常突出。

更重要的是,神经网络是基于大量的累加运算,大规模的并行运算,对于处理器算力的需求非常高,通用处理器搞不定这个事情。现在摩尔定律的发展已经很平缓了,模型本身对算力的需求还在直线上升,3到4个月模型就能翻一倍。

尽管有更多轻量化的技术压缩它,但每当我们的技术腾出一点点空间时,我们就想用它来解决更大的问题,或者把现有问题解决得更好。

红火的AI芯片市场,互联网巨头们从云端、手机端开始杀进来,芯片厂商不可能错过这一波,还有更多的创业公司涌进来,用自己的理解去创造不同领域的加速产品。其中绝大部分人都是基于传统的计算加速思路,还有一些走的是技术创新思路。

RT-Thread杨武:端侧AI的算法与开发困境,详解操作系统创新方向三、算法端与开发端存在壁垒,通过物联网操作系统统一

很高兴今天刚刚看到知存科技做的存内计算方向,可以落地实物化。还有用光计算,还有神经拟态网络完全模拟人脑的神经网络结构做人工智能,都非常有吸引力,但成熟度上跟基于计算加速的芯片方案比还有一定距离。

因为光有芯片我们用不起来,尤其每一家把芯片搞出来之后,一定要给你一套工具链,换一个平台就得现学一种,这个问题也蛮头疼的。

端侧开发工程师的知识领域,对于处理器、内存、存储等等擅长,但对神经网络、量化、调优就没什么概念,需要现学。而算法工程师对这些东西往往没有足够的概念,却对调优、量化非常熟悉。因此,我们要找一个第三方的人把双方搞定。

目前在产业中实际做产品的那些人,包括接触开发者学习时,首要的问题是上手更难,好多陌生的东西要搞。这里面有一个端侧+AI部署的统计,基本都是还没上手。

有什么解决路径?做人工智能产品基本都是这么一个思路,看准问题—算法—部署上去,跟业务集成一下,运行监控分析。

其中有两个点,一个是算法部署很折腾人,需要把上游的模型转化、量化压缩到比较小,如果从网上找一个开源模型,在我们的目标平台上是跑不通的,甚至不支持格式,你需要熟悉一套东西。

二是即使算法跑起来了,仍然跑得不够快,这是很常见的问题。我们最好在算法设计阶段考量我们的目标是什么,不考虑这个目标平台的算法模型,在部署阶段需要做很大的牺牲,通过裁减、量化,mAP可能降低20%也是很常见的事。

RT-Thread杨武:端侧AI的算法与开发困境,详解操作系统创新方向

那么在产品开发过程中,物联网操作系统供应商该如何做?我们做了很多尝试,我们有一套软件包机制放到平台上,你用一个配置工具把软件包里用得上的相关东西拉下来,就可以使用它。

不过这样明显是不够的,并没有解决刚才说的一系列问题,只是给了你一个软件包可以用起来。虽然像TensorFlow Lite、ONNX、Runtime等都有了,但还是要从数据配编译器等弄起来。

那是不是可以给物联网使用者提供一个更简单的方法,让他不要去面对这种纷繁复杂的碎片化世界,而是看到一个和谐统一的世界?

例如,不管上游用什么训练工具,通过我们的解决方案就能部署到一个目标平台上;只要这个平台跑我们的操作系统,就可以自然地承上启下把碎片化的东西屏蔽掉。

我们希望进一步整理人工智能的相关工作,不仅要让它跑起来,而且在这个目标平台上跑到一个最好的性能。

四、AIkit系统的优势,生态开放发展

基于这样的想法,我们着手做了AIkit,希望在Aikit的加持下,开发产品可以用这样一个流程。

我们拿一个模型,不管买的还是训练的,放到我们的RT-Thread工程里,把格式转换工作做完,我们会提供一套非常薄的封装在Runtime,把数据结果拿回来写业务层的代码就可以了。

我们可能有两种情况,一种是硬件平台已经定了,需要选一个最好的模型,第一个模型跑了效果不理想,我需要尝试第二种模型。我们只需要把第三步重新运行一下,看结果就行,这是非常方便的。

另外一种,我们可能有一组硬件是侯选的,我要评估一下谁跑得最好,需要把这个流程放到不同的平台上。这时我们在第二步会有多个工程,在第四步写的业务代码由于使用我们的标准,可以在项目之间复用,不用每个项目再搞一遍。

整体架构的示意,具体想法给大家解释一下。这个世界碎片化很严重,并不希望在玻璃碴子里面再扔一块玻璃,我们希望把现有的有机整合起来,主要采用两个插件的结构,对不同的硬件平台、不同的软件引擎用插件的形式整合起来,放到大框架里面,很自然给我们的开发者提供非常好的生态。

目前这套插件已经可以拿到了,大家如果有需要的话可以关注使用一下。

RT-Thread杨武:端侧AI的算法与开发困境,详解操作系统创新方向

最后讲一下我们的生态,应该开放,我们一起建设它,不管你是算法模型厂商还是一个硬件厂商,不管芯片还是开发板、核心板,或者做AI加速卡,我们的目标也是把它放到产品里去,让产品的开发者把它用起来。

如果我们是做软件数据服务周边的厂商,最终目的让产品开发者在产品落地场景里把我们的东西用起来,把价值在这个过程中兑现。

我们非常希望搭建一个框架,不管算法模型厂商是否有效推你的产品,我们的生态里将会有一个算法模型市场,如果是芯片厂商,可以按照我们的开源结构做插件,自然就能让整个RT-Thread生态发展起来。

目前我们的生态还是不错的,RT-Thread设备大概在10亿台左右,国内的开发者有10万人左右,还在积极拓展这个社区。

同样,希望关注AI的开发者可以来我们平台上看一看,给我们提出更多需求,哪些是我们现在还没做到位的。

芯片厂商也可以到社区里面发布一些项目,让社区的力量一起参与进来,当然也欢迎来找我们合作。整个世界会在我们的一起努力下变得越来越美好。

以上是杨武演讲内容的完整整理。