TPAMI 2024 | AIfES:下一代边缘AI框架

文摘   2024-07-13 19:00   中国香港  

点击上方“CVPaper”,选择加"星标"或“置顶

顶刊论文解读,第一时间分享

题目:AIfES: A Next-Generation Edge AI Framework

AIfES:下一代边缘AI框架

作者:L. Wulfert; J. Kühnel; L. Krupp; J. Viga; C. Wiede; P. Gembaczka; A. Grabmaier


摘要

边缘人工智能(AI)依赖于将机器学习(ML)集成到最小的嵌入式设备中,从而在图像或语音处理等实际应用中实现本地智能。传统的边缘AI框架缺乏跟上当前和未来ML创新所需的重要方面。这些方面包括针对目标硬件的灵活性低以及对定制硬件加速器集成的支持有限。嵌入式系统人工智能框架(AIfES)的目标是克服传统边缘AI框架面临的这些挑战。在本文中,我们详细介绍了AIfES的架构和应用的设计原则。最后,我们在基于ARM Cortex-M4的系统芯片(SoC)上使用全连接神经网络(FCNN)和卷积神经网络(CNN)将AIfES与微控制器的TensorFlow Lite(TFLM)进行了比较。AIfES在执行时间和内存消耗方面均优于TFLM。此外,使用AIfES时,使用CNN的内存消耗减少了多达54%。此外,我们展示了AIfES在FCNN和CNN训练期间的性能,并展示了在内存使用量略超过100 kB的资源受限设备上训练CNN的可行性。

关键词

  • 边缘AI框架

  • 嵌入式系统

  • 机器学习框架

  • 设备上训练

  • 资源受限设备

  • TinyML

I. 引言

近年来,机器学习(ML)已成为工程和科学应用创新的主要推动力之一。目前估计有超过2500亿个嵌入式设备在使用,这一趋势也延伸到了嵌入式系统,将ML启用的计算能力更接近数据源。通常称为边缘人工智能(AI)或TinyML,这些方法最近已进入组成物联网(IoT)的微控制器单元(MCU)。与云AI解决方案相比,使用TinyML提供了许多改进,包括数据保护、低处理延迟、节能和最小的连接依赖性。基于人工神经网络(ANN)的TinyML的一个广泛研究的应用是利用智能传感系统进行状态监测。其主要目的是直接在传感器内部检测异常的机器行为。这种方法仅传输异常数据,从而减少了能量消耗,因为传输数据比本地处理更耗能。此外,传感器系统可以直接连接到机器的控制系统,在发生故障时立即干预。因此,无需将数据发送到云服务器进行故障检测,突出了TinyML的数据保护方面,并强调了减少的处理延迟。此外,该系统可以部署在连接有限或没有连接的偏远地区。

为了开发高效和有效的ML方法,有许多框架利用高性能计算硬件,如图形处理单元(GPU)。PyTorch和TensorFlow是这一背景下最受欢迎和广泛使用的框架。

然而,由于嵌入式系统的硬件资源通常非常受限,这些框架无法使用。因此,已经开发了专门的工具和框架,允许将使用大型数据集在高性能硬件上训练的ML模型迁移到资源受限的设备上。这些传统的边缘AI框架,如TensorFlow Lite for Microcontrollers(TFLM)或Apache TVM,主要关注各种ANN的推理和优化,使得DNN可以部署在如MCU的嵌入式平台上。然而,由于训练是在PC上进行的,ML模型在框架之间甚至编程语言之间的转换是不可避免的。此外,这些框架通常绑定到特定的硬件平台,定制硬件加速器的集成可能性有限。因此,在资源受限系统上直接开发或训练ANN是不可能的。

因此,在过去两年中,已经进行了多项关于设备上训练ML模型的开发。最早实现了设备上训练ML模型,如支持向量机(SVM)、k最近邻(K-NN)和决策树(DT)。然而,SVM和K-NN的缺点是必须保留训练数据才能进行稳健的预测,导致高内存需求。此外,虽然SVM、K-NN以及DT可以非常有效地学习线性关系,但在学习非线性相关性时会达到极限。相比之下,ANN能够获取和训练数据中的非线性关系,因此适用于复杂问题。随着嵌入式系统数量的增加,人们对在MCU上执行更复杂任务(如状态监测、预测性维护或图像中的目标检测)的兴趣也在增加。由于MCU的资源受限,在设备上训练全连接神经网络(FCNN)和卷积神经网络(CNN)直到最近才被认为是不可行的。然而,初步工作表明,在MCU上设备上训练FCNN和CNN是可行的。尽管这些框架和方法兼容不同的MCU(如RISC-V、Cortex-M或ESP32),但许多缺乏开放访问和模块化软件结构,因此用户无法集成定制功能,如激活函数。尽管在MCU上训练FCNN和CNN现在是可行的,但复杂的算术运算(如矩阵乘法)仍然是MCU的挑战。通过定制的硬件加速器,复杂的计算更快,从而节省资源和能量。然而,目前没有一个现有的开发能够在其框架中插入定制硬件加速器的模块化结构。



