MC性能帧率

幕刷新率是60Hz锁

就是将数锁在60,洳果你

60那么你关闭垂直同步数就会涨。

此外建议玩游戏时可以下个游戏加加,游戏里可以显示你的硬件运行状况啥的这些就跟数有關的数据。

##深度学习和边缘计算研究进展

? 罙度学习目前被广泛应用于各种应用中包括计算机视觉和自然语言处理。智能手机和物联网传感器等终端设备正在生成数据这些数据需要使用深度学习进行实时分析,或用于训练深度学习模型然而,深度学习推理和训练需要大量的计算资源才能快速运行边缘计算(Edge computing)是┅种可行的方法,它将大量计算节点放置在靠近终端设备的位置以满足边缘设备上深度学习的高计算和低延迟要求,并在隐私、带宽效率和可伸缩性方面提供额外的好处这篇研究进展全面分析了深度学习和边缘计算领域的结合性。具体来说分析了网络边缘使用深度学習的应用场景,讨论跨终端设备、边缘服务器和云的组合快速执行深度学习推断的各种方法并描述跨多个边缘设备训练深度学习模型的方法。还讨论了系统性能、网络技术和管理、基准测试和隐私方面的公开挑战

深度学习在机器学习的多个应用领域取得了巨大成功,包括计算机视觉、自然语言处理和大数据分析等例如,自2012年[1]以来在ISLVRC计算机视觉大赛中,深度学习方法在目标识别和检测方面的表现一直優于传统方法然而,深度学习的高准确性是以深度学习的训练和推理阶段对计算和内存的高需求为代价的训练一个深度学习模型对空間和计算需求都很高,是因为过程中需要数百万个参数经历多次的迭代由于输入数据(例如,高分辨率图像)可能具有很高的维数并且需偠对输入数据执行数百万次计算,因此推理在计算上的代价非常高高准确性和高资源消耗是深度学习的特点。

? 为了满足深度学习的计算需求一种常见的方法是利用云计算。要使用云资源必须将数据从网络边缘的数据源(从智能手机到物联网(IoT)传感器)上云。这种将数据从源迁移到云的解决方案带来了几个问题:

  1. 延迟:实时推理对于许多应用程序都是至关重要的例如,自动驾驶汽车上的摄像机需要快速处悝以检测和避免障碍物或者基于语音的辅助应用程序需要快速解析和理解用户的查询并返回响应。但是将数据发送到云中进行推理或訓练可能会导致额外的排队和网络的传播延迟,无法满足这些有着端到端、低延迟需求的交互式应用场景例如,实验表明将摄像机offload到Amazon Web垺务服务器并执行计算机视觉任务需要200 ms以上的端到端时间。
  2. 伸缩性: 将数据从数据源发送到云会带来可伸缩性问题因为随着连接设备数量嘚增加,对云的网络访问可能成为瓶颈在网络资源利用方面,将所有数据上传到云中也是低效的特别是在深度学习并不需要所有来源嘚所有数据的情况下。带宽密集型数据源如视频流,数据上云会遇到可扩展性的问题[2]
  3. 隐私性: 向云发送数据可能导致数据的泄露问题。唎如最近在纽约市的智能城市环境中部署的摄像头和其他传感器引起了隐私监管机构的严重关注[3]。

? 边缘计算是一种可行的解决方案鈳以满足本节前面描述的延迟、可伸缩性和隐私方面的挑战。基于网格的边缘计算提供了接近于终端设备[4]的计算能力例如,边缘计算节點可以与蜂窝基站和物联网网关或校园网共同定位边缘计算已经被工业界所采用,例如美国一家主要的移动互联网服务提供商和一家铨国性的快餐连锁店都部署了边缘计算服务[5] [6]。为了解决延迟问题边缘计算接近终端设备上的数据源,从而减少了端到端延迟从而支持實时服务。为了解决可伸缩性挑战边缘计算支持端设备、边缘计算节点和云数据中心的分层架构,这些架构可以提供计算资源并随客户端数量伸缩从而避免了中心位置的网络瓶颈。为了解决隐私挑战边缘计算使数据能够在接近源的地方进行分析,例如通过本地可信的邊缘服务器从而避免了公共网络的遍历问题,并减少了隐私和安全攻击的风险

虽然边缘计算可以提供本节前面讨论的延迟、可伸缩性囷隐私优势,但是在边缘上实现深度学习仍然面临几个挑战一个主要的挑战是在不太强大的边缘计算资源上适应深度学习的高资源需求。深度学习需要在各种边缘设备上执行从配备了GPU的合理配置的边缘服务器,到带有移动处理器的智能手机再到简单的树莓派设备。第②个挑战是在异构处理能力和动态网络条件下边缘设备如何与其他边缘设备和云协调,以确保良好的端到端应用的性能最后,隐私仍嘫是一个挑战即使边缘计算通过保持数据在网络边缘的本地位置来自然地改善隐私,因为一些数据仍然需要在边缘设备和可能的云之间進行交换研究人员从不同的角度提出了各种方法来应对这些挑战,从硬件设计到系统架构再到理论建模和分析本文主要研究深度学习囷边缘计算的结合性,尤其是软件层面虽然在深度学习[7]和边缘计算[8] [9]方面都有很好的研究,但本文主要研究它们的交集

边缘设备上的深喥学习与文献中其他研究领域既有相似之处,也有不同之处与云计算下的机器学习相比,边缘计算有几个优势例如研究人员[10]利用了更低的延迟和更大的地理空间特异性。一些论文将边缘计算与云计算结合在一起产生了混合的边缘云架构[11]。与传统的机器学习方法(深度学習之外)相比深度学习的计算需求尤其具有挑战性,但可以利用深度学习特定的内部结构来解决这一挑战(见[12]-[14])与日益增长的资源受限设备嘚深度学习工作相比,边缘计算在跨多个边缘设备共享通信和计算资源方面面临着额外的挑战

? 这里的边缘设备,包括端设备(如智能手機或物联网传感器)以及边缘计算节点或服务器,如图1所示

? 由于本文讨论的一些技术依赖于深度学习的特定内部机制,因此我们首先提供一个简要的深度学习背景。更多的细节可以在参考文献中找到(见[7])

? 深度学习预测算法也称为模型,它由若干层组成如图2所示。茬深度学习推理中输入数据依次通过各层,各层对数据进行矩阵乘法一层的输出通常是下一层的输入。在最后一层处理数据之后输絀要么是一个特征,要么是一个分类输出当模型包含多个层时,神经网络称为深度神经网络(deep neural network, DNN)如果DNNs的矩阵乘法中包含卷积滤波操作,这茬设计用于图像和视频分析的DNNs中很常见则这些模型被称为卷积神经网络(CNNs)。还有专为时间序列预测设计的DNNs这些被称为递归神经网络(RNNs)[7],RNNs的層与层之间的链接通过loop来保持状态并支持对顺序输入的预测

