当前位置: 首页 > 科技观察

TinyML:下一轮人工智能革命

时间:2023-03-13 12:33:46 科技观察

人工智能正在从“云端”快速走向“边缘”。TinyML是在海量物联网设备端微控制器上实现的人工智能,有望成为未来几年人工智能在工业领域的重要新应用。边缘设备通常具有有限的计算资源和功率,并且对功耗极其敏感。在此类设备上实施AI模型面临新的挑战并提出新的应用。本文是TinyML系列文章的第一篇,介绍了TinyML概念、技术和未来潜力。以NASA为首的微型化趋势席卷了整个消费电子行业。现在,整个贝多芬作品可以存储在一根针中,并用耳机收听。——NeildeGrasseTyson,天体物理学家和科学评论员……超低功耗嵌入式设备的普及,以及用于微控制器的嵌入式机器学习框架(如TensorFlowLite)的引入,意味着人工智能驱动的物联网设备将成为大规模无处不在。————VijayJanapaReddi,哈佛大学副教授图1设备上嵌入的TinyML概述图模型不是越大越好。本文是TinyML系列文章中的第一篇,旨在向读者介绍TinyML概念及其未来潜力。在本系列的后续文章中,将深入介绍一些特定的应用程序、实现和教程。简介在过去的十年中,由于处理器速度的提高和大数据的出现,我们目睹了机器学习算法规模的指数级增长。最初,模型很小,在本地计算机上运行,??使用一个或多个CPU内核。此后不久,GPU计算使处理更大的数据集成为可能,并且通过基于云的服务(例如SaaS平台(如GoogleColaboratory)和IaaS(如AmazonEC2Instances)),GPU技术变得更容易获得。同时,该算法仍然可以在单机上运行。最近,专用ASIC和TPU提供了大约8个GPU的处理能力。这些设备的发展增强了将学习算法分布到多个系统的能力,以满足越来越大的模型的需求。2020年5月发布的GPT-3算法将模型的大小推向了顶峰。在GPT-3的网络架构中,包含了惊人的1750亿个神经元,是人脑约850亿个神经元数量的两倍多,是Turing-NLG神经元数量的10多倍。Turing-NLG于2020年2月发布,是有史以来第二大神经网络,包含约175亿个参数。据估计,GPT-3模型的训练成本约为1000万美元,耗电量约为3GWh,相当于三个核电站一个小时的输出量。虽然GPT-3和Turing-NLG的成就值得称赞,但它们自然也招致了一些业内人士对AI行业碳足迹不断增长的批评。另一方面,它们也激发了人工智能领域对更节能计算的兴趣。在过去的几年里,更高效的算法、数据表示和计算的想法一直是看似无关的小型化机器学习领域(TinyML)的焦点。在机器学习和嵌入式物联网设备的交叉点,TinyML是一门新兴的工程学科,有可能彻底改变许多行业。TinyML的主要受益者是边缘计算和节能计算领域。TinyML诞生于物联网的概念。物联网的传统做法是将数据从本地设备发送到云端进行处理。一些人在隐私、延迟、存储和能源效率方面对这种方法持怀疑态度。能源效率。数据传输,无论是通过有线还是无线方式,都是能源密集型的,比使用乘法累加单元(MAU)的本地计算高大约一个数量级。最节能的方法是开发具有本地数据处理能力的物联网系统。与“以计算为中心”的云模式相比,“以数据为中心”的计算思想早已被人工智能先驱们提前探讨,并在当下得到应用。隐私。数据传输存在侵犯隐私的隐患。数据可能会被恶意行为者拦截,并且当存储在云等单个位置时,其固有安全性较低。通过将大部分数据保存在设备上,可以最大限度地减少通信需求,从而提高安全性和隐私性。贮存。许多物联网设备捕获的大部分数据都是无用的。想象一下,安全摄像头每天24小时记录建筑物入口。在一天的大部分时间里,相机没有做任何事情,因为没有发生任何不寻常的事情。使用仅在必要时才激活的更智能的系统可以减少对存储容量的需求,从而减少需要传输到云端的数据量。延迟。标准的物联网设备,例如AmazonAlexa,将数据传输到云端进行处理,然后用算法的输出做出响应。从这个意义上说,该设备只是通往云模型的便捷网关,类似于进出亚马逊服务器的信鸽。设备本身并不智能,响应速度完全取决于互联网性能。如果您的互联网连接速度较慢,AmazonAlexa的响应速度也会较慢。内置自动语音识别的智能物联网设备通过减少甚至消除对外部通信的依赖来减少延迟。上述问题正在推动边缘计算的发展。边缘计算的思想是在部署在云端“边缘”的设备上实现数据处理功能。这些边缘设备在内存、计算和功能方面受到自身资源的高度限制,这需要开发更高效的算法、数据结构和计算方法。这种改进也适用于更大的模型,在不降低模型精度的情况下实现机器学习模型效率几个数量级的提升。例如,微软开发的Bonsai算法可以小到2KB,但比通常的40MBkNN算法或4MB神经网络具有更好的性能。这个结果听起来可能微不足道,但如果换一种说法——在缩小10,000倍的模型上实现相同的精度,那是非常令人印象深刻的。这么小的模型可以在具有2KBRAM的ArduinoUno上运行。简而言之,现在可以在5美元的微控制器上构建此类机器学习模型。机器学习正处于十字路口,两种计算范式齐头并进,即以计算为中心的计算和以数据为中心的计算。在以计算为中心的计算范式中,数据在数据中心的实例上存储和分析,而在以数据为中心的计算范式中,处理是在数据的源头进行的。虽然以计算为中心的计算范式似乎即将触及天花板,但以数据为中心的计算范式才刚刚起步。如今,物联网设备和嵌入式机器学习模型越来越受欢迎。预计到2020年底,活跃设备将超过200亿台。其中许多设备可能会被忽视,例如智能门铃、智能恒温器和智能手机,只要用户说话甚至拿起它们就会“唤醒”。本文的其余部分将深入介绍TinyML的工作原理,以及它当前和未来的应用。图2云层次结构图。TinyML示例以前,设备执行的各种操作必须基于复杂的集成电路。现在,机器学习的硬件“智能”正逐渐抽象为软件,使嵌入式设备更简单、更轻便、更灵活。在嵌入式设备上实施机器学习提出了重大挑战,但该领域已取得长足进步。在微控制器上部署神经网络的主要挑战是低内存占用、功率受限和计算受限。智能手机是TinyML的主要示例。手机不断地主动监听“唤醒词”,例如Android智能手机的“你好,谷歌”和iPhone的“你好,Siri”。如果语音唤醒服务由智能手机的CPU运行(主流iPhone的运行频率已经达到1.85GHz),电池将在短短几个小时内耗尽。这样的耗电量让人难以接受,语音叫醒服务大多数人一天最多使用几次。为了解决这个问题,开发人员创建了专用的低功耗硬件,可以由小型电池(例如CR2032纽扣电池)供电。即使CPU未运行(通常由屏幕未点亮表示),集成电路仍保持活动状态。这种集成电路仅消耗1mW的功率,并且可以使用标准CR2032电池提供长达一年的电力。虽然有些人可能觉得这没什么大不了的,但这是向前迈出的非常重要的一步。许多电子设备的瓶颈是能源。任何需要主电源的设备的使用都受到电源线位置的限制。如果在同一位置部署了十几台设备,电源很快就会不堪重负。市电效率低且价格昂贵。将市电电压(例如美国使用的120V)转换为典型的电路电压范围(通常为5V左右)会浪费大量能源。笔记本电脑用户在拔下充电器时对此深有体会。充电器内部变压器产生的热量就是电压转换过程中浪费掉的能量。即使设备自带电池,电池寿命也是有限的,需要经常充电。许多消费电子设备中的电池设计为可以持续一个工作日。一些TinyML设备可以使用硬币大小的电池运行一年,这意味着它们可以部署在一些远程环境中,并且仅在必要时进行通信以节省电量。唤醒词服务并不是唯一可以无缝嵌入智能手机的TinyML应用程序。加速度计数据可用于确定用户是否刚刚拿起手机,进而唤醒CPU并点亮屏幕。显然,这些并不是TinyML可以发挥作用的唯一地方。事实上,TinyML为产品爱好者和企业提供了大量令人兴奋的应用程序,以实现更智能的物联网设备。在数据变得越来越重要的时候,将机器学习资源分配到远程内存受限设备的能力为农业、天气预报或地震等数据密集型行业提供了巨大的机会。毫无疑问,赋予边缘设备执行数据驱动处理的能力将带来工业过程中计算的范式转变。例如,能够监测作物并检测诸如土壤水分、特定气体(例如苹果成熟时释放乙烷)或特定大气条件(例如大风、低温或高湿度等)等特征将极大地促进作物生长生长发育,提高作物产量。另一个例子是带有摄像头的智能门铃,它使用面部识别来确定访客的存在。这将启用安全功能,甚至在有人在场时将门铃摄像头输出到屋内的电视屏幕上,让业主可以了解门口访客的情况。目前,TinyML的两个主要重点应用领域是:关键字发现。大多数人已经对这款应用非常熟悉,“Hello,Siri”和“Hello,Google”等关键词,也俗称“热词”或“唤醒词”。该设备不断收听来自麦克风的音频输入,并经过训练仅响应与学习的关键字匹配的特定声音序列。这些设备比自动语音识别(ASR)更简单,使用的资源也更少。谷歌智能手机等设备也使用级联架构来验证扬声器的安全性。视觉唤醒词。视觉唤醒词使用类似于替换唤醒词功能的图像,通过二值分类表示图像的存在与否。例如,设计一个智能照明系统,当检测到有人存在时打开,当人离开时关闭。同样,野生动物摄影师可以使用视觉唤醒功能在特定动物出现时启动拍摄,而安全摄像头可以在检测到人类活动时启动拍摄。下图全面概述了TinyML机器学习的当前应用。图3TinyML的机器学习用例。图片来源:恩智浦。TinyML的工作机制TinyML算法的工作机制与传统的机器学习模型几乎相同,模型的训练通常在用户计算机或云端完成。训练后处理是TinyML的真正亮点,通常称为“深度压缩”。图4深度压缩示意图。资料来源:[ArXiv论文](https://arxiv.org/pdf/1510.00149.pdf)。模型蒸馏(Distillation)模型在训练后需要改变以创建更紧凑的表示。该过程的主要实现技术包括剪枝和知识蒸馏。知识蒸馏的基本思想是考虑到较大网络内存在的稀疏性或冗余性。尽管大型网络具有很高的表示能力,但如果网络容量未饱和,则可以用较小的表示能力较低的网络(即较少的神经元)来表示。在Hinton等人发表的研究工作中。2015年,从Teacher模型转移到Student模型的嵌入式信息被称为“暗知识”。下图展示了知识蒸馏的过程:图5是深度压缩过程图。图中的Teacher模型是一个经过训练的卷积神经网络模型,其任务是将其“知识”迁移到一个参数较少的小型卷积网络模型,称为Student模型。这个过程称为“知识蒸馏”,用于将相同的知识包含在较小的网络中,从而能够压缩网络以用于更多内存受限的设备。此外,修剪有助于实现更紧凑的模型表示。从广义上讲,剪枝旨在去除对输出预测用处不大的神经元。这个过程通常涉及较小的神经权重,而较大的权重由于它们在推理过程中的重要性较高而被保留。随后,可以在修剪后的架构上重新训练网络以调整输出。图6.蒸馏模型的修剪知识表示的示意图。量化(Quantization)蒸馏后的模型需要进行量化,以便后续训练,形成兼容嵌入式设备架构的格式。为什么要量化?假设ArduinoUno是一个具有8位数字运算的ATmega328P微控制器。为了在Uno上理想地运行模型,模型的权重必须存储为8位整数值,这与许多使用32位或64位浮点表示的台式机和笔记本电脑不同。通过对模型进行量化,将权重的存储大小减少到1/4,即从32位量化为8位,准确率受影响很小,一般在1-3%左右。图7.8位编码过程中的量化误差示意图,将用于重构32位浮点数。图片来源:书《[TinyML](https://tinymlbook.com/)》。由于量化误差),在量化过程中可能会丢失一些信息。例如,值3.42的浮点表示可能在基于整数的平台上被截断为3。为了解决这个问题,一些研究提出了量化感知(QA)训练作为替代方案。QA训练本质上是限制网络在训练期间仅使用量化设备可用的值(详见Tensorflow示例)。霍夫曼编码编码是一个可选步骤。编码可以通过以最有效的方式存储数据来进一步减小模型大小。通常使用众所周知的霍夫曼编码。对模型进行编译量化编码后,需要将模型转换成轻量级网络解释器可以解释的格式,其中应用最广泛的有TFLite(大小约500KB)和TFLiteMicro(约500KB)20KB大小)。模型被编译为内存高效的C或C++代码,可供大多数微控制器使用,并由设备上的解释器运行。图8TinyML应用程序的工作流程图。资料来源:《[TinyML](https://tinymlbook.com/)》作者:PeteWarden和DanielSitunayake。大多数TinyML技术旨在处理微控制器带来的复杂性。TFLite和TFLiteMicro非常小,因为所有非必要的功能都已从中移除。不幸的是,它们还删除了一些有用的功能,例如调试和可视化。这意味着如果在部署过程中发生错误,则很难确定原因。此外,虽然模型必须存储在设备本地,但模型还必须支持推理的执行。这意味着微控制器必须有足够的内存来运行(1)操作系统和软件库;(2)神经网络解释器,如TFLite);(3)存储的神经网络权值和架构;(4)推理过程中的中间结果。因此,TinyML方向的研究论文通常需要给出量化算法的峰值内存使用量,同时给出内存使用量、乘法累加单元数(MAC)、准确率等指标。为什么不在设备上训练?设备上训练引入了额外的复杂性。由于数值精度降低,确保网络训练的足够准确性非常困难。自动微分法在标准台式计算机的精度下近似准确。导数可以计算到令人难以置信的10^{-16}精度,但是对8位数的值进行自动微分会得到不太精确的结果。在反向传播过程中,导数被组合并最终用于更新神经参数。如此低的数值精度,模型的准确性可能很差。尽管存在上述问题,一些神经网络还是使用16位和8位浮点数进行训练。第一篇研究降低深度学习中的数值精度的论文是SuyogGupta及其同事在2015年发表的“DeepLearningwithLimitedNumericalPrecision”。该论文给出了非常有趣的结果,将32位浮点表示降低为16位固定精度损失很小的点表示。但此结果仅在使用随机舍入时适用,因为它会在均值上产生无偏的结果。在NaigangWang及其同事的2018年论文“TrainingDeepNeuralNetworkswith8-bitFloatingPointNumbers”中,使用8位浮点数训练了神经网络。在训练中使用8位值比在推理中更难实现,因为在进行自动微分时需要在反向传播过程中保持梯度计算的保真度以达到机器精度。它的计算效率如何?通过自定义模型可以提高模型的计算效率。一个很好的例子是MobileNetV1和MobileNetV2,它们是已经广泛部署在移动设备上的模型架构,本质上是一种卷积神经网络,通过重铸来实现计算效率更高的卷积运算。这种更有效的卷积形式称为深度可分离卷积。对于架构延迟的优化,还可以使用基于硬件的分析和神经架构搜索等技术,本文不再详细介绍。在资源受限设备上运行机器学习模型的新人工智能革命为许多新应用打开了大门。使标准机器学习更加节能的技术进步将有助于消除对数据科学对环境影响的一些担忧。此外,TinyML使嵌入式设备能够配备基于数据驱动算法的新智能,进而应用于从预防性维护到检测森林鸟鸣的各种场景。虽然继续扩大模型的规模是一些机器学习从业者坚定的方向,但开发在内存、计算和能量方面更高效的机器学习算法也是一个新趋势。TinyML仍处于起步阶段,这方面的专家很少。本文的参考文献中列出了TinyML领域的一些重要论文,推荐有兴趣的读者阅读。这个方向发展迅速,未来几年将成为人工智能在工业领域的重要新应用。敬请期待。