乔德文,郭松涛*,何 静,朱永东
(1.重庆大学 计算机学院,重庆 400044;2.之江实验室 智能网络研究院,浙江 杭州311121)
随着5G技术的发展和物联网(Internet of Things,IoT)的普及,网络边缘的数据由地理上分布广泛的移动终端和IoT设备所创建,这些在网络边缘生成的数据比大型云数据中心[1]生成的数据还要多。另外,根据IDC的预测,到2025年[2],全球物联网产生数据的70%都要在网络边缘处理。同时,人们在日常生活中使用这些智能终端设备时对其服务质量的需求有了进一步的提高[3]。因此,在这种情形下,用传统的云集中式处理模式将无法高效率地处理这些网络边缘数据,也不能满足用户对智能终端高服务质量的需求。具体来说,传统云计算在处理这些网络边缘数据时存在三点不足:① 实时性不够;② 带宽不足;③ 能耗较大。因此,为了解决以上问题,更适用的方式是直接在边缘网络侧处理用户需求,这催生了一种全新的计算范式——边缘计算(Edge Computing,EC)[4]。
EC将云服务从网络核心推向更接近物联网设备和数据源的网络边缘,它是一种在终端设备中分析和处理数据的技术。通过这种技术,数据可以在网络边缘进行实时处理,以实现数据流加速的目的。从本质上讲,与传统基于云的计算模式相比,EC使得计算和数据源之间的物理距离更加接近,大大降低了数据传输的时延,缓解了网络带宽的压力,减少了数据通信的能耗,使得用户的服务质量大大提升[5-7]。
近些年来,得益于摩尔定律的突破,使得人工智能(Artificial Intelligence,AI)的发展再一次迎来了高潮。日常生活中,熟知的AlphaGo[8]、无人驾驶汽车[9]、智慧医疗[10]等,都是AI发展的延伸。可以说,我们目前生活在一个AI蓬勃发展的时代。另外,在算法、算力、大数据等最新进展的推动下,深度学习(Deep Learning,DL)[11]作为AI领域最耀眼的领域,在计算机视觉、语音识别、自然语言处理等多个领域取得了实质性突破。得益于这些突破,以智能个人助理、个性化购物推荐、智能家电等为代表的一系列智能应用迅速进入了人们的视野,得到了巨大的青睐。现代社会普遍认为这些智能应用极大地丰富了人们的生活方式,提高了社会生产效率。由于AI算法的实现需要大量的计算,当前AI大部分的计算任务都是依靠部署在云及其他大规模计算资源密集的平台上实现的,但考虑到大规模计算资源密集平台与智能终端的物理距离以及网络边缘海量数据的现实,就极大地限制了AI带来的便利。因此,催生了人们将EC与AI进行结合的想法,这也就产生了边缘智能(Edge Intelligence,EI)。
EI并不是将EC和AI进行简单的结合,EI涉及到的主题十分广泛,目前学术界还没有给出一个统一的定义。但是,很多涉足EI的学者都给出了自己对EI的理解,例如,Zhou等人认为EI的范围不应该仅仅局限于边-端上运行AI算法,而也应该包括在边-云上运行AI算法[12];Zhang等人将EI定义为使边缘设备能够执行AI算法的能力[13];李肯立等人将EI定义为融合网络、计算、存储、应用核心能力的开放平台[14]。
处于初级阶段的EI吸引了学者的广泛关注。他们对EI的进展做了较为全面的研究总结,例如,Zhou等人从AI模型的训练、推理以及边-云和端-边-云协作等方面对EI进行了较为全面的阐述[12];Chen等人对网络边缘DL应用的场景以及在网络边缘部署分布式DL算法的常见方法进行了研究[15];Wang等人从AI、EC各自的应用场景以及二者相结合的应用场景角度更加全面地介绍了EI[16];也有一些文献从AI驱动的雾计算的角度对EI进行了研究[17-18]。例如,Peng和Zhang全面总结了雾-无线电接入网的性能分析和无线电资源分配的最新进展。然而,EI的主题涉及范围广泛,无论是起源还是性质,这些文献都没有完全涵盖。还有许多问题没有得到解决,正因为如此,本文对EI进行分类阐述,以一种简单明了的方式将EI的重点内容呈现出来。具体来说,本文将EI分为基于EC的AI(AI on edge)和基于AI的EC(AI for edge)。AI on edge可以理解为在边缘环境中部署AI算法;AI for edge可以理解为利用AI算法解决EC中的优化问题,现有关于EI的研究都可以大致分为这两大类。
AI和EC的结合是必然,它们之间存在着一种互动关系。AI为EC提供解决问题的技术和方案,而EC为AI提供释放潜力的平台。
EC是一种分布式计算范式,通过构建软件定义的网络来分散数据,提供具有鲁棒性和弹性的服务。EC在不同的层次上面临资源分配问题,如CPU周期频率、访问权限、射频、带宽等。因此,对各种功能强大的优化算法提出了很高的要求,以提高系统的效率。从本质上讲,EC将真实场景中的优化问题进行建模,然后用梯度下降方法迭代地寻找渐近最优解。无论是统计学习方法还是DL方法都可以为边缘提供帮助。此外,包括多智能体学习、深度Q-网络(Deep Q-Network,DQN)在内的强化学习在边缘资源分配问题中发挥着越来越重要的作用。
IoT设备的激增使万物互联成为现实。除了云数据中心外,更多的数据是由边缘网络设备创建的。更多的应用场景,如自动驾驶、智能家居、智慧城市等,都可以极大地促进AI从理论到实践的实现。此外,通信质量高、计算能力要求低的AI应用可以从云迁移到边缘,可以说,EC为AI提供了一个功能丰富的平台,得以让AI尽情地释放其内在潜力。
在这一部分,本文将AI on edge的研究工作分为模型训练和模型推理两部分。其中模型训练部分重点介绍目前流行的联邦学习(Federated Learning,FL)在边缘环境中的一些研究工作;在模型推理部分,本文主要介绍模型的优化、分割以及共享三方面的工作。最后,本文对上述两部分的工作做相应的总结分析。
在边缘环境中,本文将在边缘侧进行的AI模型训练称之为“AI on edge”。这种训练需要大量资源来进行数据参数的交换更新,但往往存在着数据隐私暴露的风险。幸运的是,FL作为一种新兴的分布式学习架构,能够很好地解决AI on edge存在的一些问题。对于EC中能力多样、网络条件有限的设备,FL可以在处理Non-IID训练数据时保护隐私,在高效通信、资源优化和安全等方面具有良好的扩展性。表1中列出了一些关于FL的工作。
表1 FL的相关工作
2.1.1 标准FL
FL[19]作为端-边-云之间的一种实用的深度学习训练机制而出现。在FL的框架下,移动设备被视为执行本地训练的客户端。同时,云中的终端设备、边缘节点和服务器在一定条件下也可以等价地视为FL中的客户端。下面讨论基于边缘计算的联邦学习基本原理。FL不需要上传数据到中心云进行训练,边缘设备只需要使用本地数据训练本地DL模型,然后上传更新后的DL模型参数。在标准FL中有两个角色:具有本地数据的客户端和负责模型聚合的聚合服务器。整个FL的过程如下:① 请求一组客户端从服务器下载初始化全局DL模型参数;② 用本地数据在下载的全局模型参数上训练本地模型;③ 将更新后的本地模型参数上传到服务器,接着对本地模型参数进行加权聚合得到全局模型参数。如图1所示,根据FL中的两个角色和EC三个层次之间的关系,有3种可行的训练FL的解决方案:① 端-边合作:边缘节点代替云作为服务器,端侧作为客户端;② 边-云合作:边侧作为客户端参与FL,而云作为聚合服务器;③ 端-边-云合作:端边两侧作为客户端参与FL,而云作为聚合服务器,这种方式可以结合上述两种方式的优点。
图1 端-边-云网络架构下的FLFig.1 FL of end-edge-cloud network architecture
2.1.2 高效通信FL
在FL训练过程中,不用将原始数据上传到服务器,可以说在很大程度上降低了通信代价。但如果本地训练的DL模型足够大,从边缘设备向中心服务器上传模型参数也会消耗大量的通信资源。为了解决这一问题,有学者提出让FL边缘设备定期地(不是持续地)与中央服务器通信,以寻求关于全局DL模型的共识[20]。此外,FL框架下,DL模型参数的压缩和学习策略的创新也能实现FL高效通信的目的。例如,在文献[21-22]中,提出了一种稀疏三元压缩方法,实现客户端和服务器之间参数传输的上下游通信压缩,达到降低通信代价的目的;文献[23]提出了一种异步学习策略,该学习策略将不同层次的深度神经网络分为浅层和深层,深层的参数更新频率低于浅层。此外,在服务器上引入时间加权聚合策略,利用之前训练的局部模型,从而提高中心模型的准确性和收敛性。
另外,与云相比,边缘设备的计算资源非常稀缺。提高通信效率还需要考虑其他挑战:① 计算资源在边缘设备上是异构的和有限的;② 边缘设备上的训练数据可能是Non-IID的。基于此,文献[24]推导出的Non-IID分布式学习的收敛界,可以保证在理论上优化所有参与设备在给定资源预算下的聚集频率。
2.1.3 资源优化FL
当FL将相同的神经网络模型部署到异构的边缘设备时,计算能力较弱的设备可能会极大地延迟全局模型的聚合。虽然将掉队者从协作中剔除可以在一定程度上缓解延迟问题,但掉队者可能会保留从非相同数据集学习到的独特和关键信息,直接剔除会损害整体协作性能。因此,文献[25]中提出了异构感知FL框架Helios来解决设备能力异构的问题。Helios识别单个设备的异构训练能力,因此预期的神经网络模型训练量与协作训练速度有关。针对掉队设备,提出了一种软训练方法,通过旋转神经元训练方法将原始相同训练模型动态压缩到期望体积。通过广泛的算法分析和优化方案,可以在保持局部训练和联邦协作收敛的同时,充分利用掉队者的信息。实验表明,在不同的协作设置下,Helios可以提供高达2.5倍的训练加速度并提高4.64%的收敛精度。
同时,在移动EC场景中部署FL时,FL的执行时间主要取决于客户端数量及其计算能力。因此,为了最小化FL的训练时间,对FL进行适当的资源分配不仅需要考虑FL参数(如计算通信的精度水平),还需要考虑客户端的资源分配(如功率和CPU周期)。但是,客户端能耗的最小化和FL执行时间存在冲突。例如,客户端可以通过始终保持低频率的CPU来节省能源,但这肯定会增加训练时间。因此,为了在能量消耗和训练时间之间取得平衡,文献[26]首先为每个客户端设计了一种新的算法——FEDL,对其局部问题进行近似求解,直到达到局部精度水平。然后,利用帕累托效率模型,提出了无线网络中FEDL的非凸资源分配问题,以获取客户端能量成本和FL执行时间之间的权衡。最后,利用该问题的特殊结构,将其分解为3个子问题,并据此推导出闭解,表征了帕累托效率控制旋钮对最优解的影响。
此外,FL中涉及的设备数量通常很大,从数亿到数百万不等。当设备数量巨大时,在每轮客户端和服务器进行通信时,将这些设备的本地模型参数全部上传到服务器进行加权聚合是不现实的。为了解决设备数量带来的通信压力问题,文献[27]提出了一个经验驱动的控制框架,该框架利用强化学习智能地选择客户端设备参与每一轮的全局聚合,在减少通信轮数的情况下达到同等模型精度的实现。
2.1.4 安全增强FL
在分布式训练场景中,客户端的信息交流是涉及到分布式机器学习中的隐私核心问题。FL避免了上传训练数据可能导致的隐私泄露,但同时也引入了模型更新的隐私问题。可以引入差分隐私(Differential Privacy,DP)的技术,在敏感数据中添加噪声来严格量化表达式控制信息的公开,有助于降低FL训练更新中隐私泄露的威胁,常见的几种FL的模型如图2所示。
(a) 集中学习
为了解决FL训练时的隐私问题,客户端首先利用自己的数据计算模型参数更新,然后进行差分隐私处理,最后上传处理后的模型参数并进行模型聚合。从另一个角度来看,聚合服务器对训练设备也不应该完全信任,因为对手可能会毒害他们的训练数据或直接篡改模型更新,从而导致对全局模型的破坏。为了使FL能够容忍拥有中毒数据集的少量设备参与训练,鲁棒联邦优化[28]定义了一个修剪的平均操作。通过过滤有毒设备产生的值和正常设备中的自然离群值,实现了鲁棒聚合,保护全局模型不受中毒数据的影响。
除故意攻击外,还应关注不可预测的网络条件和计算能力给安全带来的被动不利影响。无线通信噪声不可避免地阻碍了训练设备与聚合服务器之间的信息交换,这可能对训练延迟和模型可靠性产生重大影响。在文献[29]中,提出了基于期望模型和最坏情况模型下的并行优化问题,并分别采用正则化的损失函数逼近算法和基于抽样的逐次凸逼近算法求解这两个模型。理论分析表明,该方法具有可接受的收敛速度;仿真结果表明,该方法提高了模型精度,降低了损耗函数。
反过来,FL中聚合服务器的故障也可能导致不准确的全局模型更新,从而污染所有本地模型参数的更新过程。此外,数据样本数量较多的边缘设备可能不太愿意与贡献较少的其他设备一起参与FL。因此,在文献[30]中,提出了将区块链和FL结合为BlockFL,以实现:① 在每个边缘设备而不是特定服务器上进行局部全局模型更新,确保在更新全局模型时,设备故障不会影响其他局部更新;② 刺激边缘装置参与FL的适当奖励机制。
随着对精度要求的提高,深度神经网络(DNN)的层数也越来越深,如此就需要更大规模的数据集,这样会造成昂贵的计算费用。因此,之前的AI模型都是部署在高性能的云计算平台上,而终端设备只是将输入数据发送到云端,然后等待AI推理结果。然而,仅云推理限制了AI服务的部署。此外,对于重要的数据源,应解决数据安全和隐私保护问题。为了解决这些问题,AI服务往往诉诸EC。因此,AI模型需要进一步定制,以适应资源受限的边缘,同时仔细处理其推理精度和执行延迟之间的权衡。本小节从模型优化、模型分割以及模型共享三方面对模型推理做了详细的阐述。
2.2.1 模型优化
AI任务通常是计算密集型的,需要很大的内存占用。但在边缘,没有足够的资源来支持原始的大规模AI模型。优化AI模型并量化其权重可以降低资源成本。下面讨论3种常用的模型优化方法。
(1) 参数剪枝与共享
大量的参数是制约AI模型训练效率的重要因素。因此,为了实现更高效、快速的AI模型训练,一些研究者对AI模型进行了参数剪枝和共享的优化。文献[31]中提出了缓存相邻层之间的中间数据,以减少数据移动。此外,像二值化一样的量化也是一个很好的分支。在XNOR-Net[32]中,不仅滤波器近似于二进制值,卷积层的输入也是二进制的。卷积主要是用二元运算来近似的。这些措施提供了58倍的加速,同时在某些数据集(如CIFAR-10)上实现了类似的精度。
(2) 传输/紧凑卷积滤波器
为了实现AI模型的优化,可以设计一种特殊结构的卷积滤波器来节省参数。但该方法只适用于卷积层。在文献[33]中,提出的SqueezeNet比AlexNet的参数减少了50倍,且在ImageNet上实现了相同的精度水平。减少参数的方法是用1 × 1滤波器代替3 × 3滤波器,并减少输入通道的数量。同时,在网络后期进行降采样是为了使精度最大化。
(3) 知识蒸馏
文献[34]中首次提出了知识蒸馏的概念,它是一种将知识从复杂的AI模型转移到紧凑的AI模型的方法。一般来说,复杂的AI模型是强大的,而紧凑的AI模型更灵活和高效。知识蒸馏可以利用一个复杂的AI模型来训练一个紧凑的AI模型,使其具有与复杂AI模型相似的性能。
这些方法可以应用于不同类型DNN或组合来优化复杂的边缘AI模型。
2.2.2 模型分割
以往,大多数智能应用程序只在云中执行,而边缘设备只扮演收集和上传数据的角色。如今,随着技术的进步,边缘设备有了更好的硬件配置,研究人员开始思考是否通过深度学习模型的分割将部分或全部计算任务推到边缘。这样可以将大量的计算任务分解成不同的部分,不同的设备可以协同解决问题。
在文献[35]中,对最先进的AI模型在云和边缘设备上的延迟和功耗进行了评估,发现将数据上传到云是当前AI服务方法的瓶颈(导致传输开销很大)。划分AI模型并进行分布式计算,可以获得更好的端到端延迟性能和能源效率。此外,通过将部分DL任务从云推送到边缘,可以提高云的吞吐量。
最常用的一种分割方法是将AI模型水平分割,即沿端-边-云进行分割。数据分析的过程通常分为两部分[36],一部分在边缘处理,另一部分在云中处理。由于上传数据减少了中间数据,这样既减少了边缘与云之间的网络流量,又避免了数据传输中安全隐私泄露的风险。
另一种模型分割方法是垂直分割,特别是CNN。相对于水平分区,垂直分区将层进行融合,以网格的方式进行垂直分区,将CNN各层划分为独立的可分布计算任务。Deep Things[37]利用了一种名为“融合Tiles Partitioning (FTP)”的新方法,融合层以网格方式垂直划分。实验结果表明,在不降低精度的情况下,FTP至少可以将内存占用减少到32%。同样,J.Zhang的团队在文献[38]中为本地分布式移动计算设计了一个框架,提出了一种通用的神经网络层分割工具,测试了一些常见的神经网络,其中Google Net的实验得到了最好的性能,该系统几乎将总延迟减少了一半。
2.2.3 模型共享
AI的计算往往是复杂的,密集的计算是对设备资源的巨大考验。然而,AI计算具有高度的逻辑性,使得不同的DL操作过程具有一定的相关性。因此,如何利用DL操作的相关性成为优化AI模型的出发点。对于AI计算的共享,一种思路是对推理结果进行缓存和重用,以避免冗余操作,该思路在一些场景中取得了良好的实践效果。
边缘节点覆盖范围内附近用户的请求可能表现出时空局域性[39]。例如,同一区域内的用户可能会请求对同一感兴趣的对象进行识别任务,这可能会引入DL推理的冗余计算。在这种情况下,Cachier[39]在对应用进行离线分析和在线估计网络条件的基础上,提出将识别应用的相关AI模型缓存到边缘节点,并通过动态调整其缓存大小来最小化预期的端到端延迟。因此,当缓存中的AI模型能够满足请求的要求时,可以直接从缓存中获取AI模型进行使用。通过这种方式,可以通过使用缓存和重用来避免冗余操作。
此外,为了继续进行有效的缓存和结果重用,必须解决可重用结果的精确查找问题,即缓存框架必须系统地容忍变化并评估关键的相似性。Foggy Cache[40]首先将异构原始输入数据嵌入到具有通用表示的特征向量中;然后,提出了自适应局部敏感哈希(Adaptive Locality Sensitive Hashing,A-LSH),即一种常用来索引高维数据的局部敏感哈希的变体,对这些向量进行索引,以实现快速准确的查找;最后,基于K-紧邻(K-Nearest Neighbor,KNN)实现均匀化,利用缓存的值去除离群值,确保初始选择的k条记录之间存在主导聚类,从而确定A-LSH查询记录的重用输出。因此,通过对可重用结果的精确查找和计算结果的缓存,可以减少AI模型的计算量,减轻对硬件资源的压力。
与共享推理结果不同的是,文献[41]通过不同AI模型之间的共享来减少计算量。通过考虑训练样本之间的相关性,作者提出了同一目标区域内的迁移学习算法,即如果一个目标区域内存在多个相关的AI模型,那么一个AI模型的训练也可以使其他相关的AI模型受益。该方法通过共享训练良好的AI模型,减少了未训练的AI模型在同一目标区域的AI计算量。
尽管AI on edge的工作研究很多,但也存在一些很明显的挑战。本文分别从数据可用性、模型训练、协调机制和性能指标四方面列举了AI on edge的重大挑战。
数据质量数据的可用性是一切模型训练的基础。首先,对于提供原始数据的用户需要提供一定的激励才能获得更加有用的真实数据,所以对提供数据的用户设计合理的激励机制是十分重要的。否则,原始数据可能无法用于模型训练和推断。此外,来自各个终端设备的原始数据可能会有明显的偏差,这将极大地影响学习性能。尽管联合学习可以克服Non-IID所带来的问题,在一定程度上,训练过程在设计鲁棒通信协议方面仍面临很大困难。因此,在数据可用性方面存在着巨大的挑战。
模型训练目前,从模型本身到训练框架和硬件,AI模型的训练面临着以下两方面的严峻挑战。第一,基于AI模型时效的考量,如何确定合适的模型学习精度阈值,以利于AI模型的快速交付和部署;第二,如何在有限的资源下选择探索性训练框架和加速器架构。模型选择、资源配置和管理耦合,问题复杂而富有挑战性。
协调机制考虑到异构设备之间的计算能力和通信资源的差异,得到的AI模型无法在所有的设备适用,这可能会导致相同的方法在不同的移动设备集群中获得不同的学习结果。因此,考虑异构边缘器件之间的兼容性和协调具有重要的意义。所以,在端-边-云之间设计一种协调机制是十分必要的,这种机制将为不同的边缘设备提供一个统一的API接口。
性能指标由于EC网络的不确定性特征(无线信道质量变化、并发业务请求不可预测等),常用的标准性能指标(如Top-k精度或平均精度)不能反映边缘环境中AI模型推理的运行性能。因此,这将导致无法准确量化和比较不同AI模型的性能。除了模型精度之外,推理延迟、资源消耗和服务收入也是关键指标。由于服务类型和应用场景的不同,一个边缘AI服务往往涉及多个指标,这时就会出现一个新的问题,即多个指标之间的权衡。由于EI服务的特点,不同的指标对服务的影响也不同。然而,如何准确地平衡多个指标,使综合绩效最大化,已成为定量EI服务性能的关键。因此需要识别EI的关键性能指标,并探索这些指标之间的权衡,以帮助提高EI部署的效率。
在这一部分,将AI for edge的研究工作分为任务卸载和边缘缓存两部分。
边缘计算允许边缘设备在能量、延迟、计算能力等约束下,将部分计算任务卸载给边缘节点[42]。但如图3所示,存在如下一些挑战:① 当一个边缘设备处于多个边缘节点的服务范围时,如何选择合适的节点进行任务卸载;② 对于有一定计算资源的边缘设备,需要平衡在本地和在边缘节点执行任务时的资源消耗和延迟程度,以此达到一个最优的执行策略;③ 由于应用程序服务的多样性,边缘设备也需要处理各种各样的任务。但是,不同类型的任务对资源的需求不同。因此,对各种资源的分配也是一个挑战。
图3 EC中的任务卸载问题Fig.3 Task offloading problem in EC
解决这类任务卸载问题是NP-hard[43],因为至少需要结合优化通信和计算资源以及边缘设备的竞争。特别是,优化需要考虑无线环境的时变(如信道质量的变化)和任务卸载的要求,因此需要使用学习方法。在所有与基于学习的优化方法相关的工作中,当有多个边缘节点和无线信道可进行计算卸载时,基于DL的方法比其他方法更具有优势。下面介绍两种基于DL的方法。
3.1.1 DNN用例
为了更高效地利用网络资源,在DNN的基础上研究者提出了许多高效卸载方案。例如,文献[44]提出了一种将DNN划分为多个分区的技术,这些分区可以在本地由终端设备处理,也可以卸载到一个或多个强大的节点上。文献[45]采用最短路径法和惩罚因子法确定DNN分区,并在每个DNN分区到达时增量构建DNN模型,允许客户端在上传整个DNN模型之前就开始部分上传,从而提高查询性能;基于上传开销罚因子法,文献[46]提出了一种增强分区法,该方法利用客户端与云/边缘服务器之间的DNN执行图上的最短路径法对DNN层进行分区,生成更细粒度的上传计划;文献[47]将DNN最优计算调度问题转化为移动云计算环境下的最短路径问题和整数线性规划(ILP),并通过层粒度优化公式对DNN架构进行划分,从而实现移动设备和云之间的协同计算。文献[48]提出了一种端边云协同环境下的DNN推理加速高效卸载方案(EosDNN),其中DNN推理加速主要体现在迁移延迟的优化和实时DNN查询的实现。
此外,文献[49]研究了关于区块链的一个特殊卸载场景。边缘设备上挖掘任务的计算和能量消耗可能会限制区块链在EC网络中的实际应用。当然,这些挖掘任务可以从边缘设备卸载到边缘节点,但这可能导致边缘资源分配不公平。
3.1.2 DRL用例
虽然将计算任务卸载到边缘节点可以提高计算任务的处理效率,但由于无线环境的潜在质量较低,卸载的可靠性受到影响。在文献[50]中,为了使卸载效用最大化,作者首先量化了各种通信模式对任务卸载性能的影响,并据此提出了应用DQL(Deep Q-Learning)在线选择最优目标边缘节点和传输模式的方法。文献[51]不仅考虑了延迟违反概率,还考虑了解码错误概率,指出了传输数据的编码速率是使卸载达到要求的可靠性水平的关键;考虑了编码块长度的影响,提出了计算资源分配的马尔可夫决策过程(MDP),以提高平均卸载可靠性。
此外,还有不少文献讨论了边缘设备细粒度计算资源的调度问题,主要涉及到任务卸载中的能量收集问题。例如,文献[52]使用DDQL提出了一种最佳的动态电压频率缩放算法,实验结果显示与DQL相比,DDQL可以节省更多的能量,实现更高的卸载效率。与之前基于DQL的离散功率控制策略不同,文献[53]提出了一种具有连续动作空间(而非离散动作空间)的DRL方法DDPG,对局部执行和任务卸载进行更细粒度的功率控制。该方法可以自适应地分配边缘设备的功率,以使其长期平均成本最小,数值仿真验证了该方法相对于基于DQL的离散功率控制策略的优越性。
随着各类智能终端设备的兴起,多媒体应用、手机游戏、社交应用等服务也得到了快速发展。这一趋势在给网络架构带来越来越大流量压力的同时,也展示了一个有趣的特性,即相同的内容经常被同一区域的设备多次请求。这一特性促使研究人员考虑如何缓存内容,以实现对请求的快速响应,并减少网络上的流量负载。从内容交付网络到蜂窝网络的内容缓存,网络中的内容缓存研究从未停歇,以此来应对不断增长的多媒体业务需求。边缘缓存[54]符合向用户推送内容的理念,被认为是进一步减少冗余数据传输、缓解云数据中心压力、提高QoE(Quality of Experience)的一种很有前景的解决方案。
边缘缓存可以利用地理位置上离用户较近的边缘节点缓存热点内容,从而实现对服务范围内请求的快速响应。因此,边缘缓存不仅可以实现更快的请求响应,还可以减少网络中相同内容的重复传输。然而,边缘缓存也面临许多挑战。通常,边缘缓存需要解决两个密切相关的问题:① 边缘节点覆盖范围内热门内容的分布难以估计,可能会随时空变化而不同,并发生变化[55]; ② 针对EC环境中海量异构设备的特点,层级化的缓存体系结构和复杂的网络特性使内容缓存策略的设计更加困难[56]。具体来说,只有当内容流行度分布已知时,才能推导出最佳边缘缓存策略。然而,用户对内容的偏好实际上是未知的,因为他们的移动性、个人偏好和连通性可能一直在变化。在本小节中,将讨论用于确定边缘缓存策略的DL学习算法。
3.2.1 DNN用例
传统的缓存方法通常计算复杂度较高,因为它们需要大量的在线优化迭代来确定用户和内容的特征以及内容放置和传递策略。
① DL可以用来处理从用户的移动设备上收集到的原始数据,从而提取用户和内容的特征,作为基于特征的内容流行矩阵。这个流行度矩阵可以量化用户和内容的流行度,为缓存决策提供数字基础。例如,文献[57]提出在FL的框架下使用自动编码器实现用户信息和文件信息的特征提取,然后根据相似度矩阵给出推荐的缓存列表。
② 在使用DNN优化边缘缓存策略时,可以通过离线训练避免在线繁重的计算迭代。DNN由一个用于数据正则化的编码器和后面的隐藏层组成,可以用最优或启发式算法生成的解进行训练并部署,以确定缓存策略[58],从而避免在线优化迭代。类似地,在文献[59]中,受部分缓存刷新优化问题的输出具有某些模式的启发,训练MLP接收当前内容流行度和最后一次内容放置概率作为输入,以生成缓存刷新策略。
虽然可以设计和实现基于DNN的缓存内容放置和传递策略,但仍存在一些不足。如文献[58-59]所示,优化算法的复杂性可以转移到DNN的训练中,从而打破了使用优化算法的实际局限性。在这种情况下,DL用于学习输入——解关系,而基于DNN的方法只有在原始缓存问题存在优化算法时才可用。因此,基于DNN方法的性能受固定的优化算法限制,不具有自适应性。
此外,DL还可以用于定制边缘缓存。例如,为了最小化自动驾驶汽车的内容下载延迟,在云中部署一个MLP来预测需要请求的内容的流行程度,然后将MLP的输出发送到边缘节点(即文献[60]中RSu的MEC服务器),最后根据这些输出,每个边缘节点缓存最有可能被请求的内容。
但是,对于不同特征的用户,他们对内容的偏好是不同的。因此,可以将用户深度划分为不同的类别,然后探究每个类别中用户的偏好,这对提高内容缓存的命中率有积极的影响。在自动驾驶汽车方面,CNN被选中预测车主的年龄和性别。一旦识别出车主的这些特征,就使用K-means聚类和二值分类算法来确定哪些已经缓存在边缘节点的内容需要进一步从边缘节点下载并缓存到汽车上。此外,文献[61]在充分利用用户特性方面指出,在不同的环境中,用户访问内容的意愿是不同的。受此启发,RNN被用来预测用户的轨迹。然后根据这些预测,将所有用户感兴趣的内容预取并提前缓存到每个预测位置的边缘节点。
3.2.2 DRL用例
上节中描述的DNN功能可以看作是整个边缘缓存解决方案的一部分,即DNN本身并不处理整个优化问题。与这些基于DNN的边缘缓存不同,DRL可以利用用户和网络的上下文环境,以自适应策略最大化长期缓存性能作为优化方法的主体。
与传统的RL,如Q-learning[62]和Multi-Armed Bandit (MAB) Learning[55]相比,DRL的优势在于DNN可以从原始观测数据中学习关键特征。结合RL和DL的集成DRL agent可以直接从高维观测数据中优化EC网络的缓存管理策略。
文献[63]使用DDPG来训练DRL代理,以最大化长期缓存命中率,做出适当的缓存替换决策。该工作考虑单个BS场景,在该场景中,DRL代理决定是缓存请求的内容还是替换缓存的内容。在训练DRL代理时,奖励被设计为缓存命中率。此外,利用Wolpertinger架构[64]来应对大行动空间的挑战。具体来说,首先为DRL代理设置一个主要操作集,然后使用KNN将实际操作输入映射到该集合中的一个。通过这种方式,操作空间被有意地缩小,而不会丢失最优的缓存策略。与基于DQL的算法搜索整个动作空间相比,经过训练的DRL代理与DDPG和Wolpertinger体系结构相比,能够在降低运行时间的同时实现具有竞争力的缓存命中率。
另外,考虑到流行内容的时变性,文献[65]使用Wolpertinger架构的深度强化学习框架研究无线网络边缘的内容缓存。特别地,提出了基于深度行为者-批评强化学习的集中和分散内容缓存策略。仿真结果验证了该策略相比最少使用策略(LFU)、最少最近使用策略(LRU)和先进先出策略(FIFO)具有很强的优越性。
虽然AI for edge的应用比较广泛,但也存在一些挑战。本节从系统建模、算法部署、优化与效率的平衡和资源编排四个方面列举了AI on edge的重大挑战。
系统建模使用AI方法进行系统建模时,公式化模型的数量必须是有限的。但模型数量的有限,使得一些以SGD和MBGD优化基础的AI算法可能无法很好地工作。同时针对MDP问题,状态集和动作集又不能是无限的,在进一步处理之前需要进行离散化,以避免维数灾难问题的出现。一般的解决方法是将约束转化为惩罚,并将其纳入全局优化目标。这种现状极大地制约了数学模型的建立,导致性能下降。这种情况可以被看作是利用AI方法的一种妥协。因此,这对在EC中建立合适的系统模型构成了挑战。
算法部署对于边缘的AI算法来说,当这些算法以在线方式部署在边缘时,会面临诸多挑战。此外,另一个被忽略的问题是,由哪个边缘设备来部署和运行所提出的复杂算法。现有的研究工作通常集中在具体问题上,而没有提供细节。
优化与效率的平衡尽管AI技术确实能够提供最优的解决方案,但在资源受限的边缘环境中,研究者更多的是关心如何在有限的资源下实现更高的算法效率。特别是在嵌入式的行业中,大多的设备都是资源受限的,但在嵌入式设备上部署的任务确实很多,要完成这些任务,就需要把有限的资源最大化。因此,如何在嵌入AI技术的情况下,提高EC系统在不同应用场景下的可用性和效率是一个严峻的挑战。
资源编排为了充分利用边缘计算的去中心化资源,需要建立与现有云计算基础设施的连接。由于EI的部署环境通常是高度动态的,边缘计算框架需要优秀的在线资源编排和参数配置,才能支持大量的AI服务。异构计算资源、通信资源和缓存资源的实时联合优化、高维系统参数配置是关键。然而,目前还没有相关的工作深入研究部署和使用这些DL技术在实际边缘计算网络或测试平台上,进行长期在线资源编排的性能分析。
EI的发展处于初始阶段,吸引了众多的学者参与研究,本文通过一个简单明了的分类对EI的研究现状提供一些参考。具体来说,本文首先分析了AI和EC的关系,提出了在IoT时代二者结合的必要性,从而引出EI的概念;接着,本文将EI分为AI on edge和AI for edge两部分,然后从模型训练、模型推理两方面阐述了AI on edge现状,并给出了存在的一些挑战;对于AI for edge,本文从任务卸载和边缘缓存两方面进行了阐述,并给出了可能存在的挑战。最后,希望本文能够激发相关学者对EI未来研究的兴趣。