近年来,人工智能(AI)再次迎来了蓬勃发展,众所周知的AlphaGo、智慧城市、智能家居、无人驾驶汽车,都是AI发展的延伸。此外,随着算力、算法、大数据处理的推陈出新,深度学习(Deep Learning, DL)在语音识别、计算机视觉等领域也实现了质的突破,越来越多的智能应用走进了人们的视线,极大地丰富了人们的生活方式,提高了生产效率。由于AI计算密集型的特征,大部分的AI任务都部署在云端或者大规模计算资源密集的平台上。考虑到云平台与智能终端的巨大物理距离以及智能终端产生的海量数据,研究者催生了将边缘计算与人工智能结合的想法,即边缘智能(Edge Intelligence, EI)。边缘计算和人工智能的结合是自然的,因为它们之间有明确的交叉点。具体而言,边缘计算旨在协调多个边缘设备和服务器,在用户侧生成和处理数据,而人工智能则从这些数据中学习,进而模拟设备或机器的智能行为。接下来将详细阐述这两者的关系。
1.网络边缘产生的数据需要人工智能的参与
近年来,随着移动物联网设备数量的激增,海量数据驱动型应用(如视频分析、语义分析、增强现实)的服务请求也不断在网络边缘堆积,边缘计算面临着请求调度、资源分配等问题。人工智能具备快速分析数据,并从中学习到类似于人为决策的智能行为的能力,因而可将其作为应用求解的利器。作为人工智能主流技术之一,深度学习能自动识别数据模式,感知数据异常,如交通流量、空气质量、人口分布等,并根据感知信息做出实时决策(如路口控制、公交规划、自动驾驶),以快速响应环境的变化,提高执行效率。
2.边缘计算为人工智能提供充裕数据和适用场景
近年来蓬勃发展的深度学习背后的驱动力来自于四个方面,即算法、硬件、数据和应用场景。算法和硬件对深度学习的影响是直观的,但数据和应用场景的作用同样不可忽略。通常,为了提高深度学习的学习能力,最直接的办法是增加神经元的数量,采集更多的训练数据,这也表明了数据对深度学习的重要性。传统上的大多数数据产生并存储在大规模的数据中心,随着物联网的快速发展,趋势正在逆转,边缘在生成大量数据。显然,如果将这些数据全部上传至云数据中心供AI处理,将消耗大量带宽资源,同时给云数据中心带来巨大的负载。为了解决这个问题,边缘计算将计算能力下沉至边缘,即靠近数据侧,从而实现低延迟数据处理以及数据驱动的高性能AI模型。数据来源于边缘,服务于人工智能,优化了AI模型的泛化能力。
总的来说,人工智能为边缘计算提供技术和方法,如基于神经网络的强化学习、联邦学习、模仿学习、深度超分辨率等,而边缘计算也为人工智能提供了场景和平台,如视频分析、视频增强、增强现实、虚拟现实、自动驾驶、资源调度等。
目前,大多数研究都是将边缘智能称为在边缘设备上运行AI算法的范式,其中数据也是来源于边缘。虽然这是最常见的边缘计算形式(如在边缘设备嵌入高性能AI芯片),但是这也限制了边缘智能的范畴。事实上,与本地执行AI算法相比,云-边协同的方式可以减少端到端的时延和能耗,因而边缘智能更是一种多层协同处理的模式。此外,现有边缘智能研究集中在AI推理阶段,而默认AI模型训练阶段在数据中心完成,这也意味着海量用户相关的数据从边缘设备传输至数据中心,极易引发数据隐私的泄露,因而训练阶段也应尽可能地靠近用户。
综上所述,边缘智能应是一种如下范式:充分利用由边缘设备、边缘节点和数据中心组成的层次结构中的可用数据和资源,以优化AI模型的训练和推断性能。根据AI模型部署的层次以及距离用户的远近,将边缘智能分为图4-8所示的六类:①模型训练和推断均在云端;②训练在云端,推断由云端和边缘节点协作完成;③训练在云端,推断由单个或多个边缘节点完成;④训练在云端,推断由边缘设备完成;⑤训练由边缘节点和边缘设备协作,推断在边缘设备上;⑥模型训练和推断均由单个或多个边缘设备完成。
图4-8 边缘智能的类别
随着移动和物联网设备的普及,用于AI模型训练数据也在网络边缘端大量产生,考虑到模型训练资源需求高,单个边缘设备无法处理大规模的模型训练任务,故而需要部署在云端或多方协同处理。如图4-9所示,当前边缘智能下的模型训练架构分为以下三类:
图4-9 模型训练的框架分类
(1)集中式训练:广泛分布的边缘设备(如智能手机、智能摄像头、车辆)产生海量数据,随即将其发送至算力强大的云数据中心进行训练。
(2)分布式训练:为了防止用户隐私泄露,每一个边缘计算节点都使用本地数据进行训练,并且通过与其他节点的模型共享来更新自身模型,显然这种模型不需要云数据中心的参与。
(3)混合式训练:混合架构结合了以上两种的特点,边缘服务器各自训练模型,并将训练好的模型发送至云端,云数据中心将模型参数聚合,并将新模型发送至边缘节点,直至模型收敛。
接下来将通过联邦学习(Federated Learning, FL)来了解边缘计算下的分布式模型训练。
联邦学习是一种基于云-边-端的分布式训练框架,其中具备一定计算能力的移动设备和边缘节点被视为执行本地训练的客户端,而算力强大但距离用户较远的云服务器则负责模型聚合。FL中的客户端不需要上传本地数据至云端,只需要使用本地数据进行训练,然后上传训练好的模型参数至云端。联邦学习整体执行流程如下:①客户端请求从聚合服务器下载初始化的全局模型参数;②客户端用本地数据更新下载的模型;③客户端将更新后的本地模型参数上传至服务器;④服务器对接收到的模型进行加权聚合,并将聚合后的模型参数反馈给客户端。重复执行以上步骤,直至模型收敛。
当前联邦学习主要集中于解决以下三个问题。
1.客户端和服务器间的通信优化
在FL训练过程中,客户端只需要将训练好的模型参数上传,而不用上传训练数据,这显著降低了通信代价。然而,当本地模型参数巨大时,参数上传也会占用大量带宽资源。Sattler等人 [12] 提出采用稀疏三元法来压缩客户端和服务器之间传递的上行模型参数和下行模型参数,以实现降低通信代价的目的;Chen等人 [13] 提出一种异步学习策略,将神经网络划分为深层和浅层,深层的更新频率低于浅层,同时对历史训练的局部模型,引入时间加权策略,聚合出当前模型,从而提高模型的准确性和收敛性;针对边缘计算资源有限,以及潜在的训练数据非独立同分布(Non Independent Identical Distribution, Non-IID)特性,Wang等人 [14] 导出Non-IID分布式学习的收敛界,以保证理论上优化在给定资源预算下的聚合频率。
2.异构设备的资源优化
广泛分布的边缘设备训练同一个AI模型时,计算能力较差的设备产生较大的训练时延,进而延迟了中心服务器的全局模型聚合。最简单的方法是将该瓶颈设备移除,然而该设备产生的数据可能包含关键信息,直接移除可能会降低模型的实用性。Xu等人 [15] 提出异构感知框架Helios来解决设备异构问题,Helios自动检测异构设备的训练能力,并以此分配一定的训练量,在充分利用瓶颈设备的同时,还能保持局部训练和联邦协作收敛。Dinh等人 [16] 为每个客户端设计一种资源(如功率和CPU周期)分配算法,来平衡能量消耗和训练时间。
3.联邦学习中的隐私保护
客户端与服务器之间的信息交流而产生的隐私保护问题,是分布式机器学习要解决的核心问题之一。差分隐私技术通过在敏感数据中添加噪声来控制信息的披露,以降低FL训练中隐私泄露的风险,该方法也广泛用于当前的FL训练中。客户端本地模型收敛后,对其进行差分隐私处理,最后将处理后的模型参数上传至服务器进行聚合。从另一角度,聚合服务器对边缘设备也需要一定的防备,因为错误的模型参数可能会引发全局模型的效能降低。Xie等人 [17] 提出鲁棒联邦优化,通过过滤边缘设备产生的离群值,实现鲁棒聚合,保护全局模型不受影响。
在对深度学习模型进行分布式训练之后,在边缘高效地模型推理对于提升用户体验至关重要。除了传统的基于云中心的推断外,如图4-10所示,边缘智能下的模型推断框架可分为以下四类:
(1)基于边缘服务器:客户端将数据发送至边缘服务器进行推断,服务器将推断结果返回给客户端,该框架适用于所有移动设备,然而推断性能严重依赖于网络带宽。
(2)基于边缘设备:客户端从边缘服务器或者云端下载模型参数,并在本地执行DNN推断,而无须再与边缘服务器通信,该框架下的推断性能取决于本地的可用资源(如GPU、CPU以及RAM)。
(3)基于边-端协同:移动设备根据当前系统信息(如网络带宽、设备资源、服务器负载等),将DNN切割成多块,并分别部署到本地服务器和边缘服务器,本地服务器只需将推断结果发送至边缘服务器进行进一步推断,该方法充分利用了客户端资源,并减少了数据传输。
(4)基于云-边协同:类似于边-端协同,客户端负责数据采集,边缘服务器和云服务器负责具体的推断,该种框架适用于资源受限的客户端,但当网络拥塞时,其也会产生大量的数据传输时延。
图4-10 边缘智能下的模型推断框架
当前优化模型推断的研究集中在以下几个方面:
❑ 模型优化 。神经网络推断往往是计算密集型的,对计算和内存资源需求很高,且模型越复杂,需要的资源越多,因而优化AI模型可降低资源成本。首先,为了实现高效的AI模型推断,一些研究对模型进行了参数剪枝和共享优化。Alwani等人 [18] 提出复用相邻层之间的中间数据,以减少数据通信,同时采用二进制来量化卷积层的输入,这使得推断速度提升了58倍。其次,Hinton等人 [19] 首次提出知识蒸馏的概念,这是一种将复杂模型转化为精简模型的方法,既降低了模型的复杂度,同时又保持了原模型重要的特征。文献[20]提出一个实现模型早退机制的编程框架BranchyNet,通过在某些层位置添加出口分支来修改标准DNN模型结构。每个出口分支都是一个出口点,与标准DNN模型共享部分DNN层。输入数据可以在这些不同的早退点进行分类。
❑ 模型切割 。考虑到边缘设备算力越来越强大,原本只能在边缘服务器或者远端进行推断的DNN也能在边缘设备上部署,形成云-边-端协同、边-端协同,甚至于边-边协同推断框架。研究发现,切割AI模型,并进行分布式处理,可以获得更好的端到端时延以及能源利用率。在文献[21]中,DNN模型是在设备和服务器之间进行划分的,关键的挑战是找出一个合适的划分点,以获得最佳的模型推理性能。Kang等人分别考虑延迟方面和能量效率方面,提出了一种基于回归的方法来估计DNN模型中每个层的延迟,并返回使模型推理满足延迟要求或能量要求的最佳分割点。MoDNN [22] 引入了Wi-Fi直连技术,在WLAN中使用多个授权的支持Wi-Fi的移动设备来构建微型计算集群,以进行分区DNN模型推断。发出DNN任务的移动设备是所有者,其他设备充当工作节点。为了加速DNN层的执行,MoDNN中提出了两种分区方案。实验表明,使用2~4个工作节点,MoDNN可以将DNN模型推理速度提高2.17~4.28倍。
1.数据质量
尽管海量数据在边缘设备端产生,但其中可用于模型训练的高质量数据并不多,而数据的好坏直接决定了模型质量的高低,并且数据的Non-IID特性也极大地影响着学习性能。尽管分布式学习能在一定程度上克服这个问题,但在设计鲁棒通信协议方面仍面临巨大挑战。
2.模型兼容
考虑到边缘设备计算能力和通信资源的异构性,聚合服务器得到的模型不一定在所有设备上都适用。因而,需要考虑异构设备之间对于模型的兼容性,设计一个统一的API接口。
3.模型可扩展性
模型训练通常是离线完成的,然而边缘环境在本质上是动态变化的,如数据分布、设备资源、用户需求等,因而模型的性能也会因为输入环境的改变而变化。模型的在线训练在一定程度上缓解了这个问题,然而由于训练需要消耗大量的时间,这也降低了模型的实时性。同时,在线训练对本地设备也提出了更高的要求。