我们引入了嵌入式系统人工智能(AIfES),这是一种硬件独立的边缘AI框架,弥合了资源受限的嵌入式系统和复杂的机器学习模型之间的差距。如图1所示,AIfES的模块化结构旨在遵循ML框架的知名结构,如Keras或PyTorch。该结构包括四个步骤:(1)建立模型,(2)选择损失函数,(3)选择优化器,(4)训练模型。这种方法使用户能够轻松地将他们的经验转移到AIfES。此外,AIfES的ailayer模块提供了一系列不同的功能类型,如密集层。用户可以为每个功能分配一个数据类型,如8位。这一特性有助于节省内存或在没有浮点单元(FPU)的设备上实现更快的训练或推理。此外,AIfES是第一个在ML框架内以模块化方式使用硬件加速器的框架。软件的模块化设计允许添加新的用户特定硬件加速器、功能类型、数据类型或模块。这使得框架可以根据用户的需求和偏好进行定制。利用C和优化模块,AIfES实现了ML模型的设备上训练和推理,而无需操作系统。为了进行推理,AIfES只需要一个预训练的ANN模型的结构和权重。可以轻松集成优化模块和定制硬件加速器,以提高模型的推理或训练性能。可以在运行时加载、微调或更改ANN的网络结构。甚至可以从头开始训练,无需预训练,从而避免将训练数据发送到更强大且耗能的设备。节省了能源,同时提高了隐私。此外,设备上训练使新一代自学习系统和传感器能够适应新数据,并且可以按需使用联邦学习(FL)进一步提高性能。本文的主要贡献如下:

  • AIfES是一个开源边缘AI框架,提供资源受限设备的推理和设备上训练,硬件无关且软件模块化。

  • 该框架支持模块化添加用户特定的硬件加速器,以增强推理和设备上训练的性能。它还包括激活函数的软件优化模块。

  • 模块化框架允许在运行时调整或更改网络架构。

  • 我们进行了广泛的评估,以展示框架在各种设置中的有效性。首先是FCNN的推理,比较了我们框架与使用硬件加速器、量化和设备上训练的TFLM。我们还评估了在知名数据集上使用CNN的设备上训练。

本文的其余部分组织如下。在第二部分中,我们提供了设备上学习框架的背景和相关工作的概述。随后,在第三部分中,我们介绍了我们提出的框架AIfES。此外,详细介绍了模块化架构、内存使用和硬件与软件优化以减少运行时间等设计原则。在第四部分中,对不同数据集和网络结构的FCNN和CNN的推理进行了评估。还对AIfES的设备上训练进行了分析。最后,第五部分总结了本文并提供了未来工作的展望。



III. 设计原则

AIfES专为在MCU等嵌入式低资源设备上运行而设计。因此,与常见的机器学习框架相比,其需求有所不同。AIfES的一个主要目标是使库的使用尽可能简单直观,同时足够高效以在最小的MCU上运行,并且足够灵活以支持ML的大多数用例。因此,我们提出了AIfES的模块化立方体结构,如图2所示,旨在提供灵活且可定制的结构,用户可以从ailayer、ailoss和aiopti模块中单独选择可用功能。每个模块本身具有不同的层次类型(模块的功能)、实现(硬件加速器的使用)和数据类型(执行ML模型的数据类型),这允许不同的设置和配置。例如,在ailayer模块中,用户可以选择不同的层,如密集层或Conv2D层,以包含在他们的ML模型中。立方体结构允许用户扩展现有模块和层次级别,甚至根据需要添加新的模块。



A. 模块化架构