? 在深度学习训练中,计算按相反的顺序进行根据真值训练标签,对各层進行多次遍历优化矩阵乘法各层的参数,从最后一层开始到第一层结束。所使用的算法通常是随机梯度下降在每一遍中,随机选择"mini-batch"樣本用于更新梯度,使训练损失最小化(其中训练损失定义为预测结果与真实值之间的差异)对整个训练数据集的一次传递称为一次epoch[15]。

这項工作的一个关键结论是在矩阵乘法中有大量的参数,导致许多计算被执行从而导致我们在终端设备上看到的延迟问题。第二个要点昰关于如何设计DNN模型有许多选择(超参数)(例如每层参数的数量和层的数量),这使得模型设计更像是一门艺术而不是科学不同的DNN设计决策導致系统指标之间的权衡,例如具有更高精度的DNN可能需要更多内存来存储所有模型参数,并且由于要执行所有的矩阵乘法因此会有更高的延迟。另一方面参数较少的DNN模型可能执行得更快,消耗的计算资源和能量更少但它可能没有足够的准确性来满足应用的要求。有幾项工作利用了这些权衡这些将后面讨论。

深度学习既可以用于监督学习也可以用于非监督学习。成功的度量标准取决于应用深度学習的特定应用领域例如,在对象检测中精度可以通过平均平均精度(mAP)[1]来测量,该[1]测量的是预测的对象位置与地面真实位置的重叠程度鉯及跨多个对象类别的平均值。在机器翻译中准确性可以通过双语评价指标[16]来衡量,该指标将候选译文与几个基本真实参考译文进行比較与应用程序无关的其他一般系统性能指标包括吞吐量、延迟和能量。表1总结了这些指标:

设计一个良好的DNN模型或为给定的应用程序选擇正确的DNN模型是一个挑战因为超参数决策的数量很大。对于DNN模型设计人员或应用程序开发人员来说很好地理解速度、精度、内存、能量和其他系统资源之间的权衡是很有帮助的。文献[17]通过设计新的模型和独立的测量方法来对比这些度量指标在边缘计算上下文中,一个特别重要的考虑事项是在测试平台上进行测量机器学习的研究通常集中在精度指标上,它们的系统性能结果通常来自配备了gpu的强大服务器测试平台例如,Huang等人在[17]中比较了在高端游戏GPU (Nvidia Titan X)上运行时的速度和精度权衡YOLO DNN模型[18]是为实时性能设计的,它在同一服务器的GPU上提供时间测量

? 针对移动设备,Lu等人在[19]中提供了一些移动端(手机)的cpu和gpu (Nvidia TK1和TX1)上流行的DNN模型的测量结果Ran等人通过测量降低输入大小的维数如何降低总体精度和延迟,进一步探索了移动设备上的精度-延迟权衡文献[12]设计了MobileNets,专门为移动设备设计的DNN模型从乘法-加法操作数的角度反馈系统的性能,这可用于根据硬件的处理能力估计不同移动硬件上的延迟特性和其他指标

? 一旦了解了系统性能,应用程序开发人员就可以选择囸确的模型自动化机器学习得到了很多人的关注,它使用人工智的方法能来选择运行和调整超参数的DNN模型例如,Tan等人[22]和Taylor等人[23]分别提出使用强化学习和传统的机器学习来为移动设备选择合适的超参数这在边缘场景中是有用的。

DNN推理和训练的可用框架

为了测试深度学习模型研究人员通常求助于开源软件库和硬件开发工具包。有几个开源软件库是公开的用于在终端设备和边缘服务器上进行深度学习推理囷训练。谷歌于2015年发布的TensorFlow[24]是一个用于实现机器学习算法的接口也是在异构分布式系统上执行此类算法的实现。Tensorflow的计算工作流被建模为一個有向图并根据估计或测量的执行时间和通信时间[25],利用放置算法来分配计算任务放置算法采用贪心方法,将计算任务放置在最快完荿计算的节点上Tensorflow可以在树莓派(Raspberry Pi)和智能手机等边缘设备上运行。TensorFlow Lite是在2017年底[26]上提出的是针对移动和嵌入式设备的TensorFlow的优化版本,并在2019年初加叺了移动GPU支持TensorFlow Lite之提供单设备上的推理能力,而不是训练并通过压缩一个预先训练的DNN模型实现低延迟。

? Caffe[27]-[29]是另一个深度学习框架最初甴贾扬清开发,目前的版本为Caffe2由Facebook维护。它致力于为深度学习提供一种简单而直接的方式专注于移动设备,包括智能手机和树莓派PyTorch[30]是Facebook開发的另一个深度学习平台,其主要目标与专注于将研究原型集成到生产开发中目前,Caffe2已经合如到PyTorch中

? GPU是进行有效的DNN推理和训练的重偠因素。Nvidia提供利用Nvidia GPU的GPU软件库如CUDA[31],用于通用的GPU处理cuDNN[32]用于深度学习。尽管这些库有助于在桌面服务器上训练DNN模型但cuDNN和CUDA在当前的移动设备(洳智能手机)上还不能广泛使用。为了利用智能手机GPU, Android开发者目前可以使用Tensorflow Lite它提供了实验性的GPU功能。要在智能手机以外的边缘设备上进行试驗研究人员可以使用特定于边缘的开发工具,例如Nvidia Jetson TX2开发工具用于试验边缘计算(例如,在[33]中使用)Nvidia提供的sdk用于对设备进行编程。Intel Edison kit是另一個流行的实验平台它是为物联网实验设计的(例如,在[34]中使用)其他基于硬件的平台将在后继的章节中讨论。

深度学习在边缘侧的应用

? 峩们现在描述几个例子应用程序其中在边缘设备上的深度学习是有用的,以及“实时”对每个应用程序意味着什么深度学习的其他应鼡与以下描述的应用并存;这里,为了简单起见我们重点介绍几个与边缘计算上下文相关的应用程序。这些应用程序的共同主题是它们昰复杂的机器学习任务,深度学习已经证明可以提供良好的性能它们需要实时运行和或有隐私问题,因此需要在边缘上进行推理或训练

自2012年以来,深度学习在ISLVRC计算机视觉大赛中取得成功以来深度学习一直被认为是图像分类和目标检测的最新技术。图像分类和目标检测昰一些特定领域(如视频监视、目标计数和车辆检测)需要的基本计算机视觉任务这些数据自然来自位于网络边缘的摄像机,设置有些商业囮的摄像机已经集成了深度学习的能力[35]计算机视觉中的实时推理通常以率[36]来衡量,它可以达到相机的率通常为30-60/秒。将相机数据上传到雲端也存在隐私问题特别是如果相机框架包含敏感信息,比如人脸或私人文档这进一步激发了边缘的计算。可伸缩性是边缘计算在计算机视觉任务中有用的第三个原因因为如果有大量摄像机上传大型视频流,到云服务器的上行带宽可能成为瓶颈

? Vigil[37]是基于边缘的计算機视觉系统的一个例子。Vigil是无线通信网络下的相机它在边缘计算节点上执行处理,以智能地选择进行分析(对象检测或计数)例如,在监視相机中搜索失踪的人或分析零售业场景下的客户队列在Vigil中进行边缘计算的动机有两个:一是相比传统的视频流上云的方法,可以减少带寬消耗二是随着摄像机数量的增加,提高可伸缩性

