人工智能(AI)在医疗保健、自动驾驶车辆、机器人技术、交通监控和农业等多个领域得到了广泛应用。这些领域的许多现代AI应用具有多任务性质(即在同一数据上执行多种分析),并且部署在资源受限的边缘设备上,要求AI模型在诸如功耗、帧率和模型大小等不同指标上均表现出高效性。 针对这些特定应用场景,在本文中,作者提出了一种新的神经网络架构范式(ILASH),该范式利用层共享的概念来最小化功耗、提高帧率并减少模型大小。 此外,作者还提出了一种新颖的神经网络架构搜索框架(ILASH-NAS),用于根据给定的任务集和硬件约束高效构建这些神经网络模型。提出的NAS框架采用基于数据驱动的智能方法,在能量、时间和二氧化碳排放方面使搜索变得更为高效。 作者在UTKFace、MTFL、CelebA 和 Taskonomy 四个开源数据集上对提出的基于层共享架构的范式(ILASH)及ILASH-NAS框架进行了广泛的评估。 作者将ILASH-NAS与AutoKeras进行比较,并在生成模型性能和神经网络搜索效率方面观察到了显著改进,最高节省了16倍的能耗、二氧化碳排放以及训练/搜索时间。
人工智能(AI)是一个快速增长的市场,预计到2027年将达到1万亿美元[1]。AI被广泛应用于各种现代应用程序、设备和服务,几乎涵盖了所有领域,包括汽车[2]-[4]、数字制造、医疗健康[7]-[9]以及零售。然而,AI发展中一个可能制约其增长的重大问题在于能源消耗和碳排放方面。在[12]中,研究行人对各类常见大型AI模型的训练过程进行了生命周期评估。结果显示,这一过程可释放超过62.6万磅二氧化碳当量,相当于一辆普通美国汽车在其整个生命周期内的累计排放量(包括生产制造)的近五倍。能源消耗和碳排放的主要来源有两个:
神经架构搜索(NAS)与训练:自动化的NAS过程可能会极其耗电。在某些情况下,能源消耗可以达到498 kWh-PUE以上,碳排放也可能超过47.5 lbs,仅仅是为了获得一个AI模型(见表1)。
推理:在数十亿的物联网边缘设备上运行的AI模型也导致了大量的累积能源消耗和碳排放。《2023年春季物联网状态报告》[13] 显示,活跃的物联网终端总数达到了143亿个。
在本研究中,作者提出了一种通过开发智能化层共享(ILASH)神经架构范式及其相关的基于AI的神经架构搜索算法来同时最小化这两种能源消耗途径和二氧化碳排放的方法。ILASH模型通过在不同任务之间共享中间计算结果(层输出)来降低能源利用和二氧化碳排放。而作者提出的AI引导的神经架构搜索(ILASHNAS)则使得构建这些ILASH模型变得极为高效。作者提出的ILASH架构、层共享的方法以及基于AI的神经架构搜索过程(用于构建ILASH网络)与现有工作相比具有新颖性。作者使用ILASH-NAS在标准数据集(如UTKFace[14]、MTFL[15]、CelebA[16]和Taskonomy[17])上为不同的多任务应用搜索模型,并以Raspberry Pi 4 Model B、Jetson Orin Nano、Jetson Nano和Jetson AGX nano作为目标边缘设备。作者在神经架构搜索和训练过程中观察到,与当前最先进的多任务NAS算法(AutoKeras)相比,能量消耗和二氧化碳排放最多可减少16倍。最终模型中的层共享部分还导致了与其他最先进的方法相比,推理能量消耗和二氧化碳排放减少了3倍。
在本文中,作者做出了以下研究贡献:
在不同的边缘设备(NVIDIA Jetson AGX Orin、Orin Nano、Jetson Nano 和 Raspberry Pi 4 Model B)上,使用标准数据集(UTKFace、MTFL、CelebA 和 Taskonomy)评估了 ILASH-NAS 和生成的 ILASH 模型。
在本节中,作者将简要介绍多任务学习和神经架构搜索(NAS)算法。
与ILASH的对比无法进行。表1展示了不同NAS方法在CIFAR10数据集上所消耗的GPU小时数、能量消耗以及等效的排放量的统计信息。能量消耗和排放量按照[37]中的方法计算得出。
在这里,、、 和 分别表示 NAS 运行时间、CPU 平均功耗、RAM 平均功耗和 GPU 平均功耗。 表示总 GPU 数量,而 则是以千瓦时 (kWh) 为单位测量的电源使用效率 (PUE)。作者假设 GTX 1080、GTX 1080 Ti、RTX 2080 Ti 和 Tesla Titan Xp 的功耗分别为 270 瓦、375 瓦、375 瓓和 375 瓦 ( [38]))。
神经架构搜索(NAS)算法广泛用于为特定应用找到最优的神经网络架构。最近,脉冲神经网络(SNNs)引起了广泛关注,例如Na等人提出的AutoSNN [18],它在预设的搜索空间内探索超参数。Udovichenko等人引入了SeqNAS [35],该算法使用贝叶斯优化和多头自注意力卷积神经网络来分类事件序列。与此同时,Wang等人提出了基于扰动的DARTS-PT [24],这是一种通过评估超网络操作来提高泛化能力的方法。尽管如此,最先进的(SOTA)NAS算法仍然具有迭代性,资源密集型,并且耗时(参见表2和表1)。此外,标准的NAS技术并不适用于构建多任务神经网络,因此需要直接
多任务学习涉及训练一个单一的AI模型来执行多个任务。多任务学习通常用于减少物联网设备的权重大小开销。最近,如Fast GraspNeXt [39]等研究工作使用了专门设计用于嵌入式多任务学习的自注意力神经网络模型。李等人[40]提出了一种利用知识蒸馏的多任务学习(MTL)策略,以实现多个任务间参数的公平共享。
然而,这些技术并没有专注于构建能够降低整体能耗和排放的多任务神经网络。因此,直接比较ILASH与这些技术是不可能的。不过作者可以通过表2定性地比较不同NAS技术与ILASH-NAS。由金等人在2019年开发的Auto-Keras框架实现了诸如贪婪搜索、随机搜索和贝叶斯搜索等最知名的NAS算法,并在多任务学习背景下进行了实施(这是目前唯一公开可用的框架)。因此,作者将ILASH与Auto-Keras算法进行比较,以了解ILASH的有效性(第四节)。
图1展示了作者提出的ILASH架构的整体视图。该方法是一种硬层共享方法与非共享方法(即每个任务单独一个模型)的混合体。假设系统需要执行 ( p ) 项任务 ((T_1, T_2, ..., T_P)),其中 ( T_1 = {l_1^1, l_2^1, l_3^1, ..., l_{n1}^1} ), ( T_2 = {l_1^2, l_2^2, l_3^2, ..., l_{n2}^2} ),以及 ( T_P = {l_1^p, l_2^p, l_3^p, ..., l_{np}^p} )。这里,( l_x^y ) 表示第 ( y ) 项任务中的第 ( x ) 层。此外,( P ) 是一个数字集合 ({1, 2, ..., p})。这些策略之间的区别在于:
作者的初始目标是构建一个基于启发式的神经网络搜索算法,用于层共享模型,从而能够捕捉到构建AI引导版本的NAS框架所需的关键信息(数据集)。该NAS算法(ILASH-Heu)在算法1和算法2中进行了描述。算法1的输入如下:
接下来作者将讨论实验设置和所使用的数据集。
作为目标边缘设备(用于测量推理时延效率),作者使用了NVIDIA Jetson AGX Orin、Orin Nano、Jetson Nano 和 Raspberry Pi 4 Model B。对于这些设备,作者利用插件监控器测量功耗,并通过公式1和2计算等效能耗(KWh-PUE)和二氧化碳排放量。作者的边缘计算架构如图2所示。
UTKFace数据集:UTKFace数据集是一个广泛使用且公开获取的面部图像集合,在计算机视觉和机器学习研究领域经常被用到。该数据集包含超过20,000张代表不同个体的面部图像。每张图像都标注了个体的性别、种族和年龄,这些信息作为多任务应用中的标签。ILASH-NAS算法呈现这些任务的顺序可能会影响整体性能,因此作者在结果中报告了两种任务顺序的ILSH_Pred结果:(1) 、、,在结果中表示为ILSH_Pred-1;(2) 、、,在结果中表示为ILSH_Pred-2。
在本研究中,作者考虑了三个不同的数据集,分别为:(a) UTKFace [14],(b) MTFL [15] 和 (c) CelebA [16],用于图像分类和回归任务,以及用于2D语义任务的Taskonomy [17]数据集。
对于两种过程(ILASH-Heu和ILASH-Pred),在训练ILASH任务模型时,作者使用Adam优化器,学习率为,批量大小为32,训练轮数为50轮。在预处理阶段,作者将所有图像调整为大小,并按照的比例分别划分为训练集、验证集和测试集。对于AutoKeras的搜索,作者为所有方法(贪婪搜索、随机搜索和贝叶斯搜索)设置了mac_trial为20。所有的神经网络搜索和训练均在以下配置下进行:{AMD EPYC 2罗马CPU,Nvidia A100 GPU 40 GB,128 GB内存}。为了测量网络搜索/训练期间GPU和CPU的功耗,作者使用了pyJoules [41](Python库)。
作者利用公式1和公式2计算了所有实验中的能耗及等效二氧化碳排放量。作者以MobileNet [42]作为基准模型(Algo. 1和Algo. 3中的Model_base)用于分类/回归任务(UTKFace、MTFL和CelebA数据集)。对于2D语义任务(Taskonomy数据集),作者以MobileNet作为编码器,随后接六个Conv2DTranspose层,其通道尺寸分别为512、256、128、64、32和1(带ReLU激活函数),作为解码器,这也是基准模型(Algo. 1和Algo. 3中的Model_base)。
Algorithm 3(ILASHPred,ILASH-NAS的预测版本)中使用的Auto-ILASH模型是在从Algorithm 1运行(ILASH-Heu,ILASH-NAS的启发式版本)获得的数据ILASH_Dataset上训练得到的。
作者尝试了不同的机器学习(ML)算法以构建最优化的Auto-ILASH模型。表2展示了这些实验的结果。在这五种ML模型中,决策树在MAE、MSE、RMSE和分数方面表现最佳。基于此评估,作者决定使用决策树算法来构建最终的Auto-ILASH模型。
在图3中,作者比较了最终模型的准确性(针对给定数据集的所有任务)以及神经架构搜索中的能耗( 训练)。作者发现系统的总体最终准确性在所有技术之间基本保持稳定,然而,作者提出的ILASH-Pred技术(对于两种任务顺序均有此效果)具有极高的能源效率。这些任务依次呈现给ILASHNAS算法的顺序可能会对整体性能产生影响,因此作者在两组任务顺序下报告了ILSH_Pred的结果(更多细节见第四部分)。
其中,AK-Greedy指的是使用“贪婪”调优器的AutoKeras,AK-Random指的是使用“随机”调优器的AutoKeras,而AK-Bayesian指的是使用“贝叶斯”调优器的AutoKeras。有关AutoKeras的更多信息,请参阅[31]和[32]。作者发现在MTFL、CelebA和UTKFace这三个数据集中都存在类似的趋势。AK-Greedy是所有AutoKeras技术中最不耗能的方法,即使如此,ILSH_Pred仍然比它更高效10-16倍。这得益于Auto_ILASH模型在做出分支决策时几乎没有延迟。ILASH_Heu并不是最优方法,仅用于创建构建Auto_ILASH模型所需的初始数据集以支持ILASH_Pred。
接下来,作者评估通过不同变体的AutoKeras和ILASH-NAS获得的最终搜索模型在UTKFace、MTFL和CelebA数据集上的有效性(在推理/部署期间)。作者在四款不同的边缘设备(NVIDIA Jetson AGX Orin、Orin Nano、Jetson Nano 和 Raspberry Pi 4 Model B)上进行了广泛测试。这些结果清楚地表明,无论是ILASH_Heu还是ILASH_Pred都能在能耗(KWh-PUE)、二氧化碳排放以及每秒处理帧数(FPS)方面为边缘设备带来更优的神经网络结构。
接下来,作者进行了一组独立实验,以评估ILASH-NAS(包括ILASH_Heu和ILASH_Pred)在构建支持2D语义任务(2D边缘纹理、表面法线和重新着色)的多任务网络方面的有效性。有关所用数据集的更多细节可以在第四部分D节中找到。表6展示了相应的实验结果。需要注意的是,由于AutoKeras不支持2D语义任务,作者无法将其结果与作者的结果进行比较。
因此,据作者所知,ILASH-NAS是唯一一个支持2D语义任务的多任务神经架构搜索框架。在表6中,作者观察到,在网络搜索过程中,利用Auto-ILASH ML模型的ILASH_Pred方法比ILASH_Heu方法快约38倍,能效提高了近22倍(几乎不会损失最终模型的MAE/性能)。接下来,作者在Taskonomy数据集上评估通过不同变体的ILASH-NAS获得的最终搜索模型的有效性(见表5)。ILASH_Pred在各个方面都表现出令人鼓舞的性能。
AI将在未来人类生活的各个方面发挥重要作用。然而,为了实现无处不在的AI梦想,作者必须分析并缓解其对能源利用和环境的影响。
在本项工作中,作者提出了一种层共享神经网络架构和一种预测性NAS算法,这导致了多任务应用在架构搜索与推理过程中显著减少了能源/排放开销。未来的工作将进一步探索针对更复杂应用和神经网络拓扑结构的AI引导NAS方法。
[0]. LASH: A Predictive Neural Architecture Search Framework for Multi-Task Applications .