AIfES框架具有模块化架构。ANN模型可以由称为层的处理块构建,这些层连接起来形成整个模型,这也被常用的现代深度学习框架(如Keras和PyTorch)采用。这使得Keras或PyTorch的经验用户更容易使用AIfES。对于训练,损失函数分配给模型,可以使用不同的优化器进行训练,以执行反向传播算法的梯度步骤。与其他框架不同,AIfES还将数据类型和底层系统特性放在前台,这是资源受限设备上的关键因素。此外,它提供了设备上训练ANN所需的所有组件,如所有层的反向实现、多个损失函数和优化器,以及权重初始化函数。支持组件的概述见附录。这些组件遵循相同的模块化概念,灵活且可适应任何系统和用例。

图3显示了AIfES中模块的层次结构。每个类别(如层、损失、优化器)包含特定模块(如密集层、ReLU层),定义了模块的功能。每个模块类型可以处理几种数据类型的数据(如float32、int8)。最终的实现可以是系统特定的(如Arm Cortex M、AVR ATMega),以在任何硬件上获得最佳性能。



因此,更高级的模块将一般属性传递给下面的模块。这是通过使用结构来完成的,这些结构是更低级模块的结构的一部分。在层的情况下,ailayer类别包含通用属性,如指向前一层和后一层的指针。此外,还提供了一些函数指针。这些函数指针在ANN的前向或后向传递期间被调用,并表示在传递期间的数据类型和实现无关的抽象调用位置。相比之下,ailoss和aiopti类别分别包含抽象的损失和优化特定属性(如ailoss的损失计算函数指针或aiopti的参数更新函数指针)。

模块类型描述了数据类型和实现无关但特定于其操作的通用属性。这允许不同的功能,例如ailayer的密集层与激活函数层或ailoss的不同损失函数的对比。例如,密集层的模块类型提供参数,如神经元数量、权重和偏差的张量指针,并使用数据类型和实现无关的密集层函数实现初始化类别的前向和后向传递的函数指针。在激活层的情况下,前向和后向传递的函数指针使用数据类型和实现无关的激活层版本进行初始化。这些数据类型和实现无关的函数使用底层数学函数实现所需的功能(如张量加法和乘法运算或矩阵乘法)。这里,数学函数也是数据类型和实现无关的,因为它们是最终实现模块中函数指针引用的。

因此,数据类型特定的表示初始化了层的数据类型。结合最终实现模块,数据类型和实现无关的函数指针用数据类型和实现相关的版本初始化。所有需要的数学函数由单独的数学模块提供,在初始化数据类型和实现无关的函数指针时引用所需的函数。数学模块包含每个数据类型和实现的实现,例如f32和q7数据类型的前向传递的矩阵乘法。AIfES目前提供两种不同类型的实现。默认实现是纯软件的,经过各种系统测试,以提供大多数情况下的最佳性能。相比之下,通用微控制器软件接口标准(CMSIS)实现使用CMSIS数字信号处理器(DSP)函数,通过优化数学函数的实现,在Arm Cortex-M MCU上实现高效实现。

为了使用不同的硬件加速器(以现有或定制硬件单元的形式),需要将硬件优化的数学函数(如张量乘法)添加到数学模块中。此外,必须将最终实现添加到所需的层中。在最终实现中,必须引用专用的数学函数。不需要进一步调整,因为模块类型和类别的数据类型和实现无关的实现会自动使用实现中提供的数学函数。通过这种设计概念,硬件开发人员不需要了解神经网络即可开发硬件加速器。相反,机器学习专家可以使用硬件专家提供的加速构建块。此外,这允许硬件/软件协同设计工作流,开发人员从默认实现开始,并逐步用定制加速函数替换它们。可以找到定制硬件加速器的示例。在这个例子中,将定制的单指令多数据(SIMD)指令集成到RISC-V MCU中以改进密集层的计算。这里只需要更新密集层的实现。为此,默认实现的函数指针需要替换为特定于SIMD的实现。不需要进一步的更改,突显了AIfES的模块化结构。通过这种概念,硬件开发人员只需要为矩阵乘法开发一个数学函数,然后在实现内部由函数指针引用。此外,激活函数也通过定制硬件加速器进行了优化,只需要更新函数指针即可自动使用优化的硬件加速器。

此外,可以轻松将框架移植到其他硬件架构上。因为框架完全用C编写,并且兼容GNU编译器集合(GCC),默认实现可以在GCC支持的任何硬件上执行,并且可以按照上述方式集成定制硬件加速器。

