中文 英语

为什么TinyML如此重要

令人惊讶的是,并不是所有的事情都需要大量的计算能力来做出重要的决定。

受欢迎程度

虽然机器学习(ML)开发活动最明显地集中在云端的大功率解决方案或边缘的中等功率解决方案上,但还有另一组活动旨在在资源严重受限的系统上实现机器学习。

它被称为TinyML,既是一个概念,也是一个组织——在过去的一两年里,它获得了巨大的发展势头。

“TinyML的部署正在推动ML部署的巨大增长,极大地加速了ML在各种设备中的使用,并使这些设备更好、更智能、更能响应人类交互,”微软产品营销副总裁Steve Roddy说手臂微软的机器学习小组。

只有这么多的应用程序可以在内存和计算能力有限的系统上实现,其中一些将由电池供电。但对于这些应用程序,TensorFlow Lite有一个专门的版本,还有一个不断涌现的新想法,可以用更轻的空间实现复杂的逻辑。

基于人们对复杂事物的极度关注边缘推理平台和数据中心的原始力量,试图在一个简陋的平台上做同样的工作似乎是愚蠢的。然而,越来越多的人正在这样做。那么TinyML是一个新的硬件平台吗?软件工具?全新的人工智能方法论?以上都不是,每一种都有一些。

TinyML似乎有两件事。非正式地说,它是关于让机器学习在资源受限的系统上工作,这些系统非常小,甚至可能没有运行完整的操作系统(OS)。“TinyML只是在受限设备上进行机器学习的一个名字,”TinyML的产品营销经理艾伦·沃森(Allen Watson)说Synopsys对此

从形式上看,TinyML基金会是一个由谷歌和高通公司的个人发起的社区,它经常赞助在线聚会和年度会议,分享解决这些棘手问题的新想法和方法。

Synopsys的软件工程经理杰米·坎贝尔(Jamie Campbell)说:“TinyML.org这个组织实际上只是一个对这类应用程序感兴趣的人可以来分享想法的地方。”

专注于轻应用
TinyML背后的驱动因素是这样一个概念:有些问题不需要数据中心服务器,甚至不需要花哨的边缘平台来解决。也就是说,这并不是说他们已经发现了如何在Arduino板上做所有事情。相反,它是关于寻找可以通过这种方式解决的问题,改进解决方案,并推动真正需要更强大计算的边界。

Arm的Roddy指出:“在设备电池电量、网络带宽和将数据传输到数据中心的时间方面,仅在云中进行的ML可能会非常昂贵。”“所有这些成本都可能限制ML的广泛采用。TinyML使ML能够在全球范围内完成,因为ML推断可以在生成数据的设备上进行。”

在许多情况下,可以在分层方法中使用节俭的部分解决方案,其中一个小的、始终在线的功能块决定何时关注,以便更强大的硬件和软件可以发挥作用。更强大的边缘解决方案甚至可以作为将大问题发送到云端进行解决的一层。

一个很好的例子就是声音检测,它可以用来检测是否听到了声音。这是一个足够小的问题,不需要太多的计算。如果一个小引擎确定这是一个声音,那么它可以唤醒更多的电路,看看所说的是否是一个“唤醒词”。如果事实也是如此,那么整个说出的短语就可以发送到云端进行解析。

Synopsys的坎贝尔说:“想象一下,通过向云端发送持续的音频数据流,你将消耗多少互联网带宽。“他们会说,‘让我们在设备上进行简单的处理,节省大量带宽。TinyML通常适用于第一步,即始终在线检测。”

另一方面,人们听到的可能是玻璃破碎的声音,这可能表明家中存在安全问题。在这种情况下,可以立即发送警报,而无需来自云的进一步干预(即使警报实际上是通过云通信的)。

对于图像,尤其是流媒体视频,这一点更加明显,其中的数据量可以迅速压倒边缘设备。“把所有东西都发送到云端是没有意义的,”腾讯软件和工程高级副总裁王成说Flex Logix.“有太多的摄像头和太多的数据,无法有效地处理一切。延迟要求非常严格,带宽要求太高。你必须有一个离设备更近的东西,在那里你不能在蜂窝或无线网络上做任何事情。这是第一批处理。一旦第一批智能被建立起来,无论从中产生什么,都只会偶尔给你带来有趣的结果。在一帧中绑定对象所占用的数据比实际的原始视频要少得多。之后的机器消化经过处理的数据要比消化原始数据容易得多。”

TinyML是正在开发的解决这个问题的方法之一。

TinyML的动机
TinyML基金会董事会主席、高通高级工程总监Evgeni Gousev是TinyML的创始人之一。“基于云的ML有三个基本问题,”他说。“一个是能源效率。其次是延迟。第三个问题变得越来越重要,那就是隐私,因为每个人都很关心老大哥。”