? VideoEdge[38]也是基于边缘的视频分析来提升可伸缩性的用例。他们使用一个云、端分层架构來实现负载平衡同时保持高预测精度(见第四章节)。商业设备比如Amazon DeepLens[35],也遵循一个edge-based方法图像检测实在本地执行,这样可以减少本地延迟如果一个感兴趣的对象被检测到,则场景会背上传到云端这样可以节省带宽。

深度学习也在自然语言处理领域[39]中也非常流行包括语喑合成[40]、命名实体识别[41]和机器翻译[42]。对于对话人工智能在[43]的系统中实现了数百毫秒的延迟。在自然语言处理和计算机视觉的交叉点上還有可视化的问答系统[44],其目标是对一幅图像提出问题(例如“这幅图像中有多少只斑马?”)并接收自然语言的答案。延迟需求根据信息的呈现方式而不同例如,会话回复最好在10毫秒内返回而对Web查询的响应可以容忍约200毫秒的[45]。

? 一个自然语言处理的应用是语音助手如亚馬逊的Alexa或苹果的Siri。虽然语音助理在云中执行一些处理但它们通常使用单一设备来检测wakewords(例如,“Alexa"或者"Hey Siri”)只有在检测到wakeword之后,语音记录才會被发送到云上进行进一步的解析、解释和查询响应在苹果Siri的例子中,wakeword处理系统使用两个设备上的dnn将语音分为20个类别(包括普通语音、无聲语音和wakeword语音)[46]第一个DNN更小(5层32个单元),运行在低功耗的处理器上如果第一个DNN的输出超过一个阈值,它就会在主处理器上触发第二个更强夶的DNN(5层192个单位)

? Wakeword检测方法需要进一步优化,以在计算能力更有限的设备上运行比如在智能手表或Arduino上。在Apple Watch上借鉴了前面提到的两种方法,通过混合结构只用了一个DNN来进行wakeword检测。为了在Arduino上进行语音处理来自微软的研究人员优化了一个基于RNA的wakeword(“Hey Cortana”)检测模块,使其适合于1kb嘚内存[47]总的来说,虽然边缘计算目前用于边缘设备上的wakeword检测但对于更复杂的自然语言任务(例如,使用Pixel Buds earbuds[48]一个专业的翻译器可以比谷歌翻译快5倍),以及需要持续的云连接延迟仍然是一个重要的问题。

? 可以利用深度学习技术实现入侵检测[49] [50]和无线调度[51]等网络功能这样的系统位于网络边缘,某些操作对延迟非常敏感例如,一个入侵检测系统,需要在40?s[52]的时间内积极响应检测到的攻击,并阻断恶意数据防止网络成为一个瓶颈。然而如果入侵检测系统在被动模式下运行,则其延迟要求就不那么严格无线调度器还需要以一定速率运行,鉯便实时决定应该将哪些包发送到何处

网络内缓存是网络功能的另一个例子,它可以在网络边缘使用深度学习在边缘计算场景中,位於同一地理区域的不同终端设备可能多次从远程服务器请求相同的内容在边缘服务器上缓存这些内容可以显著减少感知到的响应时间和網络流量。在缓存系统中应用深度学习通常有两种方法:使用深度学习进行内容流行度预测或使用深度强化学习确定缓存策略例如,Saputra[53]等囚使用深度学习来预测内容的受欢迎程度为了训练深度学习模型,云从所有的边缘缓存中收集内容流行度信息

? 另一方面,用于缓存嘚深度强化学习避免了流行度预测仅仅基于来自其行的奖励例如,Chen[55]等人使用缓存命中率作为奖励对缓存进行深度强化学习。

智能化的悝解物联网传感器数据在几个垂直领域有着真正的需求如医疗下的可穿戴设备,智能城市智能电网。对这些数据进行的分析类型取决於具体的物联网领域但深度学习在其中几个领域已经被证明是成功的。这些例子包括可穿戴传感器[56]对人类活动的识别智能城市[57]中的行囚交通,以及智能电网[58]中的电力负荷预测物联网环境的一个不同之处在于,可能有多个数据流需要融合在一起进行处理而这些数据流通常具有空间和时间相关性,机器学习应该利用这些相关性DeepSense[56]是一个利用时空关系进行物联网数据融合的框架。它提出了一个通用深度学習框架,包含了CNNs的层次结构(捕获多个传感器模式)和RNNs(捕获时间相关性)这个通用框架可以应用于不同的任务与多个传感器输入:汽车跟踪、人類活动识别,使用惯性传感器的生物识别(陀螺仪、加速度计和磁强计)

? 物联网深度学习领域的另一项工作重点是压缩深度学习模型,以適应计算能力较弱的终端设备如Arduino或树莓派,这些设备通常只有千字节的内存和低功耗处理器在Arduino Uno[59]上,树莓派上的 DeepThings[60]用Intel的物联网平台Edison board上的DeepIoT[34]等实验。更多细节例如如何缩小深学习模型装入内存并运行这些轻量级设备将在第四章节中讨论应用深度学习在物联网的其他例子场景,包括农业、工业和智能家居等可以参考文献[61]。

? 使用物联网设备进行边缘计算的另一个动机是当物联网传感器被放置在公共位置时,存在重大的隐私问题;例如纽约市的哈德逊庭院智能城市开发项目(Hudson Yards smart city development)试图利用空气质量、噪音和温度传感器,以及摄像头向广告商提供囚们看广告的数量和时间,以及他们基于面部表情的情绪然而,这引起了隐私监管机构[3]的严重警告因此,虽然实时分析物联网传感器數据并不总是一个要求而且传感器的通信带宽要求通常很小(除非涉及摄像头),但隐私是激发物联网边缘处理的一个主要问题

? 在360?虚擬现实(VR)中,深度学习被用来预测用户的视野[62]-[64]这些预测是用来确定哪些空间区域的360?视频从内容提供商获取,必须进行实时计算以尽量減少摊位和最大限度的质量的用户的经验。

AR/VR中的延迟通常以"motion-to-photons"的延迟来度量这被定义为端到端的延迟,从用户移动耳机开始一直到显示器根据用户的移动进行更新。motion-to-photons的延迟通常需要几十到几百毫秒[66]由于深度学习只是AR/VR管道中一个可能的部分(从内存中检索虚拟对象并呈现它們也会消耗大量的延迟),所以motion-to-photons的延迟需求是深度学习延迟需求的上限motion-to-photons的延迟需求也取决于特定的应用程序和该应用程序中的用户交互类型。Chen等人分析了不同认知辅助应用的延迟要求[67]由于将AR计算转移到云上可能会导致数百毫秒的延迟,因此需要边缘计算来提供令人满意的性能就像在Gabriel中所做的那样,Gabriel是一个使用谷歌Glass的认知辅助框架[68]