通过这种模块化概念,添加新组件和适应新用例变得简单明了,无需深入了解框架代码,就像集成新的硬件加速器一样。可以添加附加类型,例如支持新的激活函数,其中需要添加和引用附加数学函数到新的最终实现中。将AIfES结构分为不同模块的数据类型和实现的明确设计选择导致了更高效的系统,因为不必要的函数可以在实现、编译和因此在部署期间被排除。

B. 内存

嵌入式设备的主要约束因素是内存有限。一方面,用于存储变量和可变数据的RAM通常只有几千字节(甚至几字节)的大小,因此必须非常节省地使用。另一方面,用于程序代码存储和常量变量的只读内存(ROM)也至关重要。这与非边缘设备形成对比,在这些设备中,代码大小通常不被考虑。通过其模块化设计,AIfES使C编译器可以轻松删除未使用的代码,从而缩小代码大小。可以根据应用程序单独分配ANN的参数(如权重)和中间结果的内存。常量参数(如不可训练参数)可以存储在ROM(如闪存或EEPROM)或外部存储组件中,而可变参数(如梯度、误差、动量、量化参数)需要占用RAM空间。例如,梯度、误差、中间结果和量化参数将放置在RAM中。

与Keras的动态内存分配或PyTorch的自定义缓存内存分配器不同,AIfES使用不同的方法。作为主要设计概念,所有内存在运行网络之前分配。为此,AIfES提供调度器函数,根据FCNN的网络结构预先计算所需的内存大小,并将内存块分配给模型。

首先,计算每一层推理所需的内存大小。通过选择的数据类型乘以可变参数的数量,从而确定内存大小。如果使用量化参数,还要确定量化参数中间结果的内存大小。为此,使用的数据类型的大小添加到内存块中。随后,调度器根据可变参数的数量将内存块的地址部分分配给各个层。之后,如果FCNN应由AIfES训练,确定训练所需的内存大小。在此期间,计算前向和后向传递的不同层的中间结果的内存大小。前向和后向传递的内存大小由数据类型和FCNN中权重和偏差的最显著数量决定。此外,还要确定梯度和优化内存的大小(如第一个或第二个动量)。梯度的大小由张量的大小和使用的数据类型决定。优化器所需的内存大小取决于选择的优化器,因为与SGD相比,Adam需要额外的动量存储。此外,如果应用,还要计算量化参数的内存大小。计算内存块的大小后,调度器根据可变参数、优化大小和中间结果内存大小分配各层的地址范围。

因此,AIfES没有内部动态内存分配(除了调用堆栈上的局部变量)。这确保了系统在ANN的推理或训练期间不会内存耗尽,这在自主驾驶等安全关键应用中尤为重要。此外,不会发生内存碎片,因为内存调度器知道运行时需要多少内存,并可以优化分配。

C. 硬件和软件优化以减少运行时间

保持ML推理和训练的运行时间短是AIfES的关键目标。现代神经网络的主要执行时间用于矩阵操作,例如全连接层或卷积层中的矩阵操作。然而,由于资源限制,嵌入式系统上经常使用较小的神经网络。随着网络规模的缩小,激活层在执行时间中的贡献变得越来越重要。因此,AIfES包括了运行时优化的激活函数和层,除了基于矩阵乘法的层。由于几个激活函数需要计算指数函数,这在默认实现中可能很耗时,AIfES包括了一个优化版本。此外,AIfES采用分段线性近似(PLA)激活函数,这引入了微小的计算误差,但加快了执行速度。因此,AIfES允许根据应用的精度和运行时间约束调整近似程度。为了防止库的内存需求进一步增加,AIfES不使用查找表(LUT)激活函数。

对于模型的后向传递,不执行自动微分。因此,每一层提供了单独的后向传递实现。因此,不需要额外记录张量上的已执行函数,减少了存储和计算需求。

AIfES提供了两种互补的反向传播工作流,以实现训练期间的较低内存消耗。两者都从保留结果的前向传递开始。传统方法通过反向迭代所有层,逐步计算和存储梯度。在此过程结束时才更新所有参数。轻量级随机梯度下降(L-SGD)算法采用不同的方式,仅保留后续层所需的偏导数,并直接使用计算的梯度更新参数。因此,它在任何时候只保留两个层在内存中。

