趙宏偉,柴海龍,李 思,董昌林,潘志偉
(1.沈陽(yáng)大學(xué) 信息工程學(xué)院,遼寧 沈陽(yáng) 110044;2.沈陽(yáng)大學(xué) 碳中和技術(shù)與政策研究所,遼寧 沈陽(yáng) 110044)
人工智能的廣泛應(yīng)用和物聯(lián)網(wǎng)設(shè)備(Internet of things,IoT)數(shù)量爆發(fā)式的增長(zhǎng)共同促進(jìn)了邊緣智能技術(shù)的快速發(fā)展,深度神經(jīng)網(wǎng)絡(luò)(deep neural network,DNN)作為支持現(xiàn)代智能應(yīng)用的骨干技術(shù)[1],通常需要大量的計(jì)算量,然而現(xiàn)有的多數(shù)智能應(yīng)用只在云端運(yùn)行,邊緣物聯(lián)網(wǎng)設(shè)備只起到數(shù)據(jù)的收集和上傳作用,這給云端帶來了沉重的負(fù)擔(dān)[2],為了緩解邊緣設(shè)備計(jì)算能力有限與DNN資源需求巨大之間的差異[3],經(jīng)典解決方法如分割深度學(xué)習(xí)模型,將部分計(jì)算任務(wù)推到網(wǎng)絡(luò)邊緣,通過設(shè)備間的協(xié)作解決問題[4],這種方式既減少了邊緣與云之間的網(wǎng)絡(luò)流量,同時(shí)避免了數(shù)據(jù)傳輸過程中的安全和隱私泄露風(fēng)險(xiǎn)。然而,現(xiàn)有的協(xié)同推理方面的研究大多集中在對(duì)模型本身的優(yōu)化,并沒有充分考慮模型和數(shù)據(jù)的并行性對(duì)推理過程的加速作用。跨邊緣設(shè)備集群分布式執(zhí)行DNN推理任務(wù)的方法是一個(gè)低成本且有效的解決方案。
因此,該文針對(duì)基于邊緣智能的分布式協(xié)同推理策略進(jìn)行研究,提出一種結(jié)合模型層粒度分區(qū)和數(shù)據(jù)并行執(zhí)行的分布式推理策略(distributed edge cluster DNN,DecDNN),在資源受限的邊緣設(shè)備簇中,該策略能有效協(xié)同邊緣設(shè)備并行執(zhí)行DNN推理任務(wù),減少整體執(zhí)行時(shí)間。
現(xiàn)有研究已經(jīng)提出多種方法來加速DNN在邊緣的推理,包括模型分區(qū)[5-8]、數(shù)據(jù)分區(qū)[9-12],及分布式協(xié)同推理策略研究[13-16]。
模型分區(qū),Kang Y等提出的Neurosurgeon框架能夠在移動(dòng)設(shè)備和云中自動(dòng)劃分DNN模型,能夠適應(yīng)不同的DNN架構(gòu)并選擇最佳延遲和最佳能耗的分區(qū)點(diǎn)[5]。李恩等提出Edgent模型結(jié)合模型水平分區(qū)和模型提前退出機(jī)制來進(jìn)一步降低模型協(xié)同推理的時(shí)延[6]。郅佳琳等提出基于卷積核的分割方案[7]。王諾等提出了一種基于網(wǎng)絡(luò)模型壓縮與切割技術(shù)的深度模型邊云協(xié)同加速機(jī)制[8],但是這些文獻(xiàn)對(duì)于DNN模型的支持有限,并且沒有考慮到協(xié)同推理的并行性。
數(shù)據(jù)分區(qū),數(shù)據(jù)分區(qū)將數(shù)據(jù)分配給設(shè)備并行執(zhí)行,DeepThings中的單個(gè)任務(wù)涉及整個(gè)CNN,導(dǎo)致重疊計(jì)算和冗余任務(wù)[9]。Stahl等側(cè)重于全連接層的分區(qū),實(shí)現(xiàn)全分布式執(zhí)行[10]。Bai Y等提出通過減少同步梯度的數(shù)據(jù)量來緩解數(shù)據(jù)并行DNN訓(xùn)練中的通信瓶頸問題[11]。DeepScaling框架將模型分區(qū)與數(shù)據(jù)分區(qū)結(jié)合[12],這些系統(tǒng)研究很少關(guān)注CNN結(jié)構(gòu)和調(diào)度策略的多樣性,而理論研究往往忽略設(shè)備間的同步代價(jià)。
分布式協(xié)同推理框架,Zhang J等提出了一種利用鄰近工作節(jié)點(diǎn)實(shí)現(xiàn)網(wǎng)絡(luò)集群中各種神經(jīng)網(wǎng)絡(luò)遷移和動(dòng)態(tài)優(yōu)化分配的系統(tǒng)[13]。張帆等設(shè)計(jì)提出一種三層計(jì)算系統(tǒng)框架,并在邊緣層提出了一種高效的資源調(diào)度策略[14]。He W等提出了將DL任務(wù)卸載到部署在MEC服務(wù)器上的DNN分區(qū)以提高推理速度的解決方案[15]。Xiao W等提出了一種用于深度神經(jīng)網(wǎng)絡(luò)模型服務(wù)配置的協(xié)作式云邊服務(wù)認(rèn)知框架,以提供動(dòng)態(tài)靈活的計(jì)算服務(wù)[16],以上研究針對(duì)不同優(yōu)化目標(biāo)提出了不同的模型劃分方法和執(zhí)行方法,實(shí)現(xiàn)了IoT邊緣環(huán)境中模型的并行性。
在本文中,提出了一種整體的、協(xié)作的、自適應(yīng)的、低延遲的DNN推理分布式策略DecDNN,本文的主要貢獻(xiàn)總結(jié)如下:①一個(gè)新穎的分布式DecDNN框架及其實(shí)現(xiàn);②一種自適應(yīng)模型分割算法(adaptive model cutting algorithm,AMCA);③一種基于全局置亂切分的分布式隨機(jī)梯度下降算法;④一種聚合輸出方案。仿真實(shí)驗(yàn)結(jié)果表明。與目前先進(jìn)的協(xié)同推理架構(gòu)相比,提出的DecDNN協(xié)同推理策略在降低通信開銷和整體執(zhí)行時(shí)延方面具有良好的性能。
傳統(tǒng)的基于“云-邊-端”的DNN協(xié)同推理體系結(jié)構(gòu)只考慮順序?qū)哟沃g的協(xié)同推理,該結(jié)構(gòu)雖然能在一定程度上加速DNN推理過程,但加速效果不夠明顯,沒有充分利用邊緣設(shè)備的并行特性。因此,提出了一種分布式邊緣集群的網(wǎng)絡(luò)模型,如圖1所示,該結(jié)構(gòu)分為三層,設(shè)備層是指產(chǎn)生大量數(shù)據(jù)的IoT設(shè)備,邊緣層是指在物聯(lián)網(wǎng)網(wǎng)關(guān)中部署的一簇邊緣服務(wù)器。云中心是大規(guī)模數(shù)據(jù)存儲(chǔ)與分析、智能模型訓(xùn)練以及對(duì)邊緣節(jié)點(diǎn)進(jìn)行管理的云平臺(tái)。
首先通過云服務(wù)器訓(xùn)練深度學(xué)習(xí)網(wǎng)絡(luò)模型。通過訓(xùn)練階段將深度神經(jīng)網(wǎng)絡(luò)模型劃分為兩個(gè)模塊。其中部分切片包括靠近輸入數(shù)據(jù)的較低層,而另一部分模型切片包括靠近輸出數(shù)據(jù)的較高層。將較低層的部分復(fù)制部署到邊緣服務(wù)器簇中的每一個(gè)服務(wù)器,將較高層的部分部署到云端進(jìn)行協(xié)同推理。因此,收集到的數(shù)據(jù)被輸入到邊緣服務(wù)器,數(shù)據(jù)在邊緣服務(wù)器之間進(jìn)行分割,以并行的方式進(jìn)行推理。邊緣聚合器從底層加載中間數(shù)據(jù),將各個(gè)邊緣服務(wù)器的輸出進(jìn)行聚合,然后將聚合后的數(shù)據(jù)作為上層的輸入數(shù)據(jù)傳輸?shù)皆品?wù)器,云服務(wù)器根據(jù)邊緣端上傳的數(shù)據(jù)完成最終任務(wù)推理并將推理結(jié)果下發(fā)到邊緣端。
“云-邊緣簇-端”的模型具有云端的計(jì)算與存儲(chǔ)優(yōu)勢(shì)、邊緣端數(shù)據(jù)的實(shí)時(shí)性優(yōu)點(diǎn),同時(shí)將經(jīng)過邊緣服務(wù)器處理的中間數(shù)據(jù)上傳至云端可以避免數(shù)據(jù)隱私泄露,降低網(wǎng)絡(luò)傳輸帶寬壓力。將終端設(shè)備通過低延遲和高帶寬的無線網(wǎng)絡(luò)接入到無線接入點(diǎn)AP(access point)。智能主機(jī)、邊緣服務(wù)器都位于同一個(gè)局域網(wǎng)(local area network,LAN)中。而邊界主機(jī)和云主機(jī)之間通過廣域網(wǎng)相連。
如圖2所示,系統(tǒng)由3部分組成:①建立預(yù)測(cè)模型,分析DNN模型和節(jié)點(diǎn)性能并預(yù)測(cè)最優(yōu)分割;②由多個(gè)邊緣節(jié)點(diǎn)組成的分布式網(wǎng)絡(luò)集群;③執(zhí)行數(shù)據(jù)分區(qū)和模型分區(qū)的中間件,分別執(zhí)行模型分區(qū)算法和數(shù)據(jù)分區(qū)算法。
2.2.1 性能預(yù)測(cè)模型
DecDNN對(duì)任意神經(jīng)網(wǎng)絡(luò)架構(gòu)的每層延遲和能量消耗進(jìn)行建模。在不執(zhí)行DNN的情況下估計(jì)DNN組成層的延遲和能耗。由于每種層類型與層配置之間的延遲差異較大,因此,為了構(gòu)造用于每種層類型的預(yù)測(cè)模型,通過改變?cè)搶拥目膳渲脜?shù)并且測(cè)量用于每種配置的延遲和功耗。使用這些配置參數(shù)為每種層類型建立回歸模型,以根據(jù)其配置預(yù)測(cè)層的延遲和功耗。使用GFLOPS(每秒千兆浮點(diǎn)運(yùn)算)作為性能指標(biāo)。根據(jù)層類型,使用線性函數(shù)作為回歸函數(shù)。
卷積層、局部層和池化層的可配置參數(shù)包括輸入特征映射維度、數(shù)目、大小和過濾器的大小。卷積層的回歸模型基于兩個(gè)變量:輸入特征圖中的特征數(shù)量,以及(濾波器大小)2×(濾波器數(shù)量),表示應(yīng)用于輸入特征圖中每個(gè)像素的計(jì)算量。對(duì)于池化層,使用輸入和輸出特征映射的大小作為回歸模型變量。在全連接層中,輸入數(shù)據(jù)乘以學(xué)習(xí)的權(quán)重矩陣以生成輸出向量。使用輸入神經(jīng)元數(shù)目和輸出神經(jīng)元數(shù)目作為回歸模型變量。與其它層相比,激活層具有較少的可配置參數(shù),因?yàn)榧せ顚釉谄漭斎霐?shù)據(jù)和輸出之間具有一對(duì)一的映射關(guān)系。
2.2.2 數(shù)據(jù)隱私保護(hù)
首先,DecDNN通過模型分割法將AI模型以水平分割的方式分為兩個(gè)部分,一部分在邊緣集群上處理,另一部分在云端處理,由于上傳至云端的數(shù)據(jù)是經(jīng)過邊緣集群推理后的中間數(shù)據(jù),而非原始終端數(shù)據(jù),因此在傳輸過程中不會(huì)對(duì)原始數(shù)據(jù)造成泄漏。
其次,全局置亂切分法可以將原始數(shù)據(jù)集分成若干個(gè)子集,每個(gè)子集中的樣本都經(jīng)過置亂處理,從而使得每個(gè)子集中的數(shù)據(jù)都失去了原來的身份信息。即使攻擊者獲取了某個(gè)子集的數(shù)據(jù),也無法通過這個(gè)子集中的數(shù)據(jù)推斷出其它子集或整個(gè)數(shù)據(jù)集中的數(shù)據(jù)。因此,全局置亂切分法可以防止攻擊者通過對(duì)部分?jǐn)?shù)據(jù)的分析推斷出整個(gè)數(shù)據(jù)集的隱私信息。DecDNN框架通過等同于兩次數(shù)據(jù)加密過程保證了原始數(shù)據(jù)的安全性。
DecDNN利用分層性能預(yù)測(cè)模型,動(dòng)態(tài)選擇最優(yōu)的DNN模型分割點(diǎn),首先將目標(biāo)DNN模型部署到當(dāng)前網(wǎng)絡(luò)的云服務(wù)器上,然后運(yùn)行整個(gè)神經(jīng)網(wǎng)絡(luò),得到神經(jīng)網(wǎng)絡(luò)模型各層的計(jì)算量和輸出量。該預(yù)測(cè)模型根據(jù)當(dāng)前網(wǎng)絡(luò)狀態(tài)下每個(gè)節(jié)點(diǎn)的負(fù)荷和節(jié)點(diǎn)間的數(shù)據(jù)傳輸速率,結(jié)合以上所得到的神經(jīng)網(wǎng)絡(luò)各層的計(jì)算量和輸出量,可以在不執(zhí)行DNN的情況下估計(jì)出當(dāng)前DNN網(wǎng)絡(luò)層的最優(yōu)分配方案。定義模型最佳分割點(diǎn)為p,即在模型第p層將模型分割,目標(biāo)DNN的總層數(shù)為N,每層的配置定義為 {Li|i=1,2,…,n},第i層在邊緣服務(wù)器上的運(yùn)行時(shí)間EDi,在云端運(yùn)行的時(shí)間ECi,Dp是第p層的輸出,在特定帶寬B下,利用輸入數(shù)據(jù)Input,當(dāng)?shù)趐層為模型切割點(diǎn)時(shí)計(jì)算總的推理時(shí)延Ai,p表示為
(1)
當(dāng)p=1時(shí),表示當(dāng)前目標(biāo)DNN模型僅運(yùn)行在云服務(wù)器端,此時(shí)EDi=0,Dp-1/B=0,當(dāng)p=Ni時(shí),表示DNN模型僅在邊緣設(shè)備上運(yùn)行,此時(shí)ECi=0,Dp-1/B=0,Input/B=0,此時(shí)就可以在給定時(shí)延要求下找到模型中的最佳分區(qū)點(diǎn)。具體如算法1所示。
算法1:自適應(yīng)模型分割算法(AMCA)
輸入:N:DNN中層的總數(shù);{Li|i=1,2,…,n}:DNN中的層;{Di|i=1,2,…,n}:每個(gè)層的數(shù)據(jù)大??;B:無線網(wǎng)絡(luò)上行鏈路帶寬;Input:數(shù)據(jù);latency:時(shí)延;f(Lj):測(cè)的回歸模型;
輸出:模型最佳分割點(diǎn)p
(1)程序
(2) forj=1,…,Nido
(3) 計(jì)算云端運(yùn)行的時(shí)間ECi
(4) 計(jì)算邊緣服務(wù)器運(yùn)行的時(shí)間EDi
(5) end for
(6) 計(jì)算Ai,p
(7) ifAi,p≤latencythen
(8) return 最佳模型分割點(diǎn),執(zhí)行模型分割;
(9) end if
(10)end for
假設(shè)邊緣工作節(jié)點(diǎn)中沒有共用內(nèi)存,只有容量相對(duì)有限的本地內(nèi)存,而訓(xùn)練數(shù)據(jù)的規(guī)模很大,無法存儲(chǔ)于本地內(nèi)存,因此需要對(duì)數(shù)據(jù)集劃分。數(shù)據(jù)分區(qū)處理可以提高數(shù)據(jù)處理和模型訓(xùn)練的效率,減少計(jì)算和存儲(chǔ)資源的消耗,同時(shí)也可以有效解決數(shù)據(jù)隱私和安全問題。
利用全局置亂切分法對(duì)邊緣IoT設(shè)備產(chǎn)生的原始數(shù)據(jù)進(jìn)行隨機(jī)置亂,然后按照邊緣設(shè)備個(gè)數(shù)將打亂后的數(shù)據(jù)順序劃分成相應(yīng)的小份,隨后將這些滿足邊緣設(shè)備本地存儲(chǔ)條件的小份數(shù)據(jù)分配到各個(gè)邊緣設(shè)備上。使各個(gè)工作節(jié)點(diǎn)上的訓(xùn)練樣本更加獨(dú)立并具有更加一致的分布。具體的,假設(shè)訓(xùn)練數(shù)據(jù)集有n個(gè)樣本,簡(jiǎn)記為[n]=[1,…,n],每個(gè)樣本由d維特征表示,并行環(huán)境中有K個(gè)工作節(jié)點(diǎn)。需要把n個(gè)樣本[n]隨機(jī)置亂成π([n]),然后基于置亂的結(jié)果把數(shù)據(jù)順序均等地切分成K份,既
(2)
再將其分配到K個(gè)工作節(jié)點(diǎn)上進(jìn)行訓(xùn)練。
基于全局置亂切分的并行隨機(jī)梯度下降法如算法2所示,假定目標(biāo)函數(shù)是光滑的,算法的收斂速度為
(3)
其中,n為樣本數(shù),b為小批量規(guī)模,S為輪數(shù)。
算法2:基于全局置亂切分的分布式隨機(jī)梯度下降算法
輸入:訓(xùn)練數(shù)據(jù)集樣本n;工作節(jié)點(diǎn)數(shù)K;
輸出:K份基于置亂的數(shù)據(jù)集
初始化:初始模型W00,工作節(jié)點(diǎn)數(shù)K,小批量規(guī)模b,訓(xùn)練輪數(shù)S,每輪迭代數(shù)T=n/bK
fors=0,1,…,S-1 do
W0s+1=WTS
全局置換:隨機(jī)置換數(shù)據(jù)集,均分成K個(gè)局部數(shù)據(jù)集。
fort=0,1,…,T-1 do
for 工作節(jié)點(diǎn)k=1,…,k in parallel do
讀取當(dāng)前模型Wts
從局部數(shù)據(jù)集隨機(jī)抽取小批量數(shù)據(jù)Dks(t)
end for
end for
end for
在DecDNN系統(tǒng)中,假設(shè)邊緣設(shè)備集合為N={1,2,…,n},低層網(wǎng)絡(luò)模型在邊緣設(shè)備上進(jìn)行初步推理后得到的中間數(shù)據(jù)必須進(jìn)行聚合,以便作為云端模型推理的輸入數(shù)據(jù),本文提出了幾種不同的聚合輸出方案,不同的聚合會(huì)導(dǎo)致不同的推理精度,最后通過實(shí)驗(yàn)選擇出最優(yōu)的一種聚合方案。
提出的聚合方案如下:
(1)取最大值法(mc):通過取每個(gè)分量的最大值來聚合輸入向量,表達(dá)式為
(4)
其中,n表示聚合輸入數(shù)據(jù)的個(gè)數(shù)(既邊緣服務(wù)器的個(gè)數(shù)),vij表示輸入向量的第j個(gè)分量,Vj表示輸出結(jié)果的第j個(gè)分量。
(2)取平均值法(pc):通過取每個(gè)分量的平均值來聚合輸入向量。表達(dá)式為
(5)
這里n是輸入的個(gè)數(shù),vij是輸入矢量的第j個(gè)分量,Vj是輸出矢量的第j個(gè)分量。平均可以減少在某些終端設(shè)備中出現(xiàn)的噪聲輸入。
(3)串聯(lián)法(cc):串聯(lián)法只是將輸入向量連接在一起。串聯(lián)法保留所有對(duì)高層有用的信息,這些高層可以使用完整的信息來提取更高層次的特征。
DecDNN框架基于深度學(xué)習(xí)框架Pytorch實(shí)現(xiàn),使用一臺(tái)運(yùn)行Ubuntu系統(tǒng)的PC機(jī)模擬云端運(yùn)行環(huán)境,由5個(gè)相同配置的Raspberry PI3模擬邊緣集群,一個(gè)交換機(jī)和一個(gè)路由器分別表示有線連接和無線連接。默認(rèn)情況下使用路由器。在模擬測(cè)試環(huán)境上實(shí)現(xiàn)DecDNN。測(cè)試平臺(tái)配置信息見表1。
表1 仿真平臺(tái)配置信息
4.2.1 數(shù)據(jù)分區(qū)驗(yàn)證
將CIFAR-10數(shù)據(jù)集的訓(xùn)練集通過基于全局置亂切分的分布式隨機(jī)梯度下降算法進(jìn)行全局置亂并均等地切成K份子集,分別使用每個(gè)子集作為原始數(shù)據(jù)對(duì)網(wǎng)絡(luò)模型進(jìn)行評(píng)估和最佳分割點(diǎn)選擇。數(shù)據(jù)集置亂切分對(duì)比結(jié)果見表2。為了驗(yàn)證數(shù)據(jù)分區(qū)算法是否能夠影響DecDNN框架的整體性能,本文通過將全局置亂切分前后的數(shù)據(jù)分別在5種網(wǎng)絡(luò)模型上進(jìn)行訓(xùn)練評(píng)估,訓(xùn)練結(jié)果見表3。相比普通數(shù)據(jù)分區(qū),置亂切分?jǐn)?shù)據(jù)集的準(zhǔn)確率更接近通過原始數(shù)據(jù)集的訓(xùn)練的準(zhǔn)確率。驗(yàn)證全局置亂切分?jǐn)?shù)據(jù)分區(qū)算法能在不影響推理結(jié)果的情況下有效解決數(shù)據(jù)隱私和安全問題。
表2 數(shù)據(jù)集置亂切分對(duì)比
表3 模型訓(xùn)練準(zhǔn)確率/%
4.2.2 對(duì)比實(shí)驗(yàn)
將DecDNN與較為先進(jìn)的兩種協(xié)同推理策略進(jìn)行了比較:Edgent[6]框架和DeepSlicing[12]框架。為了實(shí)現(xiàn)3種框架,使用多個(gè)Raspberry PI3模擬邊緣環(huán)境,帶有Ubuntu系統(tǒng)的PC機(jī)模擬云端,默認(rèn)通過無線網(wǎng)絡(luò)進(jìn)行連接,無線網(wǎng)絡(luò)平均傳輸速率為62.3,通過VGG16網(wǎng)絡(luò)模型進(jìn)行框架的評(píng)估,實(shí)驗(yàn)過程中,分別在有線和無線情況下測(cè)量了每個(gè)邊緣設(shè)備的平均執(zhí)行時(shí)間和傳輸代價(jià),找到并實(shí)現(xiàn)最優(yōu)的并行執(zhí)行方式。
模型推理執(zhí)行時(shí)間的比較如圖3所示。Edgent采用基于模型的橫向劃分方法,由單個(gè)邊緣設(shè)備參與,不需要多個(gè)設(shè)備的處理和協(xié)調(diào),其處理速度比DeepSlicing和DecDNN都快。隨著邊緣設(shè)備數(shù)量的增加,Edgent的最優(yōu)劃分點(diǎn)被確定,Edgent的推理時(shí)延穩(wěn)定在一定范圍內(nèi)不再降低。而在DeepSlicing和DecDNN中,隨著劃分粒度的增大和邊緣設(shè)備數(shù)量的增加,調(diào)度策略可以利用分布式并行執(zhí)行的優(yōu)勢(shì),可以協(xié)同更多的計(jì)算資源進(jìn)行推理。因此,推斷延遲隨著邊緣設(shè)備數(shù)量的增加而減小。此外,在不同的邊緣設(shè)備數(shù)量下,DecDNN比DeepSlicing有更好的推理時(shí)延,平均高出約9%。DecDNN在有線和無線網(wǎng)絡(luò)連接下都具有更好的推理時(shí)延。
圖3 平均推理執(zhí)行時(shí)間對(duì)比
其次,測(cè)量了這3種方案的數(shù)據(jù)通信開銷和總計(jì)算時(shí)間,如圖4(a)所示,Edgent基于層粒度的劃分方法,其中數(shù)據(jù)的傳輸量大,通信開銷遠(yuǎn)高于其它兩種方法。但如圖4(b)所示,由于Edgent的計(jì)算主要在云端運(yùn)行,因此計(jì)算所需時(shí)間明顯更小。更多邊緣設(shè)備協(xié)同完成推斷任務(wù),也意味著邊緣設(shè)備之間的總通信開銷增加,總計(jì)算時(shí)間減少。隨著邊緣設(shè)備數(shù)量的增加,DecDNN框架擁有更低的數(shù)據(jù)通信開銷和更少的計(jì)算時(shí)間。
圖4 總計(jì)算時(shí)間和通信大小的比較
為了得到云端模型推理的輸入數(shù)據(jù),必須聚合來自多個(gè)邊緣服務(wù)器推理得到的中間數(shù)據(jù),本文考慮3種聚合方案(取最大值法、取平均值法、串聯(lián)法),不同的聚合方案的推理精度見表4。
表4 聚合方案推理精度
本地聚合器向量中的元素對(duì)應(yīng)于相同的特征,因此,取最大值法對(duì)應(yīng)于所有終端設(shè)備上的每個(gè)類采取最大響應(yīng),并顯示出良好的性能。取平均值法表現(xiàn)的性能比取最大值法較差,這是因?yàn)橐恍┙K端設(shè)備在給定幀中沒有對(duì)象,而平均值法是取終端設(shè)備所有輸出的平均值,這損害了對(duì)象所在終端設(shè)備的強(qiáng)輸出。連接本地信息不會(huì)在多個(gè)設(shè)備上的同一類的輸出之間強(qiáng)制任何關(guān)系,因此串聯(lián)法表現(xiàn)的更差,基于這些結(jié)果,DecDNN框架中采用了取最大值法聚合方案。
實(shí)驗(yàn)分別在本地及不同節(jié)點(diǎn)的環(huán)境下使用本文的最優(yōu)分配算法對(duì)VGG16網(wǎng)絡(luò)模型進(jìn)行評(píng)估。如圖5所示,隨著工作節(jié)點(diǎn)數(shù)量的增加,用于數(shù)據(jù)傳輸?shù)臅r(shí)間也會(huì)增加,但總體執(zhí)行時(shí)間顯著減少。當(dāng)工作節(jié)點(diǎn)數(shù)為5時(shí),整體執(zhí)行時(shí)間已經(jīng)減少到神經(jīng)網(wǎng)絡(luò)本地執(zhí)行時(shí)間的一半,表現(xiàn)出最佳的優(yōu)化效果。
圖5 不同節(jié)點(diǎn)下總體執(zhí)行時(shí)間
為了進(jìn)一步驗(yàn)證DecDNN框架對(duì)不同模型的支持性以及優(yōu)化效果,仿真實(shí)驗(yàn)比較了4個(gè)典型的CNN(AlexNet、VGG19、GoogLeNet和ResNet50)上3個(gè)框架的層完成時(shí)間。還提供了單機(jī)的推理延遲以供比較。使用4個(gè)獨(dú)立的相同配置的Raspberry PI3作為邊緣服務(wù)器。如圖6所示。顯示了DecDNN架構(gòu)的優(yōu)勢(shì)。當(dāng)CNN結(jié)構(gòu)簡(jiǎn)單時(shí)(AlexNet和VGG19),MoDNN的性能優(yōu)于單機(jī)。然而,當(dāng)CNN結(jié)構(gòu)較為復(fù)雜時(shí)(GoogLeNet和ResNet50),MoDNN比單機(jī)執(zhí)行表現(xiàn)更差。相反,DecDNN比單個(gè)機(jī)器、DeepSlicing和MoDNN的性能分別高2.63倍(VGG19)、1.27倍(ResNet50)和2.85倍(ResNet50)。
圖6 不同神經(jīng)網(wǎng)絡(luò)模型在多個(gè)框架的層完成時(shí)間比較
本文深入研究了在具有資源約束的物聯(lián)網(wǎng)邊緣部署DNN所遇到的問題,提出了一種邊緣環(huán)境下DNN分布式協(xié)同推理策略DecDNN。仿真實(shí)驗(yàn)結(jié)果表明,與其它調(diào)度方案相比,該策略具有良好的推理性能,有效降低通信開銷和整體執(zhí)行時(shí)延,有效避免數(shù)據(jù)隱私泄露并且能夠支持多種常見的深度學(xué)習(xí)模型推理。DecDNN策略對(duì)于解決智慧城市、車聯(lián)網(wǎng)等場(chǎng)景下在資源受限的邊緣設(shè)備中部署并執(zhí)行DNN推理任務(wù)的問題具有重要意義,下一步將繼續(xù)深入研究如何將DecDNN應(yīng)用于實(shí)際場(chǎng)景中。