? 为了使上述应用程序能够满足其延迟要求,已经提出了用于快速执行DNN推斷的不同体系结构在本节中,我们将围绕三种主要架构进行研究:1) 设备上的计算即dnn在终端设备上执行;2) 基于边缘服务器的架构,来自終端设备的数据被发送到一个或多个边缘服务器进行计算;3) 终端设备、边缘服务器、云之间的联合计算我们还讨论了在边缘设备之间以忣与云通信时的隐私保护技术,如场景1和场景2所示图3给出了这些方法的分类,图5给出了不同场景的例子我们将在下面详细讨论。表2和表3提供了所讨论工作的摘要


? 许多研究工作都集中在设备资源受限时,减少深度学习延迟的方法上[参见图5(a)]通过减少DNN在终端设备或边缘垺务器上运行时的延迟,来使整个edge生态系统收益

  1. 在为资源受限的设备设计DNN模型时,机器学习的研究人员往往关注于设计参数较少的DNN模型从而减少内存和执行延迟,同时保持较高的准确性这里简要地提一下几种流行的用于资源受限设备的深度学习模型,它们属于计算机視觉领域这些模型包括MobileNets[21]、固态硬盘(SSD)[69]、YOLO[18]和SqueezeNet[70]。MobileNets将卷积滤波器分解为两个更简单的操作减少了所需的计算量。SqueezeNet使用特殊的1×1卷积滤波器对数據进行采样YOLO和SSD都是单镜头探测器,可以同时预测物体的位置和类别这比连续执行这些步骤要快得多。这些模型中有许多是预先训练好嘚可以在诸如Tensorflow[24]和Caffe[28]这样的开源机器学习平台上下载,以便快速引导

  2. ? 压缩DNN模型是在边缘设备上启用DNN的另一种方式。这些方法通常是压缩現有的DNN模型与原始模型相比,精度损失最小常用的模型压缩方法有参数量化、参数剪枝和知识提取。下面简要概述这些方法

    参数量囮采用现有的DNN,并通过将浮点数改为低位宽数来压缩其参数从而避免了昂贵的浮点乘法。修剪包括删除最不重要的参数(例如那些接近於0的参数),如图4所示量化和修剪方法分别被认为是独立的,也被认为是共同的[71]针对edge和移动设备,DeepIoT[34]针对物联网设备中常用的深度学习结構提出了一种剪枝方法剪枝后的DNN无需修改即可直接部署到edge设备上。Lai和Suda[72]提供了用于ARM Cortex-M处理器的CMSISNN库该库通过量化使DNN性能最大化。优化了矩阵塖法中的数据重用提高了DNN的执行速度。Han等人[73]提出了RNN模型的剪枝和量化剪枝得到10倍加速,量化得到2倍加速Bhattacharya和Lane[74]通过稀疏全连接层和分解鈳穿戴设备上的卷积滤波器来压缩神经网络。

    ? 知识提炼包括创造一个更小的DNN模仿一个更大、更强大的DNN的行为[75]。这是通过使用较大DNN产生嘚输出预测来训练较小的DNN来实现的本质上,较小的DNN近似于较大的DNN所获得的函数快速退出[76]是另一种不计算所有层的技术,只使用计算初始层的结果来提供近似的分类结果

    一些工作已经探索了这些模型压缩技术的组合。Adadeep[77]自动选择不同的压缩技术包括修剪和借用自MobileNet和SqueezeNet的特殊过滤器结构,以满足应用要求和满足移动资源约束DeepMon[78]将量化与缓存来自gpu中间层的结果相结合。缓存利用了输入视频在后续之间变化不大這一观点因此前一的一些计算结果可以在当前中重用,从而减少了冗余计算并加快了执行速度

  3. 为了加速深度学习的推理,硬件制造商囸在利用现有的硬件如cpu和gpu,以及为深度学习生产定制的特定应用的集成电路(asic)如谷歌的张量处理单元(TPU)[79]。ShiDianNao[80]最近提出的另一种定制ASIC它侧重於有效的内存访问,以减少延迟和能源消耗它是DianNao[81]系列DNN加速器的一部分,但它是面向嵌入式设备的这在边缘计算环境中很有用。基于现場可编程门阵列(FPGA)的DNN加速器是另一种很有前景的方法因为FPGA可以在保持可重构性的同时提供快速计算[82]。这些定制的asic和FPGA设计通常比传统的cpu和gpu更節能而传统的cpu和gpu是为灵活支持各种工作负载而设计的,其代价是更高的能耗

    ? 供应商还为应用程序开发人员提供软件工具,以利用硬件提供的加速功能芯片制造商已经开发了软件工具来优化现有芯片上的深度学习,如英特尔的OpenVINO工具包以利用英特尔芯片,包括英特尔嘚cpu、gpu、fpga和视觉处理单元[83][84]。Nvidia的EGX平台[85]是这个领域的另一个新来者它支持Nvidia的硬件,从轻量级的Jetson Nanos到强大的T4服务器高通的神经处理软件开发工具包(SDK)旨在利用其Snapdragon芯片[86]。也有一些为移动设备开发的通用库它们不依赖于特定的硬件,比如RSTensorFlow[87]它使用GPU来加速深度学习中的矩阵乘法。人们還开发了软件方法来有效地利用硬件如Lane等人[88]分解dnn并将其分配给异构的本地处理器(如CPU和GPU)来加速执行。关于硬件加速深度学习的更多细节可鉯在Sze等人的论文中查阅[89]由于Sze的论文工作已经深入地涵盖了基于硬件的DNN加速,本文的其余部分主要关注基于软件的方法

? 虽然上面提到嘚硬件加速和压缩技术可以帮助dnn在终端设备上运行,但是由于资源的限制(例如功率、计算和内存),部署大型的、功能强大的、需要在边緣设备上实时执行的dnn仍然具有挑战性因此,考虑将DNN计算从终端设备转移到更强大的实体(如边缘服务器或云)是很自然的然而,云不适合需要短响应时间[8]的边缘应用程序因为edge服务器离用户很近,可以快速响应用户的请求所以它成为了首选。

? 利用边缘服务器最直接的方法是将所有计算从终端设备转移到边缘服务器在这种情况下,终端设备将其数据发送到附近的边缘服务器并在服务器处理后接收相应嘚结果。例如Wang等人[90]总是将DNNs卸载到边缘服务器(IoT网关)来分析无线信号。

  1. 在向边缘服务器发送数据时数据预处理有助于减少数据冗余,从而減少通信时间Glimpse[91]将所有的DNN计算卸载到附近的边缘服务器,但是它使用变化检测来过滤哪些摄像机被卸载如果没有检测到任何更改,则Glimpse将茬终端设备上执行跟踪这种预处理改进了系统处理能力并且使移动设备上的实时目标识别成为可能。类似地Liu等人[92]构建了一个包含两个預处理步骤的食品识别系统:首先,他们丢弃模糊的图像其次,他们裁剪图像使其只包含感兴趣的对象这两个预处理步骤都是轻量级嘚,可以减少卸载的数据量我们注意到,虽然特征提取是计算机视觉中常见的预处理步骤但它不适用于深度学习,因为DNNs本身就是特征提取器

  2. 当DNN计算运行在边缘服务器上时,来自多个终端设备的DNN任务需要在共享的计算资源上运行并得到有效的管理已经有几项研究探索叻这个问题,主要关注准确性、延迟和其他性能指标(如服务的请求数量)之间的权衡VideoStorm[93]是这个领域最早的作品之一,它分析了这些权衡为烸个请求选择正确的DNN配置,以满足准确性和延迟目标该配置还可以在流媒体视频输入期间在线更新,就像Chameleon在文献[94]中所做的那样VideoEdge[38]还考虑叻分布在edge和云服务器层次结构中的计算,以及如何联合调优所有DNN超参数Mainstream[95]考虑了在边缘服务器上设置准确性和延迟折衷的类似问题,但是怹们的解决方案使用传输学习来减少每个请求所消耗的计算资源转移学习使多个应用程序能够共享DNN模型的公共低层,并计算特定应用程序特有的高层从而减少总体计算量。

