想象一下,你有一个非常棘手的拼图要解决,但只有一张极小的书桌可供工作。这个拼图是“深度神经网络”(一个复杂的 AI 大脑),而你的书桌是“微控制器(MCU)”——一种小巧、廉价的计算机芯片,存在于从烤面包机到智能传感器的各种设备中。
问题在于,拼图对于这张小书桌来说太大了。即使拼图块(模型的“权重”)能装进你的口袋,但解决它需要你在书桌上铺开大量临时笔记(称为“中间激活值”)。你的书桌太小了;笔记溢了出来,任务因此失败。
本文提出了一种巧妙的解决方案:不要试图在一张书桌上解决整个拼图。相反,召集一群朋友,每人拥有一张自己的小书桌,共同协作解决它。
以下是作者如何实现这一点的简明解释:
1. 旧方法 vs. 新方法
- 旧方法(粗略分割): 想象试图通过给一位朋友拼图的上半部分,给另一位朋友下半部分来分割拼图。但即使“上半部分”对于一张小书桌来说仍然太大。这种方法之所以失败,是因为碎片仍然过于庞大。
- 新方法(细粒度分割): 作者意识到需要将拼图切割成更小、一口大小的碎片。他们不是按“层”(大块部分)分割,而是按单个神经元(网络内部的微小节点)进行分割。
- 类比: 想象一幅巨大的壁画。你不是给一位艺术家整面墙去绘制,而是只给他们墙上的一平方英寸。你给另一位艺术家不同的那一平方英寸。他们共同绘制整幅壁画,但没有任何一位艺术家需要同时持有整幅画作。
2. “团队队长”(协调器)
既然朋友们(MCU)正在处理微小的碎片,他们就需要一位管理者来保持秩序。
- 协调器: 这是一个中央设备(如个人电脑或专用芯片),充当团队队长。
- 它的作用: 它不承担繁重的体力劳动。相反,它持有地图。它告诉朋友 A:“你负责这些特定的像素”,并“将你的结果发送给朋友 B"。它在朋友们之间路由那些临时笔记,确保每个人都能获得完成其微小工作部分所需的确切内容。
3. “智能分配”(资源感知)
并非所有朋友都一样。有些拥有更快的书桌(更快的处理器),有些口袋更大(更多内存),有些传递笔记的速度较慢(网络较慢)。
- 问题: 如果你给一位慢速朋友和一位快速朋友分配相同的工作量,快速朋友只会坐在那里等待,浪费时间。
- 解决方案: 作者创建了一个“评级系统”。他们测量每个 MCU 的速度和能力。
- 类比: 想想接力赛。你不会给短跑运动员和步行者分配相同的距离。你给短跑运动员分配更长的赛段,给步行者分配更短的赛段,这样大家能在大致相同的时间完成。该系统自动计算每个人应做多少工作,以保持团队高效运转。
4. 结果
团队在真实设置中测试了该方法,使用了8 台小型计算机(Teensy 4.1 MCU)和一个流行的 AI 模型MobileNetV2。
- 结果: 单台计算机根本无法运行此 AI 模型,因为它内存不足。但当他们将工作分配到 8 台计算机上时,模型成功运行。
- 权衡: 解决拼图的总时间变得稍慢,因为朋友们必须花时间来回传递笔记。然而,每台独立计算机上的内存使用量急剧下降,使得原本不可能的任务成为可能。
总结
本文表明,通过将复杂的 AI 任务分解为微观碎片,并将其分发到由小型、廉价计算机组成的网络中,我们可以在那些单独来看过于弱小而无法处理的设备上运行强大的 AI。这就像将一头不堪重负的大象变成一群蚂蚁,它们可以共同搬运一粒面包屑。
技术摘要:网络化微控制器上的分割 CNN 推理
问题陈述
在微控制器单元(MCU)上部署深度学习(DL)模型受到有限内存资源(特别是随机存取存储器 RAM)的严重制约。虽然 TinyML 技术(如量化、剪枝和神经架构搜索)能有效减少模型参数和计算量,但由于推理过程中的峰值 RAM 占用,它们在实践中往往失效。这种峰值占用主要由中间激活值和临时缓冲区主导,即使模型权重能容纳在闪存中,其占用量也可能超过单个 MCU 的可用 RAM。因此,许多卷积神经网络(CNN)模型对于独立 MCU 而言仍然不可行。
现有的分割推理策略专为 GPU 或边缘 - 云场景设计,依赖于层边界处的粗粒度划分。这些方法在 MCU 上失效,因为即使单个层的中间特征图或核权重也可能超过单个设备的内存容量。此外,在异构 MCU 上进行朴素分布会导致负载不平衡和过高的通信开销,从而降低端到端延迟。
方法论
作者提出了一种细粒度分割推理系统,使 CNN 能够在 MCU 网络上协同执行。该系统在协调器 - 工作器架构下运行,并采用三种核心机制:
1. 细粒度模型划分
与传统按层划分不同,该系统在子层粒度上划分计算:
- 卷积层:输出特征图被分割为细粒度图块。卷积核根据其所计算的输出神经元分配给特定的工作器。这使得不同的 MCU 能够处理不同的输出通道子集或空间区域。
- 线性层:权重矩阵按列划分,其中每一列对应一个输出神经元。工作器被分配特定的列,从而实现输出神经元的独立计算。
- 模型重解释:预处理流水线重新解释预训练模型,以显式提取神经元级依赖关系、感受野和张量维度。这些元数据被序列化,并用于生成权重片段和路由图。
2. 资源感知的工作负载分配
为了解决硬件异构性(时钟频率、内存大小和通信带宽的差异),系统为每个 MCU 分配一个能力评分(Ri)。该评分源自一个考虑了以下因素的运行时模型:
- 计算时间(基于时钟频率和工作负载)。
- 通信时间(基于数据量、带宽和延迟)。
工作负载按比例分配给这些评分。系统包含一个迭代调整机制以处理严格的存储约束:如果某个工作器分配的权重片段超过其闪存容量,则溢出的评分将被重新分配给其他有可用空间的工作器。
3. 跨层激活映射与执行
协调器编排推理流程:
- 映射:系统构建分配映射(哪个工作器计算哪些输出神经元)和激活路由映射(哪个工作器必须向哪个下游工作器发送哪些输入激活值)。
- 执行:推理按层进行。协调器根据路由图向工作器传输所需的输入激活值。工作器使用本地权重片段计算其分配的神经元并返回部分结果。协调器聚合这些结果以形成下一层的输入。
- 优化:系统采用层融合(合并 Conv-BN-ReLU)、量化(32 位浮点数到 8 位整数)以及异步通信,以重叠计算和数据传输,最大限度地减少空闲时间。
主要贡献
- 细粒度分割推理:一种新颖的方法,在子层(神经元/核)级别划分 CNN 模型,通过分布参数和中间激活值,使无法在单个 MCU 上运行的模型得以执行。
- 资源感知协调:一种基于评分的工作负载分配机制,动态平衡异构 MCU 之间的计算和通信负载,防止由较慢设备或高延迟链路引起的瓶颈。
- 系统实现与评估:在由多达 8 个运行 MobileNetV2 的 Teensy 4.1 MCU 组成的真实测试床上进行了实际实现,证明了其可行性和可扩展性。
实验结果
该系统使用 MobileNetV2 在由 8 个 Teensy 4.1 MCU(600 MHz,1 MB RAM)组成的测试床以及可扩展至 120 个 MCU 的模拟器上进行了评估。
- 可行性:该系统成功执行了 MobileNetV2,该模型在单个 MCU 上会导致内存溢出故障。每个 MCU 的峰值 RAM 占用被降低至符合 1 MB 预算。
- 延迟与效率:
- 异构性:在异构场景(频率和通信延迟各异)中,基于评分的分配显著优于均匀分割和仅基于频率的分割。例如,在特定的异构案例中,优化方案相比基线将总延迟降低了 18.9%。
- 可扩展性:随着 MCU 数量从 3 个增加到 8 个,计算时间单调递减,而通信时间增加。总推理时间表现出一种权衡,即通信开销最终成为主要成本。
- 内存扩展:模拟结果表明,随着设备数量的增加,每个 MCU 的峰值内存占用显著下降,其中最大的收益发生在前 10–20 个设备内。超过这一点后,观察到收益递减。
意义与主张
该论文声称,细粒度分割推理是在资源受限的 MCU 上部署深度学习的一种可行的替代方案,可替代激进模型压缩。通过将执行范式从单个强大节点转变为廉价 MCU 的协作网络,该系统克服了目前限制 TinyML 的峰值 RAM 瓶颈。
作者强调,他们的方法不需要重型操作系统,可在裸机或轻量级运行时上运行。他们得出结论,虽然通信开销是大规模部署的限制因素,但所提出的系统成功实现了在原本不可行的 MCU 网络上对复杂 CNN 的推理,为未来在高效通信和更广泛模型类别方面的工作奠定了基础。
每周获取最佳 machine learning 论文。
受到斯坦福、剑桥和法国科学院研究人员的信赖。
请查收邮箱确认订阅。
出了点问题,再试一次?
无垃圾邮件,随时退订。