一文读懂即将引爆的TinyML:在边缘侧实现超低功耗机器学习
导 读
分布最广的物联网设备往往体积很小、电量有限。它们被作为终端硬件,通过嵌入式传感器采集各种数据;计算能力有限,对功耗极为敏感。这类设备也能实现机器学习吗?一个趋势是,人工智能AI正在加快速度从“云端”走向“边缘”,进入到越来越小的物联网设备中。在终端和边缘侧的微处理器上,实现的机器学习过程,被称为微型机器学习,即TinyML。
分布最广的物联网设备往往体积很小、电量有限。它们被作为终端硬件,通过嵌入式传感器采集各种数据;计算能力有限,对功耗极为敏感。这类设备也能实现机器学习吗?
一个趋势是,人工智能AI正在加快速度从“云端”走向“边缘”,进入到越来越小的物联网设备中。
在终端和边缘侧的微处理器上,实现的机器学习过程,被称为微型机器学习,即TinyML。更准确的说,TinyML是指工程师们在mW功率范围以下的设备上,实现机器学习的方法、工具和技术。
一批企业正在利用TinyML相关的技术与产品,探索如何在这些无处不在的小型设备上,更好的搭载机器学习,以便提高设备的分析能力和运行效率。
TinyML是不同技术领域和推动因素的交集,它位于物联网设备、机器学习和边缘计算之间的结合部,并因为多种驱动力的综合作用,进展很快。
在刚刚过去的2月中旬,TinyML 2020峰会在硅谷举行。英伟达、ARM、高通、谷歌、微软、三星等公司纷纷展示了微型机器学习的最新成果。
这是TinyML峰会的第二届。TinyML 2019峰会共吸引了来自90多家企业的数百名工程师参与,而本届峰会的盛况更是空前,并且得出了很多重要结论:
- 对于很多应用场景,TinyML技术和硬件已经进化到实用性较强的阶段;
- 无论是算法、网络,还是低于100KB的ML模型,都取得了重大突破;
- 视觉和音频领域的低功耗需求快速增长。
TinyML峰会的主办方,是在2019年7月刚刚成立的TinyML基金会,成员不仅包含各大知名企业,还包含GreeWaves、Eta Compute、Esperanto、Xnor、Picovoice等优秀的初创公司。
技术的进步和生态的发展,为TinyML的发展赋予了巨大的动能。目前,TinyML的影响力正在持续发酵,2020年势必将有大批产品和解决方案问世,是一个值得重点把握和关注的领域。因此本文将为你汇总呈现TinyML的全景:
- 什么是TinyML?
- 什么是TinyML即服务?
- TinyML为何重要?
- TinyML的市场规模预测
- TinyML的最新产品有哪些?
- TinyML有哪些应用实践?
- TinyML的相关组织
01 什么是TinyML
机器学习(ML)正在变得越来越小。
正如文初所述,TinyML是机器学习在微控制器上的应用,是超低功耗边缘侧人工智能。
无论何时何地,数据都需要即时可用,这一趋势越来越明显。全球各行各业都在经历由这种需求推动的“数字化转型”。根据IDC的分析,到2025年,全球创建的数据中,超过四分之一的数据在本质上都是实时数据,而物联网实时数据将占这部分数据的95%以上。
大量涌现的数据催生出了一系列全新的技术,机器学习、自然语言处理和人工智能,它们将数据分析从不常见的、追溯式的实践,转变成为战略决策和行动的前摄式推动因素。这些技术可以大大提高各种行业、环境和应用数据分析的频率、灵活性和即时性。同样根据IDC的预测,到 2025 年,属于数据分析的全球数据总量将增长至原来的50倍,达到 5.2ZB;而机器学习所“触及”的分析数据总量将增长至原来的100倍,达到1.4ZB。
目前存在的机器学习可以划分为3种形态,云端ML、边缘ML和TinyML。TinyML正是针对占比超过95%以上的物联网实时数据处理场景。
因此,目前针对不同类型的计算平台,在不同时间创建和使用的数据量,机器学习被较为清晰的划分为3种类型,发挥着各自差异化的作用:
- 云端ML:是指机器学习在企业内部或云端特定计算数据中心的应用。这些云服务器涵盖所有类型,包括公共云、私有云和混合云。此外,它还包括运营控制中心,例如管理电网或电话网络的那些运营控制中心。
- 边缘ML:是指机器学习在不处于核心数据中心的,企业级计算机/设备中的应用。边缘设备包括服务器机房,现场服务器,以及位于各个地区以加快响应速度为目的的小型数据中心。
- TinyML:是指超低功耗的机器学习在物联网各种终端微控制器中的应用。TinyML通常功耗为毫瓦(mW)级别甚至更低,因此可以支持各种不同的电池驱动的设备,和需要始终在线的应用。这些设备包括智能摄像头、远程监控设备、可穿戴设备、音频采集硬件以及各种传感器等等……
再看TinyML的发展现状,从算法、软件、硬件这三个维度分析,TinyML已经进化到“足够好”,可以实际应用的阶段。
TinyML是一个新兴领域,是快速增长的机器学习技术和应用,是一片巨大的、未被充分开发的蓝海。
数以亿计的微控制器和各种各样的传感器结合在一起,在未来可能会激发一些非常有创意、更具实用价值的TinyML应用。
对TinyML做个简单总结:
- What:TinyML是指超低功耗(毫瓦量级)的边缘侧机器学习应用。
- Why:TinyML可以提升大量物联网设备的数据分析和决策能力。
- How:TinyML的实现需要硬件、软件和算法的整体性协同设计。
- When:现在是着手布局TinyML的最好时机。
TinyML蕴含巨大机会,很多刚刚浮现。未来一两年内,这个领域很可能会出现显著进展。
02 什么是TinyML即服务(TinyML-as-a-Service)
接着我们再来看看什么是TinyML即服务。
这是爱立信率先提出的一个理念。
首先,我们需要明确的区分在物联网终端中应用机器学习的两种方式:
- 为物联网终端设备提供机器学习服务
- 在物联网终端设备中内嵌TinyML即服务
这两种表述看似相像,实则不同。
在第一种情况下,为物联网终端设备提供的机器学习服务,一般将所有ML任务都“外包”给边缘设备和云服务器,终端设备则以接收者的身份,“被动”执行由边缘和云端下发的各种任务。
在第二种情况下,物联网终端设备中内嵌TinyML即服务,“主动”参与智能决策与执行。虽然与云端和边缘相比,终端设备的资源非常有限,但TinyML即服务仍旧可以提升终端设备的分析能力,以便其能更好的处理实时物联网数据。
因此TinyML即服务,真正的实现了将机器学习带入到物联网终端。
看到这里,你或许有个疑问:机器学习生态系统非常庞大,而且对资源要求很高。物联网设备那么小,可以执行哪些机器学习任务?
为了更好的回答这个问题,我们先来说说TinyML和云端ML之间的差异,它们分别处于两个截然不同的世界。
上图是从硬件和软件的角度,定性和定量的比较TinyML和云端ML的差异。与TinyML可以调用的资源相比,云端ML简直是“富豪”。为了顺利推进,TinyML必须采用与云端ML不同的思维模式。
在本文最初的三环图中可以看到,TinyML和Linux之间并没有太多交集。大量的物联网设备并没有运行Linux的能力,TinyML无法调用很多成熟的工具、应用和基于容器的虚拟化技术,必须另辟蹊径的解决各种软件、硬件和算法极为缺乏的问题,部署ML服务。
很多公司围绕TinyML付出了各种努力,在后面的部分,我们将会介绍各种TinyML的产品和最新实践。
当然,想要在终端物联网设备中,获得和云端ML同样的体验是不现实的。TinyML主要实现的是推理(inference),也就是把从训练中学习到的能力,应用到实际操作中去。
TinyML想要落地,还需要一整套成熟的架构。爱立信将TinyML即服务的生态系统拆分为3个基本组件:
- 编译器插件接口
- 编排协议
- 推理模块规格
支持这三个组件,表示物联网硬件可以满足实现TinyML即服务的基本要求。下图中更详细的展示了这3个组件之间的相互作用:绿色代表编译器插件接口,黄色代表编排协议和推理模块规格这两个部分。
实现TinyML即服务,需要面对的挑战也是无比艰巨的:
- TinyML不仅需要面临边缘ML的全部困难,而且解决问题的能力更加有限;
- 如何借鉴云端ML的成功经验,顺利推进TinyML在终端中的部署;
- 如何为数量巨大的物联网设备,都能提供TinyML的良好体验。
03 TinyML为什么重要?
看到这里,你应该对TinyML的重要性已经有了自己的评估。
我们再来统一做个梳理。
TinyML的出现,是为了更好的缓解边缘ML和云端ML中,无法突破的多种问题,包括数据隐私、网络带宽、时间延迟、可靠性和能源效率:
- 数据隐私:大量的最终用户非常在意数据隐私,在数据开放与共享方面保持谨慎态度。很多用户不愿意将自己的数据交由第三方云平台和边缘服务提供商,进行存储和管理。很多用户倾向于定义清晰的“本地”物理边界,以保存其关键的生产和运营数据。TinyML尝试在物联网设备上,直接处理和分析受限的敏感数据,保护了数据隐私。
- 网络带宽:很多物联网设备通过窄带物联网NB-IoT或者其他低功耗广域物联网通信协议与网络通信,带宽和数据传输能力极为有限。这些设备有强烈的在本地处理数据的需求,以减少数据的传输,降低网络带宽和传输功耗的压力,避免在终端和边缘设备之间形成带宽瓶颈,影响整套物联网解决方案的性能。
- 时间延迟:随着5G等技术的发展,海量物联网设备将被部署,很多应用场景都对时间延迟非常敏感,希望数据可以被实时传输。TinyML通过将某些机器学习任务转移到设备本身,来进一步减少网络延迟的可能性,
- 可靠性:在偏远地区、海上平台、空间站、极端环境的应用中,网络通信有可能无法保证始终覆盖。因此在这些物联网设备中,具备机器学习能力是一种必要功能。TinyML可以将某些边缘和云端中的机器学习能力移植到本地,提升可靠性。
- 能源效率:许多物联网设备都是电池供电,对于功耗的要求很高。通过极低功耗TinyML的数据分析,减少网络传输的数据量,可以在一定程度上,节约物联网终端中的电量消耗。
因为具备解决多种问题的潜力,有望突破成本、带宽和功耗的限制,因此一经提出,TinyML就获得了广泛关注,并被赋予了较高期待。
04 TinyML市场规模预测
海量的物联网设备位于网络边缘,并且这些设备有越来越小的趋势,因此TinyML的未来发展,具有极大的想象空间。
目前全球有2500亿个微控制器在各地运行,仅2018年一年就售出了281亿个单元,IC Insights预测,到2023年,微控制器的年出货量将增长到382亿个。而且这些微控制器对应的设备,都有变得越来越智能的需求。
换句话说,未来分布在烟雾传感器、心脏起搏器、车载终端中的2500亿个微控制器,有可能可以执行以前只有计算机和智能手机才能处理的任务。
根据SilentIntelligence的预测,在未来5年,TinyML将触发超过700亿美元的经济价值,并且保持超过27.3%的复合年均增长率(CAGR)。
TinyML的市场规模比边缘ML和云端ML都要大。
但是如此巨大的市场,却较难开发。因此TinyML涉及到不同公司的协同,公司之间的商业模式也有本质区别。以TinyML领域的人工智能SaaS服务商SensiML为例,其商业模式如下图所示。
2019年1月,当时成立6年的SensiML被QuickLogic公司并购。根据QuickLogic的财报披露,QuickLogic以全部股票交易方式收购其所有已发行和流通在外的普通股,总价为1,169,752美元。
05 TinyML的最新产品
上图是由Topio Networks整理的边缘智能产业图谱。
边缘ML是个相对成熟的领域,很多企业都在其中精耕细作,他们当中的很多也已经开始了TinyML的尝试。
ARM、高通、谷歌、博世、苹果和微软等公司,正试图加速推进TinyML的落地,将其搭载于各种传感器上。
比如高通推出了超低功耗的always-on计算机视觉解决方案。
该方案具有超低功耗,始终保持开启状态,使用系统电源小于1mA标准锂电池,典型帧率为1-30 fps。
对应的产品Qualcomm® QCC112,已经可以实现商用。
博世推出了用于物联网的MEMS传感器,可实现TinyML应用。
苹果以2亿美元收购了TinyML初创公司Xnor.ai。Xnor.ai致力于开发高效、低功耗的TinyML应用,这些应用不需要强大的处理能力,也不需要连接到云端,而是在设备上处理本地数据。
ARM最近公布了两款芯片设计,它们分别是ARM Cortex-M55和Ethos-U55,可以实现在没有云端连接的设备上,执行机器学习的能力。
ARM认为这两款产品的推出,将会开启终端智能的新纪元。
ARM设想的用例是在智能手杖中的360度摄像头,可以自动识别障碍物并上报主人,或者搭载于高铁中的智能传感器,可以就地识别问题并及时报警,避免延误。
新品的推出将会极大的提升ML推理速度和能源效率。
不过预计相关的芯片,最早要到2021年初才能问世。
除了巨头之外,初创公司在TinyML领域也非常活跃。
GreenWaves公司采用多个RISC-V内核,在超低功耗下实现TinyML应用。其第二代产品GAP9,拥有10个RISC-V核心。其中,一个作为结构控制器,另外9个形成计算集群。这些控制器和计算集群,运行于独立的电压和频率域。并通过支持最先进的FD-SOL处理技术,进一步降低了功耗。
Eta Compute公司的ECM3532适用于低功耗IoT,拥有两个核心,Arm Cortext-M3和DSP。可实现长待机状态下的图像处理和传感聚合,功耗仅为100微瓦。该芯片具有512KB闪存和256KB SRAM,Eta Compute展示的案例包括语音、图像和视频识别,以及在工业传感场景中的应用。
06 TinyML的应用实践
TinyML尚处于应用的早期,在一些领域有了初步实践:
车载应用:Swim.AI在实时数据传输的过程中使用TinyML,通过有效提升传感器中对于实时交通数据的智能化处理能力,减少了乘客的等候时间、交通拥堵的概率、改善汽车的排放并提升乘车安全。
智能工厂:在制造业中,TinyML可以通过启用实时决策,减少由于设备故障而导致的非计划性停机。它可以根据设备状况提醒工人必要时进行预防性维护。
QuickLogic的子公司SensiML在这个领域进行了不错的尝试,基于他们的产品可以快速构建智能传感方案。
并且SensiML已经将TinyML用于工业预测性维护的相关场景中。
对于预测性维护应用的开发人员,SensiML智能化软件工具包的优势在于,它使开发人员能够在数天、数周内构建智能物联网传感设备,而无需数据科学或嵌入式固件专业知识。
该软件包括SensiMLData Capture Lab(数据捕获实验室),这是一个用于收集和整理训练数据集的集成工具。
对于预测性维护,数据集是来自各类传感器的时间序列数据。SensiML人工智能软件工具包分析标记数据,以生成可实施异常检测的分类器算法。然后使用同一工具编译算法以在所选硬件目标上运行,例如微控制器或QuickLogic自己的QuickAI片上系统平台。
智能零售:通过监控店内货架,并在商品数量低于一定水平时,立即发送警报,TinyML可以防止零售端的商品脱销。
智慧农业:农民可能因动物疾病而遭受严重损失。利用搭载TinyML的远程监控设备,实时监测牲畜的心脏、血压、体温,土壤的温湿度等状况,可以帮助农民预测和预防养植物和牲畜流行病的发作。
07 TinyML的相关组织
每项成功的技术,都离不开核心团队和相关组织的推进。
TinyML领域最活跃的组织是TinyML基金会,这是一个由工程师们自发构建的社群,成立于2019年7月,经常进行小型交流,并且每年举办TinyML峰会。
如果感兴趣,你可以通过登录下面的网站,了解关于TinyML基金会和峰会的更多信息:
https://tinymlsummit.org/
----写在最后----
微小的TinyML将会变得很大,这个新生事物正在逐步成型的过程中,需要来自软件侧、硬件侧、算法侧、应用侧等涉及多方的通力协作,才能有效构建完整的生态系统。
关于这个领域的最新进展,我还会持续追踪。
本文小结:
1.TinyML是机器学习在微控制器上的应用,是超低功耗边缘侧人工智能。TinyML通常功耗为毫瓦(mW)级别甚至更低,因此可以支持各种不同的电池驱动的设备,和需要始终在线的应用。