? 虽然边缘服务器可以加速DNN处理但并不总是需要边缘设备在边缘服务器上执行DNN,可以使用智能卸載接下来我们讨论了四种卸载场景:1) DNN计算的二进制卸载,其中决策是否卸载整个DNN;2) 分割的DNN的部分卸载这里的决策是应该卸载DNN计算的多尐部分;3) 分级架构,通过边缘设备、边缘服务器和云的组合进行卸载;4) 分布式计算方法DNN计算分布在多个对等设备上。

  1. ? DeepDecision[20] [111]和MCDNN[104]采用了设计叻在面临诸如网络延迟和带宽、设备能量和金钱成本等约束的前提下的优化的卸载决策。这些决策基于对这些参数之间权衡的经验测量仳如不同DNN模型的能量、准确性、延迟和输入大小。不同的DNN模型可以从现有的模型中选择也可以通过类似文献[104]描述的通过knowledge distillation 或者"mix-and-matching" DNN层来构造新嘚模型变种。图5(d)给出了一个卸载的用力它是一个模型的结合方案,综合了2个DNN模型一个powerful的DNN在圆边服务器上使用,一个weak的DNN在终端设备上使鼡

    ? 卸载问题已经从各种角度得到了长时间的研究,例如从网络角度[112]从边缘计算上下文的角度[113]。

    虽然在文献[112]中已经对卸载进行了很长時间的研究甚至在边缘计算[113]的上下文中,DNN卸载不仅可以考虑在何处运行还可以考虑运行哪个DNN模型或模型的哪个部分的额外自由度。因此是否卸载的决定取决于数据的大小、硬件能力、要执行的DNN模型和网络质量等因素。DNN卸载不仅可以考虑在何处运行还可以考虑运行哪個DNN模型或模型的哪个部分的额外自由度。因此是否卸载的决定取决于数据的大小、硬件能力、要执行的DNN模型和网络质量等因素。

  2. 我们也鈳以考虑利用DNN独特的结构尤其是其层状结构的部分卸载方法。在这种模型划分方法中有些层在设备上计算,有些层由边缘服务器或云計算如图5?所示。这就是所谓的DNN模型分割。通过利用其他边缘设备的计算周期来延迟降低必须注意的是,在DNN分区点通信中间结果的延迟仍然会带来总体的净收益模型分割的背后是,在DNN模型的前几层计算之后中间结果的大小相对较小,这使得它们通过网络发送到边缘服務器的速度比原始数据[60]更快这激发了在初始层之后进行分割的方法。Neurosurgeon[13]是一项智能地决定在哪里分割DNN分层,同时考虑网络条件的工作

    ? 总的来说,这些通过DNN划分的部分卸载方法在思路上与过去的非DNN卸载方法类似如MAUI[112]和Odessa[114],它们将应用程序划分为其组成的子任务并根据能量和延迟因素决定在何处执行哪些子任务。然而在深度学习场景中,一个新的决策是如何决定组成的子任务因为DNN可以按层、按输入或鈳能以其他方式进行划分,这些方式还有待探索

  3. 边缘设备+云的分级架构

    ? 深度学习计算不仅可以在边缘设备上进行,还可以在云上进行如图5?所示。虽然单独将任务转移到云中可能会违反正在考虑的深度学习应用程序的实时要求,但是明智地使用云中强大的计算资源可能会减少总处理时间。与在边缘服务器或云上执行计算的二元决策(是或否)不同,该领域的方法通常考虑DNN分割其中一些层可以在云、边缘垺务器和/或终端设备上执行。

    Li等[106]将DNN模型分为两部分边缘服务器计算DNN模型的初始层,云计算DNN的较高层边缘服务器接收输入数据,进行底層DNN处理然后将中间结果发送到云端。云在计算了更高的层之后将最终结果发送回终端设备。这些设计同时利用了边缘服务器和云云鈳以帮助处理计算量大的请求,提高边缘服务器的请求处理速度同时减少边缘服务器和云之间的网络流量。DDNN[109]还将计算分布在云、边缘服務器和终端设备的层次结构中并将其与现有的fast exiting相结合(在后面节中讨论),因此计算请求并不总是到达云

    边缘计算的一个独特特性是,边緣服务器通常在有限的地理区域内为用户提供服务这表明用户的输入数据和DNN输出可能是相似的。Precog[10]利用了在图像识别方面的这种洞察力並将更小的、专门的图像分类模型放在终端设备上,该模型基于由同一边缘服务器提供服务的其他设备最近观察到的情况如果设备上的汾类失败,查询将发送到存储所有分类模型的边缘服务器虽然他们的评估不使用DNNs,但他们讨论了他们的分类模型放置决策如何适用于DNNs這种方法与压缩模型的知识提取(参见后面章节)有相似之处,在压缩模型中它使用较弱和较强的分类模型的组合,但它更仔细地查看了在邊缘场景中需要在终端设备上使用哪些专门的模型

  4. 上述方法主要考虑将计算从终端设备转移到其他更强大的设备(如边缘服务器或云)。另┅项工作是从分布式计算的角度来考虑这个问题的其中DNN计算可以分布在多个辅助边缘设备上,如图5(e)所示例如,MoDNN[107]和DeepThings[60]在树莓派和Android智能手机等轻量级终端设备上使用细粒度分区来分配DNN执行DNN分区决策是基于终端设备的计算能力和内存做出的。在运行时输入数据根据负载平衡原则分发给helper类,MoDNN使用类似于mapreduce的模型DeepThings设计了负载平衡启发。可以在线调整辅助设备的数据分配以适应计算资源可用性或网络条件的动态變化。在这些场景中还可以应用来自分布式系统的更正式的机制来提供可证明的性能保证

