边缘智能--Edgent

论文

  1. Edge Intelligence: On-Demand Deep Learning Model Co-Inference with Device-Edge Synergy 边缘智能:设备-边缘协同进行按需深度学习模型联合推理

  2. BranchyNet: Fast Inference via Early Exiting from Deep Neural Networks

参考博客

边缘智能:基于边缘计算的深度学习模型推断加速方法

Introduction

现有挑战:现在的DNN在各个领域取得了广泛的应用。但是,在保证性能和能耗的前提下,将DNN运行在资源受限的移动设备上依然是个难题。

为保证合理的延迟和能耗,传统方法利用云数据中心。移动设备将数据上传到云端,云端运行DNN后,将结果返回到移动设备。但是,大规模数据通过长距广域网在遥远的移动设备与云数据中心的传输过程中,会产生较大的端到端延迟和移动设备能量损耗。一个较好的解决方法是利用新兴的边缘计算。将强大的计算力从遥远的云端分散到靠近用户的边缘设备(如基站,WiFi接入点等),可以实现低延迟和节能的DNN推断(DNN inference)。

但是,边缘计算亦非万全之策。我们的研究发现吗,基于边缘设备的神经网络推断的性能对边缘服务器和移动设备的带宽敏感。带宽从1Mbps降到50Kbps,延迟从0.123s增长到2.317s。为解决这个问题,提出了Edgent(a deep learning model co-inference framework with device-edge synergy),设备与边缘协同深度学习推理框架。Edgent主要采用两个策略降低延迟:

  • DNN partitioning 模型分割。可以根据带宽分割DNN,使网络计算被划分到移动设备和边缘服务器,减小网络延迟。但是分割后,运行在移动设备的部分网络依然存在延迟。

  • DNN right-sizing 模型精简。通过提前退出机制(early-exit),加速DNN推断,在准确度和延迟之间折中。

由于DNN关键任务一般存在预设延迟(pre-define deadline),Edgent按需联合优化模型分割(DNN partitioning)和模型精简(DNN right-sizing),在满足预设延迟的前提下取得最高的准确度。

Edge Intelligence已经引起广泛关注,但是我们的工作是与其他方法不同,是对现有思路的补充。一方面,现有研究多采用模型压缩和结构优化(DNN compression and DNN architecture optimization ),提高DNN推断的速度且降低能耗。本文工作与之不同,将移动设备和边缘服务器结合,缓解性能和能量的限制。另一方面,虽然已有利用模型分割将云与设备联合的研究,但是并不能满足关键任务对时限的要求。本文结合模型精简加速模型推断过程。

Background & Motivation

正向传播从输入层到输出层的过程称为模型推断(model inference)。现在将DNN运行在移动设备有两种方式,基于本地运行(Device-based)和基于云/边缘服务器(Cloud/Edge-based)运行。但是两种方式的效果都不能满足应用需求。而我们提出的,结合模型分割和模型精简的边缘智能方案是可行的。

模型分割

(似乎没有引用相关论文)将模型分割后,将计算复杂的部分模型及相关数据上传到服务器运行,返回结果再送入本地部分模型运行,以减小延时。以AlexNet为例,将模型lrn_2作为分割点,前半部分送入edge server,如图。

image

模型精简

模型分割后,虽然云/边缘服务器分担了很多计算,但是运行在本地移动设备的部分网络依然受限,所以Edgent还应用了模型精简。模型精简通过在模型设置多个退出点(exit points),以满足应用程序的预设延迟。可以在DNN浅层的退出点输出模型推断结果,减少模型的运行时间,但是可能降低准确度。以AlexNet为例,在原有的一个退出点外增设四个退出点。这种做法借鉴了BranchyNet,并且做了两点改进:大幅增加退出点数量;退出结构用非线性的卷积层替代线性的二分类器;退出机制略有差别(BranchyNet从浅层运行到深层,每经过一个退出点,判断预测的置信度是否超过阈值,超过就输出;Edgent先从深层遍历到浅层,计算模型运行到每个退出点的时间,在满足时间限制的前提下,尽量从靠后的退出点输出)。

image

问题描述 给定预设延迟的需求,如何联合优化模型分割和模型精简,以最大限度地提高模型推理的准确性。(given a predefined latency requirement, how to jointly optimize the decisions of DNN partitioning and right-sizing, in order to maximize DNN inference accuracy.)