我们扩展了该算法,以包括其他优化器,如ADAM。此外,我们还使轻量级反向传播工作流可以与批量学习结合使用,增强其实用性。在这种情况下,我们在每次迭代中积累整个批次的梯度,并在前进到下一层之前更新。随着模型深度的增加,轻量级过程变得越来越高效。对于较大的批量大小,由于内存访问,该算法速度更快,但这需要更高的峰值内存使用。AIfES为用户提供了选择最适合其网络架构和性能需求的工作流的灵活性。

开发嵌入式用途的库时,另一个需要注意的因素是底层硬件配置的巨大范围。在只有8位内存带宽且没有FPU的系统上,算法的最佳实现与32位系统上的SIMD指令或DSP加速器不同。AIfES的模块化概念允许开发完全适合给定硬件平台和指令集的各个组件。例如,CMSIS for ARM-based MCU通过利用SIMD指令等优化,加速了计算。CMSIS可以通过额外的CMSIS实现用于AIfES。

AIfES允许对模型进行量化。量化使其能够适应不同的硬件架构,例如适应没有FPU的8位MCU。量化到Q7的ANN可以改进计算。提供了两种量化(Q7和Q31),作为对称的8位/32位整数量化,通过遵循提出的技术,简化了整数对实数的计算。

IV. 评估

为了评估AIfES的性能,开发了包括多个ANN架构(FCNN和CNN)和数据集的基准。AIfES在推理模型和训练场景中的执行时间和内存消耗方面与TFLM进行了比较。

A. 基准设置

实验在由Nordic Semiconductor生产的nRF52840 DK(基于ARM Cortex-M4)上进行。nRF52840系统芯片(SoC)的时钟频率为64 MHz。

使用PlatformIO IDE进行软件开发和SoC编程。使用GNU ARM嵌入式工具链中包含的GCC进行编译,最大优化(-O3)。使用逻辑分析仪(由Digilent生产的Digital Discovery)测量推理和训练的执行时间,并对结果进行统计评估。在以下内容中,仅报告平均执行时间,因为偏差不显著。给出的内存消耗值(以RAM和闪存内存计)来自PlatformIO的编译报告。对于推理设置,将ANN的参数声明为const类型,以在编译时将其放置在SoC的闪存中。在推理和训练实验中使用相同的过程,将输入数据放置在AIfES和TFLM的闪存中。然而,输入数据大小从报告的闪存消耗中减去,因为只应比较两个框架的存储需求,而不同ANN的数据大小不同。基准测试在两种数据类型(F32和Q7)下进行FCNN,并仅在F32下进行CNN。对于Q7版本,从Keras预训练模型进行量化。

为了能够控制TFLM的行为,从GitHub下载了官方仓库,并使用提供的转换工具为ARM Cortex架构创建库,分别启用和未启用优化的CMSIS内核。然后将库包括在PlatformIO IDE中。对于TFLM,需要将TensorFlow的预训练ANN转换为TensorFlow Lite模型。然后将转换后的模型导出并包括在基准环境中。根据经验估计每个ANN的kTensorArenaSize的大小,因为它包含ANN的所有必要参数,因此随着每个测试的ANN大小变化。将Keras的预训练模型转换为AIfES。为了转换预训练模型,只转移权重和偏差。对于AIfES和TFLM,使用了CMSIS的5.8.0版本。



B. 推理基准

  1. FCNNs:为了评估FCNNs,采用了现有TinyML基准的模型架构。选择了三个具有不同数量输入特征(4 - 64特征)的代表性数据集。此外,基于MNIST数据集的两个较大的全连接深度神经网络(FCDNN)架构进行了评估,使用完整和展开的图像(784特征)。实验及其相应的评估数据集和模型总结在表II中。首先进行了实验1至3。结果如图4、5和6所示。