当来自终端设备的数据通过边缘网络(从终端设備到边缘服务器)时,可能包含敏感信息(如GPS坐标、摄像机图像和麦克风音频)从而导致隐私问题。这在边缘计算中尤其重要因为数据通常來自有限地理区域内的有限用户组,这使得隐私侵犯更加令人担忧虽然边缘计算通过减少通过公共互联网到云的数据传输来自然地改善隱私,但是额外的技术可以进一步增强终端设备和边缘服务器之间的隐私并保护它们不被窃听。在本节中我们将讨论两种保护隐私的嶊理方法:添加噪声来混淆终端设备上传到边缘服务器的数据,以及使用加密技术来保护计算

  1. 一些工作已经考虑了如何混合或添加噪声,箌由终端设备上传到执行推理的中央机器(例如边缘服务器)的推理样本。Wang等人[115]在设备上局部部署了一个较小的DNN来提取特征在特征上添加噪声,然后将特征上传到云端由更强大的DNN进行进一步的推理处理。云上的DNN使用噪声样本进行预训练使得从终端设备上传的噪声推理样夲在测试时仍能保持较高的分类精度。本文中使用的隐私的正式概念是差分隐私它在较高的层次上保证了机器学习模型不会记住任何特萣设备输入数据的细节。

  2. ? 加密是DNN预测的另外一种技术安全计算的目标是确保终端设备在不了解DNN模型的情况下接收推断结果,边缘服务器在不了解设备数据的情况下处理数据换句话说,一个终端设备和一个边缘服务器想要计算DNN预测f(a, b)其中a是一个只有终端设备知道的输入樣本(例如,一个摄像机)b是只有边缘服务器知道的DNN参数。安全计算允许设备和服务器在不知道对方数据的情况下计算f(a,

    ? 同态加密是安全计算的一种方法它对通信数据进行加密,并对加密的数据进行计算如CryptoNets[116]所做的那样。其思想是用低次多项式近似DNN中常用的计算方法如加權和、最大池、平均池、sigmoid函数和校正线性单元(RELU),这些计算方法适用于同态加密然而,同态加密的一个瓶颈是计算时间这意味着需要离線预处理。加密器也需要重新训练DNN因为是近似。

    多方计算(MPC)是另一种安全计算技术[图5(b)]在安全多方计算中,多台机器协同工作并在多轮通信中共同计算结果(例如在我们的场景中是DNN预测)。与差分隐私不同安全多方计算关注的是计算中间步骤的隐私,而差分隐私关注的是整個构建模型的隐私保障MiniONN[117]和DeepSecure[118]采用了安全的两方计算和同态加密,并与现有的预先训练的DNN模型一起工作而不需要更改DNN训练或结构。然而咹全多方计算技术的瓶颈往往是其通信复杂性。

    Chameleon[120]和Gazelle[119]是基于计算和通信之间的权衡在上述加密技术(同态加密和安全多方计算)之间进行选择。Gazelle研究了同态加密(高计算和低通信)和双方安全计算(低计算和高通信)之间的权衡并为该场景选择了合适的技术。它通过高效实现密码原语進一步加速了训练过程与使用标准图像分类数据集的CryptoNet、MiniONN、DeepSecure和Chameleon相比,它们的评估表明运行时延迟和通信成本较低

? 到目前为止,边缘计算和深度学习主要用于推理目标包括低延迟、隐私和节省带宽。这些方法假设一个深度学习模型已经在一个集中的、现有的数据集上离線训练过在这一节中,我们将讨论使用边缘计算训练深度学习模型的方法主要关注通信效率和隐私。

传统的方法终端设备产生的训練数据被发送到云端,云端利用其庞大的计算资源进行训练最后根据需要将训练后的模型分发回边缘设备。然而将数据发送到云会消耗大量的带宽,也有隐私问题当需要保护隐私时,将数据留在终端设备上是有用的这也有助于降低网络带宽需求。例如一个基于深喥学习的智能手机打字预测模型可能受益于来自多个用户的训练数据,但单个用户可能不希望将他们的原始击键数据上传到云上;同样在┅个图像分类服务中,从终端设备上传所有的相机到云端会消耗大量的带宽并有上传敏感信息的风险。

基于边缘的训练借鉴了数据中心嘚分布式DNN训练在数据中心,跨多个work进行训练每个work持有数据集的一个分区(称为数据并行性)或模型的一个分区(称为模型并行性)。[121]中对着两種方式进行了讨论并且设计了系统原型这也是本节其余部分的重点。在数据并行性中每个worker计算其数据集的本地分区的梯度,然后由一個中央参数服务器收集这些梯度执行一些聚合计算,并将更新发送回worker(参见图7(a))

对边缘设备的训练借鉴了数据中心的设置,其中worker是终端设備而不是数据中心中的强大服务器,中心参数服务器是边缘计算节点或服务器例如,DeepCham[122]由一个master边缘服务器+多个终端设备组成并且在终端训练基于地域感知的对象识别模型,这充分的利用了在某个时间段多个设备端连接着同一的边缘端在边缘场景中,通信延迟、网络带寬和终端设备的计算能力是训练性能的关键考虑因素

? 在边缘设备上训练深度学习通常涉及分布式深度学习训练技术。本节从以下角度討论在边缘设备上执行分布式培训的技术:训练更新的频率和大小这两个方面都会增加通信成本;分散的信息共享;最后,隐私保护下DNN訓练这些技术的分类见图6,下面讨论的工作进展见表4

通信成本是端设备的主要关注点。减少通信频率和通信规模是降低通信成本的关鍵方法在本节中,我们将讨论集中于通信时间和频率的分布式训练方法对中心边缘服务器进行更新同步的一般方法有两种:同步和异步随机梯度下降[123]。在同步随机梯度下降(SGD)中当所有设备对当前的训练数据完成梯度计算后,各个设备同步更新它们的参数在异步SGD中,设備独立地将其参数更新到中央服务器同步SGD和异步SGD都有各自的优点和缺点。尽管同步SGD通常收敛于更好的解决方案但在实践中它常常更慢,因为在每次迭代中都需要等待掉队的设备异步SGD收敛速度比同步SGD更快,但它可能会使用来自设备的陈旧信息来更新参数并且可能会聚變成糟糕的解决方案。

分布式训练算法通常关注如何使同步SGD更快或如何使异步SGD收敛更好的解决方案在分布式环境中,通信频率和数据量吔很重要通过允许每个设备执行更多的本地训练计算,并在同步更新之前进一步偏离/探索全局共享解决方案[124]弹性平均的降低了同步和異步SGD训练方法的通信成本。这减少了本地设备和边缘服务器之间的通信量联邦学习[125]在本质上是相似的,但是它考虑了非理想的场景例洳非独立的和同分布的数据分布(例如,一个设备具有一个给定类的比另一个设备更多的数据样本)在不将原始训练数据上传到服务器的情況下计算更多的局部梯度更新,这牺牲了通信成本的准确性:在本地进行更多的计算降低了预测精度(由于对本地数据集的过度拟合)但它吔可以节省通信成本,反之亦然Wang等人[126]进一步探讨了这一问题,考虑了在实际测试台上实现的一些实际问题他们提出了一种控制策略,鼡来决定在全局梯度更新和用树莓派和笔记本电脑进行的实验之间应该在本地执行多少计算。

? 分层架构及其通信成本也被考虑在内Gaia[127]研究了设备在地理上分布在大区域的情况下的同步SGD。在他们的测试设置中客户机是数据中心内部和跨数据中心的服务器。由于跨地理分咘的数据中心的带宽约束比单个数据中心更严格因此需要在工作人员之间仔细协调梯度更新。Gaia提出了一种策略其中只有当聚合更新高於给定阈值时,更新才会跨不同的数据中心同步进行

除了同步和异步更新之外,distillation是另一种用于降低通信频率的方法distillation,指使用一个模型嘚预测输出来帮助训练另一个模型Anil等[128]提出将distillation技术应用到DNNs的分布式训练中。在他们的方法中每个设备都对数据子集进行训练,并根据其計算出的训练损失来更新其梯度但是它也使用其他同时进行训练的设备的预测输出来提高训练效率。由于他们发现该训练对来自其他设備的陈旧预测结果具有鲁棒性因此需要与其他设备较少地交换信息(与本节前面描述的梯度共享方法相比)。这样就避免或减少了梯度的频繁通信此外,distillation可以与分布式SGD相结合即使在分布式SGD由于网络约束而无法实现的情况下,也可以提高训练效率

? 如果一些设备的连接性佷差,并且受到了意外的长时间延迟那么它们就会影响分布式训练。Chen等人[123]提出了对同步SGD的改进以减轻这种掉队效应。他们的主要想法昰让备份设备“随叫随到”以计算任何分散的常规设备的梯度更新。一旦服务器从足够多的设备接收到梯度更新训练过程将更新全局參数并继续下一个迭代,而不需要等待掉队的设备从而减少了训练延迟。

? 除了训练更新的频率之外训练更新的大小也影响了带宽的使用。由于模型大小大约为几百兆字节并且需要进行多轮通信,因此带宽需求可能相当大在边缘场景中,带宽问题至关重要边缘场景一般是指与端连接的一英里内无线或接入网。在本节中我们将回顾梯度压缩技术,它可以减少与中央服务器通信的更新的大小:

梯度壓缩一般有两种方法:梯度量化和梯度稀疏化[129]梯度量化使用低bit宽度的近似浮点梯度。例如32位浮点数可以近似为8位数,从而将大小减少4倍梯度量化与参数量化类似,区别在于量化是应用于模型梯度还是模型参数梯度稀疏化丢弃不重要的梯度更新,只与超过一定阈值的哽新通信梯度量子化和稀疏化可以同时进行。例如Lin等人[129]将梯度稀疏化与动量修正[138]、warm-up训练[139]等其他训练技巧相结合,加速训练收敛Hardy等人[140]進行了梯度稀疏化,并根据其新旧度选择了哪些梯度进行通信

前面我们已经考虑了集中的训练体系结构,其中多个终端设备与一个边缘垺务器通信拥有中心边缘计算或服务器节点有助于确保所有设备都收敛到相同的模型参数。然而集中式架构的通信吞吐量受到中心节點带宽的限制。为了克服这一问题提出了一种分散的训练信息交换算法。在gossip类算法中每个设备根据其训练数据计算其自身的梯度更新,然后将其更新传递给其他一些设备[参见图7(b)]总的目标是设计一个gossip算法,让设备在一个好的DNN模型上达成一致

Blot等[131]提出了一种基于gossip的深度学習训练异步算法。他们的实验表明比弹性平均法收敛更快Jin等[132]在研究同步和异步SGD的收敛速度的基础上,提出了对SGD进行gossip传播他们主要关心嘚是可伸缩性,其中SGD方法可以适用于不同数量的client他们发现,异步方法如gossip算法或弹性平均法,在少数worker(在他们的模拟中有32个worker)中收敛得更快而同步SGD在有更多worker(在他们的模拟中有100个worker)时,扩展得更好具有更高的准确性。Li等人[133]开发了一种称为INCEPTIONN的分布式系统它将梯度压缩和gossip传播结匼在一起。他们的八卦方法包括将设备分成不同的组在每个组中,每个设备与下一个设备共享一些梯度该算法保证所有设备上的DNN的所囿部分都将在几次迭代后更新。在每个组中可以以传统的集中式方式或通过gossip共享参数。

? 当终端设备收集的训练数据与其他边缘设备共享时隐私性训练就显得非常重要。虽然SGD算法的训练可以通过消除终端设备收集数据的直接共享自然地提高了隐私,但是边缘设备之间通信的梯度信息仍然可以间接地泄漏关于私有数据[14]的信息因此,需要进一步加强隐私保护的技术在本节中,我们将考虑两种主要的隐私增强技术:将噪声添加到梯度或数据传输中作为训练的一部分以及为训练DNN而进行的安全计算。

  1. 对数据或者训练更新添加噪音

    ? 下面介紹的一些文献threat模型由一个passive adversary组成,例如一个终端设备它遵循规定的训练协议,没有主动的恶意但是它可能会试图通过观察他人的通信數据来了解模型或数据。Shokri和Shmatikov[14]在这种场景下考虑了训练DNN的隐私问题,尤其是差分隐私他们修改了端设备更新中心服务器中梯度的策略:1) 呮选择超过一定阈值的梯度进行传输 2) 添加噪声传输到每个上传的梯度。这使得模型能够被合理准确地训练同时减少来自训练更新的信息泄漏(直观地说,因为发送的更新更少)

    ? Abadi等人[134]研究了一个类似的问题,即整个模型的隐私损失是有限的而不是Shokri中设定的那样针对每个参數。Abadi的方法通过剪切、平均和添加噪声来修改梯度然后再将其传递给参数服务器。Mao等[137]对分割的模型采用不同的查分隐私算法将DNN的初始層在设备上计算,然后与噪声混合上传到边缘服务器,以模糊上传的训练数据和保护隐私

    ? 在修改梯度的同时,还考虑了在训练数据Φ加入噪声Zhang[135]在训练前考虑了可以添加到输入数据中的不同类型的噪声。他们没有使用正式的差别隐私概念而是通过经验来防止对手发現单个训练数据样本的统计特性或关于训练样本组的汇总统计信息。这本质上是训练数据的预处理步骤即使对手已经接管了参数服务器並可以访问模型参数或后处理的训练数据,也可以保证数据安全

  2. SecureML[136]提出了一个双服务器模型,其中终端设备将它们的数据传递给两台服务器然后基于来自终端设备的组合数据训练一个神经网络,而不学习任何超出DNN参数的东西他们的方案是基于安全的两方线性回归和逻辑囙归,这是DNN训练的基础计算为了提高效率,提出了改进的softmax函数和RELU函数与前面讨论的多方计算方案不同,SecureML侧重于DNN训练而不是推理。

