分类
麻省理工学院新闻

该技术使边缘设备上的 AI 能够随着时间的推移不断学习

A cell phone peeks out from the pocket of a person wearing jeans, a belt, and a plaid shirt. In the background and on the cell phone’s screen are stylized connected nodes representing a neural network.

个性化的深度学习模型可以使人工智能聊天机器人能够适应理解用户的口音,或者使智能键盘能够不断更新,以便根据某人的打字历史更好地预测下一个单词。这种自定义需要使用新数据不断微调机器学习模型。

由于智能手机和其他边缘设备缺乏此微调过程所需的内存和计算能力,因此用户数据通常会上传到云服务器,在那里更新模型。但数据传输会消耗大量能源,将敏感的用户数据发送到云服务器会带来安全风险。

来自麻省理工学院、麻省理工学院-IBM Watson AI 实验室和其他地方的研究人员开发了一种技术,使深度学习模型能够直接在边缘设备上有效地适应新的传感器数据。

他们的设备端训练方法称为PockEngine,可以确定需要更新大型机器学习模型的哪些部分以提高准确性,并且只存储和计算这些特定部分。它在准备模型时,在运行时之前执行大部分计算,从而最大限度地减少计算开销并提高微调过程的速度。

与其他方法相比,PockEngine 显著加快了设备端训练的速度,在某些硬件平台上的执行速度提高了 15 倍。此外,PockEngine 没有导致模型的准确性有任何下降。研究人员还发现,他们的微调方法使流行的人工智能聊天机器人能够更准确地回答复杂的问题。

“设备上的微调可以实现更好的隐私、更低的成本、定制能力以及终身学习,但这并不容易。一切都必须在有限数量的资源下进行。我们不仅希望能够在边缘设备上运行推理,还希望能够在边缘设备上运行训练。有了 PockEngine,现在我们可以了,“电气工程与计算机科学系 (EECS) 副教授、麻省理工学院-IBM Watson AI 实验室成员、NVIDIA 杰出科学家、描述 PockEngine 的开放获取论文的资深作者 Song Han 说。

Han与主要作者Ligeng Zhu,EECS研究生以及麻省理工学院,MIT-IBM Watson AI实验室和加州大学圣地亚哥分校的其他人一起撰写了这篇论文。该论文最近在IEEE/ACM微架构国际研讨会上发表。

逐层

深度学习模型基于神经网络,神经网络由许多相互连接的节点层或“神经元”组成,这些节点或“神经元”处理数据以进行预测。当模型运行时,一个称为推理的过程,数据输入(例如图像)从一层传递到另一层,直到最后输出预测(可能是图像标签)。在推理过程中,每一层在处理输入后不再需要存储。

但是在训练和微调期间,模型会经历一个称为反向传播的过程。在反向传播中,将输出与正确答案进行比较,然后反向运行模型。当模型的输出越来越接近正确答案时,每一层都会更新。

由于每一层都可能需要更新,因此必须存储整个模型和中间结果,这使得微调比推理更需要内存

然而,并非神经网络中的所有层对于提高准确性都很重要。即使对于重要的图层,也可能不需要更新整个图层。这些图层和图层片段不需要存储。此外,人们可能不需要一直回到第一层来提高准确性——这个过程可以在中间的某个地方停止。

PockEngine 利用这些因素来加快微调过程并减少所需的计算量和内存量。

系统首先对特定任务的每一层进行微调,一次微调一层,并测量每一层之后的精度提高。通过这种方式,PockEngine 可以识别每一层的贡献,以及精度和微调成本之间的权衡,并自动确定每一层需要微调的百分比。

“与不同任务和不同神经网络上的全后传播相比,这种方法的准确性非常匹配,”Han 补充道。

精简模型

通常,反向传播图是在运行时生成的,这涉及大量的计算。相反,PockEngine 在编译时执行此操作,而模型正在准备部署。

PockEngine 删除代码片段以删除不必要的层或层段,从而创建要在运行时使用的模型的精简图。然后,它在此图形上执行其他优化,以进一步提高效率。

由于所有这些操作只需要执行一次,因此可以节省运行时的计算开销。

“这就像在开始徒步旅行之前一样。在家里,你会仔细计划——你要走哪些路,你要忽略哪些路。因此,在执行时,当你真正徒步旅行时,你已经有一个非常谨慎的计划要遵循,“Han 解释道。

当他们将 PockEngine 应用于不同边缘设备上的深度学习模型时,包括 Apple M1 芯片以及许多智能手机和 Raspberry Pi 计算机中常见的数字信号处理器,它在设备上执行训练的速度提高了 15 倍,而准确性却没有任何下降。PockEngine 还大大削减了微调所需的内存量。

该团队还将该技术应用于大型语言模型Llama-V2。Han 说,对于大型语言模型,微调过程涉及提供许多示例,对于模型学习如何与用户交互至关重要。对于负责解决复杂问题或推理解决方案的模型来说,该过程也很重要。

例如,使用PockEngine进行微调的Llama-V2模型正确地回答了“迈克尔·杰克逊的最后一张专辑是什么?”的问题,而没有微调的模型则失败了。PockEngine 在边缘 GPU 平台 NVIDIA Jetson Orin 上将每次微调过程迭代所需的时间从大约 7 秒缩短到不到 1 秒。

未来,研究人员希望使用PockEngine来微调更大的模型,这些模型旨在同时处理文本和图像。

“这项工作解决了在许多不同行业的各种应用中采用大型人工智能模型(如LLM)所带来的日益增长的效率挑战。它不仅为包含更大模型的边缘应用程序带来了希望,而且还降低了在云中维护和更新大型人工智能模型的成本,“亚马逊通用人工智能部门的高级经理Ehry MacRostie说,他没有参与这项研究,但通过麻省理工学院-亚马逊科学中心与麻省理工学院合作进行相关的人工智能研究。

这项工作得到了麻省理工学院-IBM Watson AI实验室、麻省理工学院人工智能硬件计划、麻省理工学院-亚马逊科学中心、美国国家科学基金会(NSF)和高通创新奖学金的部分支持。

新闻旨在传播有益信息,英文版原文来自https://news.mit.edu/2023/technique-enables-ai-edge-devices-keep-learning-over-time