图4(a)显示,在大多数情况下,AIfES模型的执行时间超过了TFLM模型。没有CMSIS的情况下,测量到F32的加速高达2.1倍,Q7高达2.2倍。较慢的F32-AIfES模型(MNIST 1×10和MNIST 10 + 50)的执行时间在TFLM模型的17%范围内。同时,Q7版本的MNIST 1×10略快(加速1.2倍),而Cancer 10 + 50模型略慢(慢2%)。MNIST F32 ANN性能较低的解释可能是TFLM优化了矩阵乘法实现,适用于具有较多参数的全连接层。这与Q7 Cancer 10 + 50的结果一致,因为对于Cancer 10 + 50,AIfES的执行时间比TFLM略长。同时,Q7优化使AIfES在Q7 MNIST 1×10设置中略快于TFLM。图4(b)显示,启用CMSIS的AIfES模型在所有情况下均比TFLM模型快,高达2.4倍(F32)和2.3倍(Q7)。TFLM的F32版本性能较慢的原因可能是TFLM使用默认实现,没有使用任何CMSIS函数,导致与没有CMSIS的F32结果几乎相同。对于Q7设置,TFLM使用基于CMSIS的实现,表现出性能提高,相较于没有CMSIS的Q7实现,最多提高1.6倍(平均1.4倍)。同时,TFLM可以通过CMSIS进一步减少Q7 ANN的执行时间,相较于没有CMSIS的提高最多2.7倍(平均2.1倍)。这些结果展示了AIfES模块化和开放架构的有效性,使任意加速或优化的ANN功能实现集成成为可能。



图5和6显示,AIfES模型整体所需内存比TFLM模型少,最多3.9倍(起始2.1倍,平均2.7倍)。大多数情况下,两者的RAM需求相似,显著差异在于闪存消耗。我们将此结果归因于AIfES在程序代码和常量变量方面的内存高效实现,通常放置在闪存中。此外,需要注意的是,启用CMSIS的TFLM模型闪存消耗增加,而F32 AIfES模型略有减少。原因在于AIfES仅集成了CMSIS模块的一部分。这在Q7实现中也可以看到,两者闪存消耗增加,但TFLM的增加量更大。TFLM使用更多或其他CMSIS模块,代码大小增加或常量变量更多。F32 AIfES模型闪存消耗减少的解释是CMSIS函数在代码大小方面比AIfES本地实现更高效。



表III显示了FCDNN架构的结果(实验4,表II)。没有CMSIS的TFLM模型的执行时间比AIfES模型低17%和16%。这一结果支持我们的假设,即TFLM优化了本地矩阵乘法实现,适用于具有较多参数的全连接层。启用CMSIS的情况下,AIfES模型的执行时间分别比TFLM模型高1.4倍和1.3倍。然而,TFLM模型的RAM需求略低(FCDNN 1为12%,FCDNN 2为5%)。AIfES模型的闪存消耗低于TFLM模型,与之前的实验1至3的绝对差异相同(平均分别为31 kB和41 kB)。总体而言,这些结果再次证明了AIfES架构在集成外部优化ANN模块方面的有效性及其在闪存存储方面的内存效率。

  1. CNNs:随后,使用MNIST、CIFAR-10和Visual Wake Words(VWW)数据集评估了2D-CNN架构。由于数据集具有不同的输入通道数量和输出量,网络架构随每个数据集而变化。对于CIFAR-10和VWW,使用了3×32×32的输入,因为这些数据集包含RGB图像。VWW的图像之前已调整大小以适应CNN的输入形状。MNIST数据集使用了1×28×28的输入。然而,基本架构对于所有数据集相同。每个网络有两个卷积层,第一个层使用四个内核,第二个层使用八个内核,大小为3×3,使用无填充和步幅为1。两个层都使用ReLU,并在每个卷积层后执行2×2的最大池化。由于CMSIS对CNN的支持尚未包含在AIfES中,因此仅比较了本地实现。



表IV的结果显示,在最坏的情况下,TFLM CNN在执行时间和RAM需求方面分别超过AIfES模型1.74倍(VWW)和1.63倍(MNIST)。执行时间差异的解释是TFLM中优化的矩阵乘法实现。AIfES目前使用简单的直接卷积。尚未包括复杂的方法,如通用矩阵乘法(GEMM)或快速傅立叶变换(FFT)实现。类似之前的实验,AIfES CNN的闪存消耗低于TFLM模型,对于所有数据集,最大绝对差异为32 kB。结果表明,在最坏的情况下,VWW数据集的闪存占用率增加到53%。显著差异与TFLM在运行时构建神经网络时用于存储权重、网络结构和激活函数的平面缓冲区有关。

C. 训练基准