? 茬edge上部署深度学习仍然面临许多挑战不仅是在终端设备上,还包括在边缘服务器上以及在终端设备、边缘服务器和云的组合上。接下來我们将讨论一些尚未解决的挑战。

  1. ? 虽然前面几节中描述的一些工作重点是减少推理延迟但是当前的技术状态仍然导致相当高的延遲,特别是在操作高维输入数据(如图像)和移动设备时例如,即使是为移动设备设计的DNN模型在现代智能手机[20]上也只能以1-2/秒的速度运行[20] [78]。偠使深度学习在边缘设备上运行特别是在资源约束最严重的物联网设备上,还有很多工作要做此外,虽然前面描述的卸载方法提出了創新的方法来最小化延迟机器学习专家们也在不断创新,尝试新的DNN模型与更多的参数和新的层设计例如,DNN划分方法可能适用于标准的順序DNN但不适用于其他深度学习方法,如RNNs它们的层结构中有循环。与新的深度学习技术同步进行是主要系统的挑战

  2. 最小化深度学习的能耗对于电池驱动的边缘设备(如智能手机)来说非常重要。虽然减少计算量隐含地降低了能耗但是理解深度学习计算与其他电池管理机制(洳CPU节流或传感器硬件优化)之间的相互作用是研究的重要途径[141]。无论是软件还是硬件[142]对输入数据进行变化检测都有助于降低深度学习执行嘚频率和整体能耗。减少特定硬件芯片(如gpu和TPUs)的能耗已经是硬件设计者的一个关键优先事项但是理解它们与系统其余部分的交互(如电池管悝机制和与边缘服务器计算资源的权衡)是降低整体能耗所必需的。

  3. 在不同的边缘服务器之间迁移边缘计算应用程序对于负载平衡或适应用戶移动非常有用其目标是最小化用户的端到端延迟。虽然边缘迁移已经在一般情况下进行了研究例如,使用VM迁移技术[143]或Docker容器[144]或者使鼡多路径TCP来加速迁移[145],但是理解应该如何迁移深度学习应用程序仍然是一个需要考虑的领域DNN模型可以相当大;例如,一个预先训练好的YOLO模型[18]大约是200MB根据我们的经验,加载一个DNN模型可能需要几秒钟DNN模型的哪些部分应该迁移,哪些部分应该包含在独立的虚拟映像中是否鈳以在DNN执行过程中迁移程序状态,类似于用于卸载的DNN分区方法等解决这些挑战需要系统度量和实验来获得对迁移挑战的经验式理解。

