樊 琦,李 卓*,陳 昕
(1.網(wǎng)絡(luò)文化與數(shù)字傳播北京市重點(diǎn)實(shí)驗(yàn)室(北京信息科技大學(xué)),北京100101;2.北京信息科技大學(xué)計(jì)算機(jī)學(xué)院,北京100101)
近年來(lái),深度學(xué)習(xí)在一些領(lǐng)域取得巨大成功,其中的深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network,DNN)方法在各種任務(wù)上取得了很好的效果。越來(lái)越多的推斷任務(wù)譬如自動(dòng)駕駛[1]、智能語(yǔ)音[2]、圖像識(shí)別[3]等都需要用到神經(jīng)網(wǎng)絡(luò)。深度神經(jīng)網(wǎng)絡(luò)主要由多個(gè)卷積層、全連接層組成。其中的每一層都對(duì)輸入數(shù)據(jù)進(jìn)行處理,并傳輸?shù)较乱粚樱谧罱K層輸出推斷結(jié)果。
高精度的DNN 模型有更多的網(wǎng)絡(luò)層數(shù),也需要更多的計(jì)算資源。目前智能應(yīng)用任務(wù)中,通常將DNN 部署在計(jì)算資源充足的云端服務(wù)器[4]。在這種方式下,需要數(shù)據(jù)源把任務(wù)數(shù)據(jù)傳輸至云端的模型中執(zhí)行推斷任務(wù);云計(jì)算模式存在著延遲高、隱私性低和通信成本高等問(wèn)題[5],無(wú)法很好地滿足任務(wù)需求。還有的做法嘗試將推斷模型部署至移動(dòng)設(shè)備端[6],但由于移動(dòng)設(shè)備受限的資源情況,只能運(yùn)行簡(jiǎn)單的機(jī)器學(xué)習(xí)方法,最終得到精度不高的推斷結(jié)果。
邊緣計(jì)算作為一種新型計(jì)算模式,其核心原則之一是將計(jì)算能力推向邊緣,得到了研究人員廣泛關(guān)注[7]。在邊緣計(jì)算場(chǎng)景下,將DNN 模型部署在設(shè)備周圍的邊緣計(jì)算節(jié)點(diǎn)上。相對(duì)于到云服務(wù)的距離,邊緣計(jì)算節(jié)點(diǎn)到數(shù)據(jù)源近得多,所以低時(shí)延特性能輕松實(shí)現(xiàn)。但目前的邊緣計(jì)算設(shè)備處理能力有限,單個(gè)邊緣計(jì)算節(jié)點(diǎn)可能無(wú)法很好地完成復(fù)雜網(wǎng)絡(luò)模型的推斷任務(wù),因此需要多個(gè)邊緣計(jì)算節(jié)點(diǎn)共同部署DNN 模型。在邊緣計(jì)算場(chǎng)景下部署DNN的主要挑戰(zhàn)是如何挑選出合適的計(jì)算節(jié)點(diǎn)來(lái)部署模型,要考慮到神經(jīng)網(wǎng)絡(luò)模型的切分、模型的計(jì)算需求及邊緣計(jì)算節(jié)點(diǎn)的網(wǎng)絡(luò)狀況,以此來(lái)優(yōu)化多個(gè)計(jì)算節(jié)點(diǎn)協(xié)同運(yùn)行神經(jīng)網(wǎng)絡(luò)模型時(shí)的延遲。圖1 展示了分別在云計(jì)算和邊緣計(jì)算下進(jìn)行深度學(xué)習(xí)的場(chǎng)景。云計(jì)算場(chǎng)景下用戶設(shè)備發(fā)送的數(shù)據(jù)通過(guò)網(wǎng)絡(luò)上傳到云服務(wù)器進(jìn)行推斷任務(wù)。而邊緣計(jì)算場(chǎng)景下云服務(wù)器只進(jìn)行延遲容忍的模型訓(xùn)練過(guò)程,然后將訓(xùn)練好的模型部署在邊緣節(jié)點(diǎn),數(shù)據(jù)源將推斷任務(wù)數(shù)據(jù)傳輸至邊緣節(jié)點(diǎn),DNN模型進(jìn)行推斷后再為數(shù)據(jù)源返回推斷結(jié)果。
圖1 云計(jì)算與邊緣計(jì)算的深度學(xué)習(xí)模型對(duì)比Fig.1 Deep learning model comparison of cloud computing and edge computing
本文主要研究了如何在邊緣計(jì)算環(huán)境下減少DNN 的推斷延遲。利用BranchyNet深度學(xué)習(xí)框架在云端服務(wù)器上訓(xùn)練好具有多個(gè)分支的DNN 模型,證明了分支神經(jīng)網(wǎng)絡(luò)的分布式部署問(wèn)題是NP難的,設(shè)計(jì)并實(shí)現(xiàn)了基于分支定界思想的部署算法(Deployment algorithm based on Branch and Bound,DBB),來(lái)為DNN 模型找到有最小運(yùn)行延遲的邊緣節(jié)點(diǎn)部署方案。針對(duì)數(shù)據(jù)源推斷任務(wù)的延遲要求、地理分布特性,提出選擇節(jié)點(diǎn)退出(Select the Node Exit,SNE)算法,為不同的推斷任務(wù)數(shù)據(jù)源選擇合適的邊緣計(jì)算節(jié)點(diǎn)返回推斷結(jié)果。實(shí)驗(yàn)結(jié)果表明,與在云端部署神經(jīng)網(wǎng)絡(luò)模型的方法相比,基于邊緣的神經(jīng)網(wǎng)絡(luò)模型推斷方法平均降低了36%的延遲消耗。
深度學(xué)習(xí)任務(wù)主要分為訓(xùn)練和推理兩個(gè)階段。神經(jīng)網(wǎng)絡(luò)層數(shù)的增多帶來(lái)的是訓(xùn)練和推斷延遲以及成本的增大。為使DNN 更好服務(wù)于應(yīng)用,目前有研究關(guān)注神經(jīng)網(wǎng)絡(luò)的分布式訓(xùn)練方面,比如:文獻(xiàn)[8]提出的參數(shù)服務(wù)器框架,用并行的方式,使用參數(shù)服務(wù)器在訓(xùn)練時(shí)更新節(jié)點(diǎn)參數(shù),以縮短大數(shù)據(jù)環(huán)境下深度學(xué)習(xí)的訓(xùn)練時(shí)間;文獻(xiàn)[9]考慮了訓(xùn)練DNN 模型時(shí)分布式服務(wù)器之間的通信開(kāi)銷,研究了多種通信算法來(lái)提高DNN模型的訓(xùn)練效率。
在優(yōu)化神經(jīng)網(wǎng)絡(luò)推斷延遲方面,文獻(xiàn)[10]提出了一種BranchyNet 分支網(wǎng)絡(luò)結(jié)構(gòu),在普通DNN 模型中間添加多個(gè)分支網(wǎng)絡(luò)模型并部署早期退出點(diǎn),當(dāng)系統(tǒng)對(duì)推斷任務(wù)有把握時(shí),可將任務(wù)在模型中間添加的分支中退出,不必使樣本經(jīng)歷DNN 模型的所有層數(shù),從而減少推斷延遲;文獻(xiàn)[11]利用DNN 模型中卷積層和全連接層廣義矩陣乘積操作的特性,將DNN 模型中這兩部分計(jì)算需求劃分為可以并行執(zhí)行的片段,并部署到多個(gè)移動(dòng)設(shè)備上,使用并行計(jì)算的方法來(lái)減少推斷過(guò)程中的延遲;文獻(xiàn)[12]研究了本地與邊緣服務(wù)器協(xié)同進(jìn)行DNN 推斷的場(chǎng)景,提出了Edgent 終端-邊緣協(xié)同推理框架,將DNN 模型劃分為兩個(gè)部分:將資源需求大的部分部署在邊緣服務(wù)器上,而資源需求小的模型部分則部署在本地終端設(shè)備上;文獻(xiàn)[13]提出了Neurosurgeon 系統(tǒng),研究了計(jì)算機(jī)視覺(jué)、語(yǔ)音等多種DNN架構(gòu)的計(jì)算和數(shù)據(jù)特性,設(shè)計(jì)了DNN模型在移動(dòng)設(shè)備與云服務(wù)器上共同部署時(shí)的分區(qū)方案。對(duì)邊緣計(jì)算場(chǎng)景中的深度學(xué)習(xí)推斷任務(wù),有效的任務(wù)調(diào)度算法也可以提高模型推理性能,文獻(xiàn)[14]中將DNN 模型分別部署在網(wǎng)絡(luò)邊緣的網(wǎng)關(guān)與遠(yuǎn)程云服務(wù)器上,通過(guò)為深度學(xué)習(xí)任務(wù)設(shè)計(jì)了一種新的任務(wù)卸載策略來(lái)提高推斷性能。
此外,還有研究關(guān)注減少DNN 模型的計(jì)算工作量。文獻(xiàn)[15]中通過(guò)剪接、訓(xùn)練量化和哈夫曼編碼三階段對(duì)DNN 模型進(jìn)行深度壓縮,在不影響DNN 模型精度的前提下,降低了DNN 模型的存儲(chǔ)需求;文獻(xiàn)[16]針對(duì)在資源有限的嵌入式設(shè)備中進(jìn)行卷積神經(jīng)網(wǎng)絡(luò)計(jì)算所需內(nèi)存空間和資源過(guò)大的問(wèn)題,提出了結(jié)合網(wǎng)絡(luò)權(quán)重裁剪及面向嵌入式平臺(tái)的動(dòng)態(tài)定點(diǎn)量化方法,有效地壓縮了神經(jīng)網(wǎng)絡(luò)模型并降低了計(jì)算消耗。
在邊緣計(jì)算場(chǎng)景下進(jìn)行深度學(xué)習(xí)推斷任務(wù),需要考慮DNN 模型計(jì)算特性以及邊緣節(jié)點(diǎn)的網(wǎng)絡(luò)狀況和計(jì)算能力,因此本文綜合考慮這兩點(diǎn)提出分支神經(jīng)網(wǎng)絡(luò)在邊緣計(jì)算場(chǎng)景下的分布式部署問(wèn)題,通過(guò)選擇最優(yōu)部署方案以及優(yōu)化推斷結(jié)果的傳輸來(lái)減少推斷任務(wù)的延遲。
在邊緣計(jì)算場(chǎng)景下部署分支DNN 模型,首先需要在云服務(wù)器上完成模型的訓(xùn)練過(guò)程,這個(gè)過(guò)程是延遲容忍的,本文重點(diǎn)關(guān)注模型進(jìn)行任務(wù)推斷的過(guò)程。DNN 的結(jié)構(gòu)是層與層之間的有序序列,每一層接收到上一層輸出數(shù)據(jù)并處理,然后傳輸至下一層。利用這個(gè)特性可將DNN 構(gòu)造為具有多個(gè)分支的DNN 模型,每一個(gè)分支都由具體的神經(jīng)網(wǎng)絡(luò)層組成,多個(gè)分支又共同組成一個(gè)完整的DNN 模型。邊緣計(jì)算場(chǎng)景中的邊緣計(jì)算節(jié)點(diǎn)由多種計(jì)算性能不同的設(shè)備組成,這些設(shè)備數(shù)量眾多,相互獨(dú)立,分散在用戶周圍[17]。單獨(dú)的邊緣計(jì)算節(jié)點(diǎn)只能運(yùn)行精度不高的簡(jiǎn)單模型,自然想到將帶有分支的DNN模型分布式部署到多個(gè)邊緣計(jì)算節(jié)點(diǎn)上,由這些節(jié)點(diǎn)共同完成模型的推斷過(guò)程。因?yàn)楦鞣种в兄煌木W(wǎng)絡(luò)層結(jié)構(gòu),這會(huì)導(dǎo)致各分支對(duì)部署節(jié)點(diǎn)的計(jì)算資源要求不同,即同一模型部署到不同節(jié)點(diǎn)上會(huì)導(dǎo)致不同的運(yùn)行延遲;又考慮到不同邊緣計(jì)算節(jié)點(diǎn)之間有著不同的網(wǎng)絡(luò)狀況,因此分支神經(jīng)網(wǎng)絡(luò)的分布式部署問(wèn)題需要綜合考慮到節(jié)點(diǎn)計(jì)算能力、分支模型結(jié)構(gòu)以及節(jié)點(diǎn)之間的數(shù)據(jù)傳輸,不同的部署方式會(huì)使得推斷樣本經(jīng)歷不同分支出口點(diǎn)、DNN 層數(shù),即會(huì)導(dǎo)致精度和運(yùn)行時(shí)的延遲不同。因此,需要為給定的DNN 分支模型結(jié)構(gòu)選擇最佳的邊緣計(jì)算節(jié)點(diǎn)部署。同時(shí)數(shù)據(jù)源到不同邊緣計(jì)算節(jié)點(diǎn)的距離、網(wǎng)絡(luò)狀況也是影響推斷任務(wù)效果的因素。因此,問(wèn)題的研究可以分為兩個(gè)階段:第一階段是為訓(xùn)練好的DNN 分支模型選擇合適的邊緣節(jié)點(diǎn)部署,目標(biāo)是使模型運(yùn)行時(shí)的總延遲最?。坏诙A段是為不同的數(shù)據(jù)源選擇滿足其延時(shí)要求的邊緣計(jì)算節(jié)點(diǎn)退出推斷結(jié)果,并返回?cái)?shù)據(jù)源。
在邊緣計(jì)算場(chǎng)景中,給定邊緣計(jì)算節(jié)點(diǎn)集合E={e1,e2,…,ei,…,em}以及有n 個(gè)分支的DNN 模型集合D={d1,d2,…,dz,…,dn},其中dz表示第z 個(gè)分支,且這n 個(gè)模型分支有運(yùn)行順序的要求;fij表示分支模型i 和j 部分的運(yùn)行順序;mij表示邊緣節(jié)點(diǎn)i與j之間延遲;cij表示將di部署在ej上運(yùn)行時(shí)的延遲;xij表示將第i個(gè)模型部分部署到第j個(gè)節(jié)點(diǎn)上。
問(wèn)題1 分支神經(jīng)網(wǎng)絡(luò)的分布式部署問(wèn)題。給定邊緣計(jì)算節(jié)點(diǎn)集合E 與DNN 分支模型集合D,要求確定一個(gè)部署方案,使得在該部署方案下,每一個(gè)分支模型都部署到一個(gè)邊緣計(jì)算節(jié)點(diǎn)上,使DNN模型運(yùn)行時(shí)所需總延遲最少。
定理1分支神經(jīng)網(wǎng)絡(luò)的分布式部署問(wèn)題是NP-難問(wèn)題。
證明 首先介紹二次分配問(wèn)題(Quadratic Assignment Problem,QAP)。QAP 可描述為:給定n 個(gè)設(shè)備和n 個(gè)地點(diǎn),三個(gè)n×n 矩陣F=(fij)n*n,D=(dij)n*n與C=(cij)n*n,其中,fij表示設(shè)備i與j之間的流量,dij表示地點(diǎn)i與j之間距離,cij表示設(shè)備i部署在位置j的花費(fèi),fij與dij之間的乘積為通信費(fèi)用,要求給每個(gè)設(shè)備分配一個(gè)位置,并使設(shè)施之間的通信費(fèi)用與設(shè)施到地點(diǎn)上的部署費(fèi)用之和最小。
其中p(i)表示設(shè)施i被分配的地點(diǎn)。
在分支神經(jīng)網(wǎng)絡(luò)的分布式部署問(wèn)題中,需要將n 個(gè)模型分配到m 個(gè)節(jié)點(diǎn)中的n個(gè)節(jié)點(diǎn)上(n ≤m),表示為問(wèn)題規(guī)模n×m,而在QAP 中,是將n個(gè)設(shè)備分配到總數(shù)為n的節(jié)點(diǎn)上,問(wèn)題規(guī)模為n×n。為了解決規(guī)模為n×m 的部署問(wèn)題,至少需要解決一個(gè)規(guī)模為n×n的QAP??梢詷?gòu)造m-n個(gè)虛擬分支模型,此時(shí)部署問(wèn)題變?yōu)橐?guī)模為m×m 的QAP,再將m 個(gè)設(shè)備分配到m 個(gè)位置上;或是將m 個(gè)可用節(jié)點(diǎn)位置分為n 組,再將n個(gè)設(shè)備分配到n 個(gè)節(jié)點(diǎn)上,此時(shí)部署問(wèn)題變?yōu)橐?guī)模為n×n 的QAP。因此分支神經(jīng)網(wǎng)絡(luò)的分布式部署問(wèn)題至少與n×n 規(guī)模的QAP 一樣難。已知QAP 已經(jīng)被證明為NP-難問(wèn)題[18],因此分支神經(jīng)網(wǎng)絡(luò)的分布式部署問(wèn)題是NP-難問(wèn)題。
本文基于分支定界思想設(shè)計(jì)了分布式神經(jīng)網(wǎng)絡(luò)模型的部署算法。DBB 采用單賦值策略,在每一個(gè)步驟選擇一個(gè)未分配的模型分配到一個(gè)空閑的位置。每次分配都會(huì)計(jì)算當(dāng)前已分配問(wèn)題的下界,若當(dāng)前下界大于已知的最優(yōu)解下界,則表明對(duì)當(dāng)前解分支繼續(xù)探索不會(huì)得到更好的解下界,則將上一次分配的位置移除,為當(dāng)前模型分配其他空閑位置;若當(dāng)前計(jì)算下界小于已知最優(yōu)解下界,算法則會(huì)繼續(xù)采用單賦值策略繼續(xù)為當(dāng)前解分配其他的對(duì)象。在為模型分配節(jié)點(diǎn)過(guò)程中,算法為每個(gè)節(jié)點(diǎn)定義節(jié)點(diǎn)性能:每個(gè)邊緣節(jié)點(diǎn)到其相鄰節(jié)點(diǎn)的延遲與當(dāng)前模型部署延遲之和越小,則節(jié)點(diǎn)越有可能被部署,以此提升下一次分配得到更好下界的可能性。若模型已被全部分配至節(jié)點(diǎn)上,計(jì)算此時(shí)下界,若小于已知最優(yōu)解下界,則記錄當(dāng)前解并更新下界。此時(shí)算法再通過(guò)回溯至解空間樹(shù)上一層,為已分配模型選擇其他節(jié)點(diǎn)部署來(lái)尋找下一個(gè)可行解。
算法1 DBB。
輸入 DNN 模型集合D 以及邊緣計(jì)算節(jié)點(diǎn)集合E,代表n 個(gè)分支模型分別部署在m 個(gè)邊緣計(jì)算節(jié)點(diǎn)上的n×m 延遲矩陣C,邊緣計(jì)算節(jié)點(diǎn)之間通信的延遲矩陣M,記錄已部署的模型與設(shè)施集合為I與J,模型ik不允許被放置的節(jié)點(diǎn)集合記為P(ik),C*為初始下界。
輸出 部署模型對(duì)應(yīng)的節(jié)點(diǎn)序列。
1) C*=∞,i1=d1
2) for j ←1to m:
3) 集合I ←i1,集合J ←j1
4) for k ←1 to n-1
calculate B
if B ≥C*
go to 6)
else if B的值未改變
go to 5)
else ik+1=dk+1
replace I by I ∪{ik+1},J by J ∪{jk+1}
此時(shí)C1即完整分配的花費(fèi)
if C1<C*,C*=C1,存儲(chǔ)已分配對(duì)(in,jm),k=n
else k=n
6) 將ik與jk分別從I與J中移除
7) P(ik)=P(ik)∪{jk}
calculate B
8) if B ≥C*,then go to 9)
else 分配ik到位置t,t ?J ∪P(ik)
Jk=t,replace I byI ∪{ik},J by J ∪{jk}
go to 4)
9) 此時(shí)ik-1與jk-1從I與J中移除
replace p(ik-1)by p(ik-1)∪jk-1,k=k-1
else 得到最優(yōu)解(in,jm)
通過(guò)分析,該算法復(fù)雜度主要體現(xiàn)在計(jì)算問(wèn)題每一階段的下界部分,下界的定義方法會(huì)影響到算法的搜索效率。當(dāng)問(wèn)題規(guī)模n×n 中n 不超過(guò)20 時(shí),可以很快得到問(wèn)題最優(yōu)解。而問(wèn)題所考慮的有n個(gè)分支的神經(jīng)網(wǎng)絡(luò)模型中,n的規(guī)模不會(huì)很大,這也是未采用啟發(fā)式方法,而使用分支定界思想設(shè)計(jì)部署算法的原因。算法中邊界定義如下:假定模型i被放置到位置j,計(jì)算當(dāng)前解的下界B=C1+C2+C3。
其中:C1表示已分配模型的延遲成本,C2表示已分配與未分配模型之間傳輸?shù)难舆t成本,C3是未分配位置的模型的延遲成本。對(duì)本文問(wèn)題來(lái)說(shuō),C3的計(jì)算策略是將未分配計(jì)算節(jié)點(diǎn)與其余未分配節(jié)點(diǎn)延遲按升序排列,再將需要分配的模型部分依次放置上去。
部署模型任務(wù)完成之后,得到邊緣節(jié)點(diǎn)上運(yùn)行分支神經(jīng)網(wǎng)絡(luò)模型的最小延遲部署方案。而在推斷任務(wù)的實(shí)際情況中,還需考慮數(shù)據(jù)源到邊緣節(jié)點(diǎn)之間的距離、網(wǎng)絡(luò)狀況。推斷樣本經(jīng)歷不同的邊緣節(jié)點(diǎn)會(huì)導(dǎo)致結(jié)果延遲與精度的改變。邊緣計(jì)算應(yīng)用具有軟實(shí)時(shí)特征,用戶請(qǐng)求需要在一定的期限內(nèi)返回[19],且推斷結(jié)果的精度同樣影響用戶的體驗(yàn)質(zhì)量。為給推斷任務(wù)選擇合適的出口點(diǎn)返回推斷結(jié)果,本文設(shè)計(jì)了選擇節(jié)點(diǎn)退出算法。對(duì)給定延遲要求的推斷任務(wù),從已部署的邊緣節(jié)點(diǎn)集合D 中選出目標(biāo)節(jié)點(diǎn)d 返回推斷結(jié)果,在保證推斷滿足延遲要求情況下,使推斷樣本經(jīng)歷更多的邊緣節(jié)點(diǎn),最終為數(shù)據(jù)源返回符合延遲要求且保證精度的推斷結(jié)果。
如圖2 中,圖中央分布的是邊緣計(jì)算節(jié)點(diǎn),標(biāo)有數(shù)字的是已部署神經(jīng)網(wǎng)絡(luò)模型的節(jié)點(diǎn)。當(dāng)數(shù)據(jù)源1 與2 有任務(wù)需推斷時(shí),首先將數(shù)據(jù)發(fā)送至部署了神經(jīng)網(wǎng)絡(luò)模型第一層的邊緣節(jié)點(diǎn)1,隨后為數(shù)據(jù)源1 選擇符合任務(wù)要求的邊緣節(jié)點(diǎn)2 返回推斷結(jié)果,為數(shù)據(jù)源2選擇邊緣節(jié)點(diǎn)5返回推斷結(jié)果。
圖2 推斷任務(wù)運(yùn)行場(chǎng)景Fig.2 Running scenario of inference task
算法2 SNE算法。
輸入 已部署的DNN 模型網(wǎng)絡(luò)拓?fù)?;需推斷任?wù)的延遲要求latency;數(shù)據(jù)源距離第一個(gè)邊緣節(jié)點(diǎn)延遲B1;第i 個(gè)邊緣節(jié)點(diǎn)距數(shù)據(jù)源延遲Bi;任務(wù)退出點(diǎn)N;預(yù)測(cè)延遲f();推斷任務(wù)從第1 個(gè)到第i個(gè)邊緣計(jì)算節(jié)點(diǎn)上推斷所用延遲
輸出 符合任務(wù)t延遲要求的N。
1) For k ←1 to n
2) ELk←f(ELk)
3) For i ←1 to n
return i,store i to set I
5) return N=max I
6) else return null
本文使用NS2 網(wǎng)絡(luò)模擬器仿真邊緣計(jì)算的網(wǎng)絡(luò)場(chǎng)景,將基于邊緣計(jì)算的分支網(wǎng)絡(luò)部署模型與基于云計(jì)算的DNN 模型推斷進(jìn)行對(duì)比。在深度學(xué)習(xí)框架BranchyNet下訓(xùn)練了一個(gè)具有多個(gè)分支的DNN 模型,用于Cifar-10 數(shù)據(jù)集上的圖像分類任務(wù)。在NS2 網(wǎng)絡(luò)模擬器中仿真了以數(shù)據(jù)源、邊緣節(jié)點(diǎn)與云服務(wù)器為主的網(wǎng)絡(luò)分布場(chǎng)景。圖3 說(shuō)明了具有5 個(gè)分支、6個(gè)出口點(diǎn)的分支神經(jīng)網(wǎng)絡(luò)模型B-AlexNet。為了便于說(shuō)明,僅繪制卷積層和全連接層。
圖3 分支神經(jīng)網(wǎng)絡(luò)模型主要結(jié)構(gòu)Fig.3 Main structure of branchy neural network model
實(shí)驗(yàn)中為設(shè)置異構(gòu)的邊緣節(jié)點(diǎn)網(wǎng)絡(luò)環(huán)境,采取將JetsonTX1、JetsonTX2、JetsonTK1 和JetsonNaNo 四種不同的邊緣設(shè)備在每次生成網(wǎng)絡(luò)拓?fù)鋾r(shí)隨機(jī)分配到邊緣節(jié)點(diǎn)上的方法。參考四種設(shè)備不同的計(jì)算性能參數(shù),使用文獻(xiàn)[20]中的Paleo 框架預(yù)測(cè)了模型各分支在邊緣節(jié)點(diǎn)上的模型運(yùn)行延遲,如表1。
首先將本文提出方法與現(xiàn)有在云端部署神經(jīng)網(wǎng)絡(luò)模型的方法進(jìn)行對(duì)比。將訓(xùn)練好的分支神經(jīng)網(wǎng)絡(luò)模型分別部署在邊緣節(jié)點(diǎn)上和云服務(wù)器上。圖4 實(shí)驗(yàn)中基于邊緣計(jì)算的方法中延遲取的是模擬10 次不同網(wǎng)絡(luò)分布后的延遲平均值,節(jié)點(diǎn)之間帶寬設(shè)置為1 Mb/s。實(shí)驗(yàn)結(jié)果表明,兩種方法中,當(dāng)數(shù)據(jù)源的任務(wù)經(jīng)模型推斷后從同一出口點(diǎn)退出時(shí),即此時(shí)兩種方式對(duì)任務(wù)推斷的精度相同,基于邊緣計(jì)算的神經(jīng)網(wǎng)絡(luò)模型推斷所用延遲比云端部署方式更短。且綜合不同的推斷精度考慮,本文方法所用推斷延遲較云端部署方法平均降低了36%。
下面基于圖5 的網(wǎng)絡(luò)拓?fù)?,分析邊緣?jié)點(diǎn)上神經(jīng)網(wǎng)絡(luò)模型對(duì)不同地理位置的數(shù)據(jù)源進(jìn)行推斷任務(wù)的性能。首先由DBB 從隨機(jī)生成的邊緣節(jié)點(diǎn)分布集合中選擇了節(jié)點(diǎn)1、2、3、4、5、6部署分支神經(jīng)網(wǎng)絡(luò)模型。
表1 分支模型在邊緣設(shè)備上的運(yùn)行延遲 單位:msTab.1 Branchy model running delay on edge devices unit:ms
圖4 本文方法與云服務(wù)器方法的推斷延遲對(duì)比Fig.4 Inference delay comparison of the proposed method and cloud server method
圖5 網(wǎng)絡(luò)模擬狀態(tài)Fig.5 Simulation state of the network
實(shí)驗(yàn)結(jié)果如圖6 所示,可發(fā)現(xiàn)當(dāng)推斷樣本返回的推斷精度低時(shí),即此時(shí)樣本在部署早期分支退出點(diǎn)的節(jié)點(diǎn)退出(如節(jié)點(diǎn)1、2、3),此時(shí)數(shù)據(jù)源節(jié)點(diǎn)8距離退出點(diǎn)更近,因此獲得了更好的延遲效果;隨著推斷樣本精度的提升,邊緣節(jié)點(diǎn)在分支神經(jīng)網(wǎng)絡(luò)模型后期的退出點(diǎn)為數(shù)據(jù)源返回推斷結(jié)果,此時(shí)后期退出點(diǎn)距離數(shù)據(jù)源節(jié)點(diǎn)9更近,因此節(jié)點(diǎn)9的推斷任務(wù)取得比節(jié)點(diǎn)8更好的延遲效果。
圖6 邊緣場(chǎng)景下不同數(shù)據(jù)源任務(wù)推斷延遲對(duì)比Fig.6 Task inference delay comparison of different data sources in edge computing scenario
實(shí)驗(yàn)中還發(fā)現(xiàn)推斷任務(wù)的運(yùn)行延遲受到網(wǎng)絡(luò)帶寬的影響,因此在實(shí)驗(yàn)中考慮設(shè)置網(wǎng)絡(luò)帶寬為500 kb/s,此時(shí)的推斷任務(wù)運(yùn)行情況如表2 所示,精度為-1 時(shí)表示當(dāng)前推斷無(wú)法滿足任務(wù)延遲要求。當(dāng)推斷任務(wù)延遲要求為50 ms 時(shí),云服務(wù)器與邊緣場(chǎng)景下的SNE 算法都無(wú)法滿足任務(wù)的延遲需求;隨著推斷任務(wù)延遲要求降低,SNE 算法通過(guò)選擇早期的分支模型進(jìn)行任務(wù)推斷,并輸出中等精度的推斷結(jié)果;當(dāng)任務(wù)延遲要求達(dá)到350 ms 時(shí),兩種方式都可以滿足推斷任務(wù)延遲要求,為數(shù)據(jù)源返回最高精度分支模型的推斷結(jié)果。
表2 網(wǎng)絡(luò)受限情況下邊緣與云場(chǎng)景下任務(wù)推斷精度對(duì)比Tab.2 Comparison of inference accuracy in edge and cloud scenarios with limited network
針對(duì)現(xiàn)有基于云的深度學(xué)習(xí)任務(wù)推斷延遲過(guò)高問(wèn)題,本文提出在邊緣計(jì)算場(chǎng)景下部署分支神經(jīng)網(wǎng)絡(luò)模型以減小推斷延遲,設(shè)計(jì)了基于分支定界思想的部署算法(DBB)來(lái)為給定的DNN 模型選擇合適的邊緣計(jì)算節(jié)點(diǎn)部署,降低了推斷任務(wù)所需要的延遲;同時(shí)設(shè)計(jì)了選擇節(jié)點(diǎn)退出算法(SNE)為不同延遲要求的推斷任務(wù)滿足選擇合適節(jié)點(diǎn)返回推斷結(jié)果。實(shí)驗(yàn)結(jié)果顯示,與傳統(tǒng)在云端部署神經(jīng)網(wǎng)絡(luò)模型的方法相比,本文提出的邊緣計(jì)算場(chǎng)景下部署分支神經(jīng)網(wǎng)絡(luò)模型平均降低了36%的推斷延遲。