TinyML的另一个动机是,AI设计的许多方面往往涉及孤立的专业竖井,而且每个竖井都是独立工作的。

TinyML基金会主任Marian Verhelst说:“这激发了我们的想法,我们应该把更多的硬件设计师、算法设计师和应用程序设计师聚集在一起,(因为)这里有太多孤立的领域。”

为了把AI塞进小系统,所有东西都必须一起优化,所以这种组织打破了孤岛,让所有玩家都有机会一起工作。

但是考虑到这么多人都在努力研究高性能的解决方案,谁又能指望一个小型嵌入式系统来处理这类问题呢?尽管工程师们一开始就问了这个问题,但他们发现,你可以用很少的钱做比你预期的更多的事情。

目标平台
数据中心人工智能解决方案依赖于大量的服务器集合。这些服务器都可能利用高端微处理器,但更有可能调用专用的ML加速器。这样的系统处于TinyML正在处理的频谱的另一端。

但即使是边缘的解决方案正在进入市场的产品往往涉及精心设计的硬件架构,通常作为主机处理器的加速器运行。该主机处理器可能与加速器硬件共享芯片,或者加速器可能假定主机位于系统中的另一个芯片上。

这样的系统的目标是提供大量优化的计算和对大量内存的有效访问,在这些内存中可以存储大型ML模型,以便在处理期间进行检索。这需要复杂的软件和操作系统,可以根据需要提供对各种文件和动态内存的访问。

但这仍然远远超过TinyML系统可能拥有的资源。目前声明的意图是针对基于微控制器的系统。微控制器是这种小型系统上唯一可用的处理元件。Tensilica音频/语音IP的产品营销组总监Yipeng Liu表示:“我们的目标是减小机器学习的大小,直到它适合微控制器。节奏

在这样的系统中,内存将受到限制,计算能力也将受到限制,时钟频率远低于千兆赫范围。重要的是,可能没有完整的操作系统。这严重限制了可以做的事情——或者这意味着用应用软件中明确工作的代码取代操作系统服务。

在典型的ML处理中,“生成的模型是一个文件,”Liu说。“如果您正在使用RTOS,您将没有文件系统。如果没有文件系统,嵌入式设备就很难读取文件。所以你必须把这个文件转换成可以在MCU上编译成代码的东西。”

随着加速器为这些小型设备服务的发展,它们可能会从MCU中接管大部分繁重的工作。但是这样的加速器需要在低功率范围内。

TinyML基金会的Verhelst指出:“这是我们第一次开始在毫瓦甚至更低的功率预算内定制人工智能芯片,真正为TinyML优化。”

而这仅仅是个开始。英特尔IoT、计算和安全产品营销经理Sree Harsha表示:“未来五年的芯片预计将具有非常出色的ML功能,具有相同的功耗,并具有专用加速器,可以打开基于视觉的应用程序。英飞凌

用于资源受限系统的ML引擎
如今,这些系统往往是简单的平台,如Arduino和树莓派。这意味着解决方案通常不能依赖于专门的硬件来帮助解决问题。这更像是一个软件问题。

处理大多数AI模型的关键是像TensorFlow这样的引擎。TensorFlow和其他类似的工具在数据中心运行,可以访问所有必要的资源,以尽快解决大问题。对于推断,TensorFlow解释模型,保持较高的抽象级别。这使得研究不同的模型和快速实现所选择的模型变得更容易,而且软件开发更少。

对于边缘平台,TensorFlow已经被改编成TensorFlow Lite。该引擎可以在边缘系统上工作,这些系统访问的资源比数据中心少。“边缘”的确切含义是不同的。对于一些人来说,它意味着“核心网络的边缘”,核心网络通常是作为互联网网关的内部服务器。这样的系统可能装备良好,但不提供云的向外扩展功能。

但真正的优势——网络中的终端节点——不太可能访问这些资源。这可能会限制他们运行TensorFlow Lite的能力。

虽然有些开发人员选择在有时称为“图降低”的过程中将他们的解决方案编译为本机代码,但许多人仍然选择解释方法。解释器的效率不如本机代码,但它们提供了便利性、抽象性和灵活性。就像在数据中心一样,它们以牺牲一些性能为代价简化了软件开发任务。

TensorFlow Lite仍然假设至少有一个操作系统,用于检索包含抽象模型的文件,以及用于存储模型、参数、部分计算或其他在计算期间可能需要驻留在系统中的任何东西的内存分配。

一个更小的TensorFlow Lite
TinyML的目标系统不具备这些,所以TensorFlow Lite再次被修改为TensorFlow Lite for microcontroller。虽然这仍然是一个解释器,但它不再依赖于文件系统和动态内存分配。它提供了比本机代码高一级的抽象。