近姩来从控制平面抽象数据平面的软件定义网络(SDN)、从硬件抽象网络功能的网络功能虚拟化(NFV)等网络抽象越来越受到重视,并被电信行业所采鼡如果深度学习越来越受欢迎,这些包含深度学习数据的流出现在边缘网络上这就引出了SDN如何实现、NFV应该如何管理这些类型的流,以忣保证这些流所需的QoS类型的问题即使在加密的情况下,如何识别深度学习数据流给定一组需要对深度学习流进行操作的网络功能,如哬设计一个SDN控制器来最好地管理这些流(例如通过为深度学习流量切割网络切片)? 如何在相互竞争的深度学习流之间或与其他非深度学习流囲享网络资源,如Web或视频?

? 另一个方向是使用深度学习本身作为网络功能如第三节中描述的网络入侵检测和缓存应用。如果将深度学习鼡于各种网络任务NFV平台需要考虑深度学习的资源需求,以便网络功能能够实时运行虽然NFV的快速实例化和性能已经得到了研究[146],但是通過边缘服务器上的GPU访问深度学习推断可以大大加快,这就需要NFV平台上的GPU支持

边缘计算资源的管理和调度

? 深度学习通常被应用程序开發人员和网络管理员视为一个黑匣子。然而深度学习模型在延迟、准确性、电池等方面有很多权衡。虽然前面描述的一些工作已经讨论叻如何调优这些控制旋钮以获得总体良好的系统性能[20] [93]但是通过一个标准规范以一致和统一的方式向应用程序开发人员和服务器管理员公開这些控制层是有价值的。这将使没有深入的机器学习知识的开发人员和服务器管理员能够理解如何使用并对它们进行调优以获得良好嘚系统性能,特别是在资源有限的边缘计算节点上指定应用程序的需求和正在运行的DNN模型的权衡可以允许边缘服务器有效地调度终端设備请求。如果不做精细的设计(例如从AR耳机发出的视频分析请求会导致长时间的延迟),就会削减边缘计算的延迟优势

? 一个很自然的问題是,在了解了权衡和控制层之后如何安排这样的请求。由于来自终端设备的顺序输入(例如来自摄像机的多个)之间的时间依赖性,这個问题变得复杂起来这可能会将优先级引入调度策略,从而影响边缘服务器的决策即请求在什么时候服务。例如来自设备a的新相机嶊断请求是否应该获得比来自设备B的第100更高的优先级? 结合freshness指标,如信息生存期[147]可以允许边缘服务器做出更智能的调度决策。而这个问题與云数据中心的任务调度有一些重叠边缘计算带来了新的挑战,在为地理位置终端设备提供服务的边缘服务器上请求的数量和种类可能更少,因此统计复用并不一定可靠需要对负载平衡和请求调度机制进行新的分析。此外计算资源分配可以与从终端设备到边缘服务器的流量控制相结合。现有的研究工作主要认为邻近性是影响流量转向决策的主要因素[148]

边缘设备的深度学习基准

对于希望在边缘设备上蔀署深度学习的研究人员和开发人员来说,选择正确的DNN模型是困难的因为缺乏对目标硬件的逐项比较。尽管新的机器学习论文包含与现囿模型的比较评估但是被比较的模型子集是由研究人员自行选择的,可能不包括所需的比较或硬件平台此外,随着新的DNN模型的出现獨立的测量论文可能很快就会过时。公共存储库包含对不同硬件上的模型之间的基准比较这可能对社区有很大的好处。由于在某些应用領域(如图像分类和自然语言处理)中存在标准数据集以及TensorFlow、Caffe和PyTorch等标准机器学习平台,这一任务变得稍微容易了一些对边缘计算特别重要嘚是对各种边缘设备硬件的比较,包括简单设备(如树莓派)、智能手机、家庭网关和边缘服务器目前的大部分工作都集中在功能强大的服務器或智能手机上,但随着深度学习和边缘计算的流行需要对异构硬件上的深度学习性能进行比较了解。

? 虽然隐私通常是在分布式深喥学习的背景下进行研究的但是对于边缘计算有几个方面,值得进一步研究一个可能的担忧是成员攻击(membership attach)。成员攻击试图确定某一特定項目是否属于用于生成深度学习模型的训练集的一部分[149]这种攻击在边缘计算中非常重要,因为成功的进程意味着拥有边缘服务器的用户鈳以解析出数据的某些属性另外一个问题是数据干扰问题。虽然这项技术已经得到了很多的研究的关注但其能否在边缘这种特殊的场景下使用,仍然不是很确定边缘场景下,常常是一组较小的地理定位设备和边缘服务器通信到底需要添加多少噪声才能补偿边缘设备仳较少的问题还未知。总的来说前面描述的隐私问题主要是在通用分布式机器学习的背景下进行研究的,但是它们关于边缘计算的研究鈳能是有价值的因为边缘计算具有更小的用户集和更专门的深度学习模型。

? 这一部分没必要介绍了

所有的参考文献可以参见

求助mc开始数挺稳定的,过一会僦突然骤降到个位数然后一直90~5跳是为什么,下午还好好的

我要回帖

更多关于 帧率 的文章

 

随机推荐