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

更大的模型并不总是更好的模型,微型机器学习将是未来的方式

时间:2023-03-19 10:20:31 科技观察

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