模型不是放在一个单独的文件中,而是编译成一个C字节数组,该数组可以存储在程序的只读部分中。这使程序可以访问它,而不需要程序读取外部文件。

如果需要内存管理,则需要手动技术来分配和使用内存,而不是依赖于操作系统。任何C或c++库在编译时都是静态链接的,因此没有必要保持动态库。

结果是在Arm Cortex M3系统上,一个占用不到16kb内存的小型解释器。

除了简单地限制模型尺寸之外,还有更广泛的限制。微控制器的TensorFlow Lite不支持完整的TensorFlow操作集。而且它必须被“移植”到单个设备上,这意味着在任何给定的时间,支持的处理器都可能是有限的。

可以一直编译到本地代码,这在性能和功耗方面都更有效。“如果你只是把所有东西都编译到控制器上,即使是在裸露的金属层面,它也会更节能,”阿努普·萨哈(Anoop Saha)说西门子EDA

现在的问题是,它能发展到什么程度。Verhelst说:“越来越多的人试图把运行时取出来,特别是在资源非常低的环境中,因为它占用了太多kb,然后你就没有足够的时间来建立网络了。”他指出,由于每个系统可能都有自己的编译流程,编译可能会很复杂。“人们试图创建一个专用的编译链,你可以预编译,下载到你的系统上,然后执行预定义的流程。但这通常需要在编译工具链上进行大量的工作。”

人们正在努力寻找标准化这些流的方法,这将消除编译方法中的一些摩擦。“你可以重用现有编译器工具链的一部分,并插入一个自定义后端,”她解释道。

对于最初在TensorFlow以外的框架上开发的模型,可以使用开放神经网络交换(ONNX)格式使模型适应微控制器的TensorFlow Lite。

图1:不同版本的TensorFlow在不同的系统上运行。ONNX可以作为其他培训框架的桥梁。本地代码也是边缘实现的一个选项,而不考虑资源限制。资料来源:Bryon Moyer/Semiconductor Engineering

专注于推理
虽然许多ML引擎允许推理和训练——特别是在云中,但大多数边缘设备只做推理。这对于执行AI任务而不是参与AI模型开发的系统来说是一个自然的选择。

这意味着边缘系统将在云中开发,然后在边缘实现——尽管对于一些较小的系统,可能会在配置良好的桌面系统上运行培训。但这是假设一个模型只训练一次,然后执行的过程。这里有一个增量学习的概念,即边缘系统可以进行正常的推理工作,同时利用它看到的数据来改进自己的算法。

考虑到这些系统可能太小,无法处理训练方面的问题,它们可能需要连接到一台更强大的计算机(或一组计算机),无论是在本地还是在云中,以处理训练任务。

英飞凌的Harsha说:“这意味着你最终会得到在边缘运行良好的好模型,但如果没有某种形式的云连接,就不一定能适应新的数据。”“我们期望采用一种混合方法,即模型将在边缘运行,一小部分数据将被发送到云端,以便在产品的整个生命周期内不断改进模型。”

如果没有增量训练能力,这样的系统将需要依靠空中(OTA)更新来改进模型。在可以处理文件的系统中,这可能意味着简单地将一个模型替换为另一个模型。但是,如果将模型作为字节数组编译到引擎中,则会变得更加复杂。那么整个程序将需要被替换——不仅仅是模型数据。

在TinyML世界中开发应用程序
众所周知,为在数据中心中使用而创建的模型在移植到边缘时将会受到一些影响。至少,浮点表示更有可能被量化为某种整数格式。人们普遍认为,这样的步骤可能会降低模型的准确性。工程师们经常努力重新训练和迭代,以恢复或最小化失去的准确性。

tinyml大小的系统在更大程度上可能也是如此。这就提出了一个重要的问题:如何知道哪些应用程序可以在小型嵌入式系统中合理地处理?

“你不可能在一个小小的微控制器上运行大型机器学习模型,”Synopsys的沃森说。“所以有些事情它能做,有些事情它不能做。”

一个可行的假设是,开发人员将不会从头开始创建模型。“这是数据科学家的工作,”坎贝尔说。“而且他们没有使用嵌入式设备。他们使用大型工作站来设计模型,训练它,并获得他们想要的准确性。”

挑战在于采用已知的模型。在TinyML世界中,这些模型通常是公开共享的,因此可能会有现成的模型。

然而,仅仅因为一个人得到了一个适用于他们的受限系统的模型,并不意味着它适用于所有人。分析工具允许开发人员了解模型的资源成本。了解所选处理器的功能和可用内存有助于确定给定模型是否可以在给定系统上工作。

坎贝尔说:“你通常对你想要运行的网络有一个想法。“你可以分析它,并计算出它需要多长时间。你也知道你所选择的特定设备,所以你可以进行估计,并说,‘如果我以这么多兆赫的频率运行SoC,我将能够每秒对这个特定的图表进行这么多推断。’”