Framework

Edgent包含3个阶段:线下训练阶段(offline training stage)、线上优化阶段( online optimization stage)、联合推断阶段(co-inference stage)。线下训练阶段训练包含Branchynet结构的神经网络模型;线上优化阶段得到分割点与退出点;联合推断阶段根据分割点和退出点,联合推断。

image

Layer Latency Prediction

Edgent需要预测每层网络的延迟。为简化预测过程,Edgent转为预测每种网络层的延迟,并且根据实验,概括出两个影响延迟的因素,并得到线性回归模型预测延迟。各种网络层(如卷积层、池化层、Relu等)的延迟与该层各参数(输入数据尺寸、输出参数尺寸、卷积核参数等)和模型加载时间有关。预测延迟的线性回归模型如图。

image

Joint optimization on DNN Partition and DNN Right-Sizing

优化阶段,需要从移动设备获得预设延迟。随后需要根据EPPPS算法(Exit Point and Partition Point Search Algorithm,退出点和分割点搜索算法)得到退出点和分割点。该算法是真的暴力,按照从网络深层的退出点到浅层退出点顺序遍历,通过预测每层延迟,判断每个退出点之前是否存在分割点p,使得整个网络的运行时间满足要求。

image

Evaluation

评估了系统在不同带宽、预设延迟情况下的性能,证明基于边缘服务器-本地设备的Edgent优于基于边缘服务器和基于本地设备的方案。

Conclusion

未来研究考虑能量。

附录:BranchyNet

本节介绍Edgent中提到的BranchyNet。为了减少开支,提出了BranchyNet,一种分支神经网络结构,添加到传统的神经网络,实现提前退出机制。BranchyNet利用各个exit point的损失函数之和联合训练,得到解决综合优化问题的模型。

当网络训练好后,BranchyNet利用退出点(exit point)机制实现提前退出,以降低推断过程的消耗。在每一个退出点,BranchyNet计算预测的置信度。如果这个置信度低于阈值,则输出预测结果,提前终止;如果小于阈值,运行到下一个退出点;如果到达最后一个退出点,即基础网络的最后一层,直接输出预测结果。主要做了三点创新::

  • 通过提前退出分支实现快速推断;

  • 联合损失函数正则化;

  • 减少渐近梯度(Mitigation of Vanishing Gradients)

传统的减少深度网络模型推断时间的方法有两种:模型压缩(network compression),算法执行优化(implementation optimization)。BranchyNet与这些方法不同,互为补充。此外,BranchyNet结构还在防止过拟合、梯度弥散等方面有积极作用。在BranchyNet前,也有对神经网络提前终止的研究。Conditional Deep Learning(CDL)在每个卷积层后面增加线性分类器判断是否可以提前终止。BranchyNet在此基础上改进,将线性分类器换成卷积层等结构,并且联合训练。

训练与超参数

Loss Function 多个分支结构有多组输出,采用联合损失函数:

​是一个参数,调出来的。训练期间,需要记录每个输出点的结果。

Fast Inference with BranchyNet 对于每个退出点,得到该退出点的预测值,即包含每个类别概率的矩阵​。带入下式得到​(熵),比较entropy与阈值​的大小,判断是否退出。

超参数 BranchyNet包含两个超参,​和​。这些参数有以下影响:

  • 正则化 在训练过程中,给予较早的分支更多权重,是一种正则化方法,可以提高模型准确率。给予较早的分支更多权重,鼓励网络在浅层就学习更多有区分度的特征信息,同时允许具有高置信度的预测分支提前输出结果并退出。

  • 运行时间与准确率 超参​的选择取决于任务对延迟或准确度的侧重,是折中。

  • 退出点位置 处理复杂数据集的模型,第一个退出点靠后;简单模型第一个退出点靠前。没啥意义。

超参自适应 超参​自适应。对于每个退出点,训练一个多层感知机(Multiply Perception,MLP),判断softmax后得到的​是否可以输出。

结论

BranchyNet is a toolbox for researchers to use on any deep network models for fast inference. 文章创新性不大。我认为BranchyNet结构就是GoogLeNet/ResNet中网络侧枝的延申,为神经网络速度和准确率的折中提出一点新思路。

你可能感兴趣的:(边缘智能--Edgent)