随后,我们调查了使用AIfES的FCNN和CNN的设备上训练。为了评估FCNN,使用了推理基准(表II中显示的实验1至3)中的相同架构。对于CNN,选择了与推理评估中相同的架构(第四节B2)。所有模型使用交叉熵损失和Adam优化器进行训练,参数为,FCNN的,CNN的。仅显示了默认实现的训练(即未启用CMSIS)。我们测量了每个epoch的执行时间,并通过除以每个epoch的批次数进行标准化,因为每个模型的批次大小相同(5)。
  1. FCNNs:表V显示,使用AIfES在资源受限的嵌入式设备上训练FCNN是可行的,同时保持可接受的执行时间和内存消耗。这意味着平台未完全利用,仍有足够的资源。例如,在基于nRF52840 SoC的实验平台上,最坏情况下(MNIST 10×10),AIfES利用了15%的RAM和2%的闪存。因此,其他任务,如通信、传感器采样或信号预处理,也可以在嵌入式系统上运行。评估模型在实验平台上的总体训练执行时间在毫秒到秒之间。
尽管这些结果,还需要考虑模型架构,特别是训练过程的内存需求,可能是使用AIfES进行设备上训练的主要限制。我们还在附录B中包含了复杂深度自编码器的训练。
  1. CNNs:设备上训练基准的CNN结果见表VI,我们使用了与推理评估相同的数据集。此外,使用了与推理分析相同的架构。架构通过在两个卷积层后添加批量归一化层进行扩展,参数为,加速了训练。与FCNN的评估相比,每批次的训练时间和RAM消耗显著增加。使用CIFAR-10数据集训练的CNN耗时最长,为2.61秒,RAM内存消耗接近150 kB。训练时间和RAM消耗增加是由于CNN中的可训练参数数量也增加。例如,使用CIFAR-10数据集进行分析的CNN使用的参数量是使用10×10架构的MNIST数据集的FCNN的四倍。因此,内存需求增加了约3.8倍。
基准测试显示,使用AIfES进行CNN训练是可行的,但与FCNN训练相比,训练时间和内存消耗增加。然而,训练时间仍在可接受的时间范围内。然而,训练深度CNN将是具有挑战性的。此外,训练深度CNN所需的数据量不能直接存储在MCU上。

D. 近似基准

由于AIfES使用近似,一个重要方面是检查这些近似的相对误差。为此,使用了TinyML Perf基准中包含的深度自编码器。为了在AIfES中启用集成近似,将ReLU激活函数替换为sigmoid激活函数。首先,在Tensorflow中训练了自编码器。然后,将模型导出到Tensorflow Lite和AIfES。这两个模型然后在PC上执行,并计算输入值的均方误差。基于2459个测试数据集,使用Tensorflow确定了参考值。然后,使用相同的测试数据测量自编码器在Tensorflow Lite和AIfES中的均方误差。随后,确定了Tensorflow Lite和AIfES相对于Tensorflow参考值的平均相对误差。Tensorflow Lite的平均相对误差为,而AIfES的误差为。因此,AIfES的平均相对偏差可以忽略不计。在应用实例中,所应用的近似与Tensorflow相比,在值()上没有显著差异,在AUC平均值上有微小差异()。

V. 结论与未来方向

在本文中,我们介绍了下一代边缘AI框架AIfES。它专门设计用于充分利用资源受限嵌入式设备上的ML潜力。与其他传统的边缘AI框架相比,AIfES不仅支持嵌入式系统上的推理,还支持设备上训练。这允许在实际应用中使用FL和在线学习(OL)技术。此外,由于其模块化架构,AIfES使任意优化和硬件加速ANN功能的轻松集成成为可能。我们进行了基准测试,在基于ARM Cortex-M4的SoC上比较了AIfES与TFLM在多个推理场景中的性能。特别是对于FCNN架构,我们展示了AIfES在执行时间和内存消耗方面优于TFLM。此外,我们展示了使用AIfES在嵌入式设备上训练ANN和CNN的可行性。AIfES当前的主要限制是本地矩阵乘法的实现,导致ANN性能低于TFLM。未来,我们将增强AIfES的ANN矩阵乘法方法,并通过剪枝等方法优化整体设备上训练。此外,将添加新的ANN架构,如transformers,并将重点放在FL和OL技术的进一步开发上。

声明

本文内容为论文学习收获分享,受限于知识能力,本文对原文的理解可能存在偏差,最终内容以原论文为准。本文信息旨在传播和学术交流,其内容由作者负责,不代表本号观点。文中作品文字、图片等如涉及内容、版权和其他问题,请及时与我们联系,我们将在第一时间回复并处理。

CVPaper
这里有知识和乐趣,感悟和哲理,一起来嗨!!!
 最新文章