还有其他的考虑。“除了性能,还有内存大小,”沃森补充道。“你就能估计出这个模型需要多少内存。”

这一决定必须在系统上运行的所有软件的全面视图下进行,而不仅仅是ML。其他系统必需品,如安全性,本身就会增加资源的负担,所以所有这些都必须放在一起。

扩散和民主化
TinyML系统可以处理的应用程序的范围正在不断扩大。这种增长部分来自于计算方式的改进。由于摩尔定律和超过摩尔的努力,在这一水平上可用的计算能力正在不断增加,其中一些来自——并将继续来自——。

“由于摩尔定律,每隔几年我们就会有更强大的芯片,”萨哈说。“所以如果你只是等待,我们将能够在微型设备上运行算法。”

目前,典型的应用包括活动监控、手势识别、电机和暖通空调系统的预防性维护,以及基本的音频事件,如识别唤醒词或特定的声音,如打碎玻璃或婴儿的哭声。

MLperf是开发ML基准测试的组织,它有一个“Tiny”小组,该小组已经分离出来,以定义适合tinyml大小的系统的基准测试。先前的基准测试需要太多的资源,因此进一步的工作应该能够在这些极小的系统中比较ML结果。第一个基准测试刚刚出炉。

在TinyML的保护伞下,有许多方面的工作正在进行。在每周一次的会议上,成员展示的工作可能包括自动化任务的新工具、新的优化方法和新的优化模型。

整个运动的部分动机来自于这样一种认识:对于开发ML来说,数据为王,谁拥有最好的数据,谁就可以开发最好的模型。这让谷歌和Facebook等公司拥有了完全主导这项技术的巨大权力。

“这就是Big AI所创造的,”古塞夫说。“他们造成了这种不平等的差距。大公司拥有数据,他们有自己的服务器,所以他们基本上控制着世界。”

TinyML的努力在一定程度上是为了让人工智能民主化。它为小公司,甚至个人开发人员带来了工具、知识和资源,使他们有机会对抗AI巨人。

古塞夫说:“他们在当地经营,而不是由经营农场的人、经营超市的人或经营工厂的人拥有整个产业。”“任何没有数据科学或特殊数学培训或特殊编程背景的人都可以开发自己的东西。”

有很多大卫也意味着市场分裂,因为许多小公司都在竞争。有趣的是,它暗示了一个真正的自由市场,有众多的参与者,没有一个人能通过单纯的规模强加来占据主导地位。每家公司都必须根据自己的优势取胜,开发者将有一系列的工具和平台可供选择。

但碎片化也有其弊端。Saha指出:“TinyML的问题在于,市场是如此分散,以至于在经济上不可能制造一款物联网专用芯片。”根据他的说法,这可能意味着用更小的子系统芯片组成系统,比如无线电或安全系统。

谈到ML,他指出:“更好的选择是建立一个加速器,这将更便宜,成功的机会也更高、更好。”

虽然TinyML听起来像是一个业余爱好者在下班后使用的平台,但许多大公司都有全职人员在TinyML项目上工作。它主要是由专业人士推动的,而不仅仅是修补匠。

Gousev预测:“下一个阶段将是规模化。”为了扩大规模,你需要有杀手级应用程序。”

接下来是什么
虽然现在有很多开发基本技术能力的活动,但没有迹象表明该组织很快就会宣布“任务完成”。随着技术的成熟,人们的注意力可能会集中在业务上,以及利用所学知识的其他方法上。

Gousev说:“我们有算法开发人员、生态系统开发人员、软件开发人员和应用程序开发人员,所以重心将从技术转移到业务应用方面。”

然而,即使在技术领域,工作仍将存在。Verhelst说:“挑战已经够多了。“而且动力总是会越来越小。”

一旦毫瓦功率范围被征服,就会出现100nW范围,然后是10nW范围,看不到尽头。外形因素也可能缩小,从而收紧限制。新的应用将带来新的需求。

所有这些都可能会让TinyML的工作持续很多年,并产生一些真正的影响。Harsha说:“我们完全希望TinyML能够塑造下一代边缘设备的架构。”

相关的
理解新的边缘推断架构
如何驾驭大量令人困惑的选择和术语。
边缘推理架构激增
是什么让一个人工智能系统比另一个更好取决于很多不同的因素,包括一些不完全清楚的因素。
处理器计数停止了吗?
芯片是否已经达到了可以有效利用的处理器核数量的平台期?可能是的,直到您改变编程模型。



1评论

Huw Davies @Trameto.com 说:

TinyML的工作功率为毫瓦及以下,为使用微能量收集和新型PMIC器件的无电池操作提供了巨大的机会。

留下回复


(注:此名称将公开显示)

Baidu