孫 勝 李敘晶 劉 敏 楊 博 過曉冰
1(中國科學(xué)院計(jì)算技術(shù)研究所 北京 100190) 2(中國科學(xué)院大學(xué) 北京 100049) 3(聯(lián)想研究院 北京 100085)
近年來物聯(lián)網(wǎng)(Internet of things, IoT)設(shè)備越來越普遍,根據(jù)Gartner數(shù)據(jù)顯示,到2021年IoT設(shè)備數(shù)量預(yù)計(jì)將達(dá)到250億[1].目前深度神經(jīng)網(wǎng)絡(luò)(deep neural network, DNN)發(fā)展迅速,已經(jīng)廣泛應(yīng)用于各種各樣的智能任務(wù)(如計(jì)算機(jī)視覺、視頻識別和機(jī)器翻譯),IoT設(shè)備期望能夠執(zhí)行DNN推斷任務(wù)以實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)處理和分析.例如在智能家居場景中,攝像機(jī)可以執(zhí)行基于DNN模型的視頻識別和語音翻譯任務(wù).然而,由于IoT設(shè)備資源受限,而且DNN任務(wù)需要大量的計(jì)算資源和內(nèi)存占用,因此,IoT設(shè)備難以本地單獨(dú)執(zhí)行DNN推斷任務(wù).為了克服上述挑戰(zhàn),文獻(xiàn)[2]提出在單個(gè)IoT設(shè)備和云服務(wù)器之間拆分DNN模型以實(shí)現(xiàn)任務(wù)推斷加速.然而,受限于傳輸數(shù)據(jù)量較大以及網(wǎng)絡(luò)通信延遲不可預(yù)測等因素,云協(xié)助執(zhí)行DNN任務(wù)推斷的方法難以保障數(shù)據(jù)處理效率,而且會增加對云服務(wù)的依賴性.
聚合多個(gè)IoT設(shè)備的計(jì)算能力以共同執(zhí)行DNN任務(wù)是一種有效的解決方式.這種方式的優(yōu)勢在于減少對云服務(wù)的依賴,保護(hù)IoT設(shè)備的隱私性,并且能夠?qū)崿F(xiàn)分布式協(xié)同計(jì)算.文獻(xiàn)[3]首次利用資源受限的多個(gè)IoT設(shè)備協(xié)作執(zhí)行語音和視頻識別等DNN任務(wù).文獻(xiàn)[4]提出DeepThings框架進(jìn)行卷積層劃分以減少整體執(zhí)行延遲和內(nèi)存占用.然而,現(xiàn)有研究工作僅考慮IoT設(shè)備同構(gòu)情況,而且無法實(shí)現(xiàn)實(shí)時(shí)動態(tài)DNN任務(wù)拆分.如何在動態(tài)異構(gòu)場景中進(jìn)行DNN任務(wù)的高效拆分和協(xié)作推斷是亟待解決的關(guān)鍵問題.
上述研究問題面臨兩大重要挑戰(zhàn).首先,不同參數(shù)配置(層類型、層數(shù)量、卷積核大小、輸入特征規(guī)模等)和異構(gòu)設(shè)備能力導(dǎo)致顯著的推斷延遲差異.按需執(zhí)行DNN推斷任務(wù)以獲得每種系統(tǒng)設(shè)置和任務(wù)拆分策略下的推斷延遲是不切實(shí)際的,因此需要提前預(yù)測當(dāng)前系統(tǒng)狀態(tài)和拆分協(xié)作策略所產(chǎn)生的推斷延遲.現(xiàn)有DNN延遲預(yù)測模型建立在單層預(yù)測的基礎(chǔ)上,通過單層預(yù)測延遲加和得到多層預(yù)測延遲.但是文獻(xiàn)[5]通過實(shí)驗(yàn)發(fā)現(xiàn)單獨(dú)執(zhí)行每層的延遲加和與整體執(zhí)行延遲的差值隨著卷積層數(shù)量的增加越來越明顯,現(xiàn)有的DNN延遲預(yù)測模型無法在可接受誤差范圍內(nèi)進(jìn)行推斷延遲的有效評估和預(yù)測.而且現(xiàn)有延遲預(yù)測模型僅考慮特定參數(shù)配置,并未考慮設(shè)備能力對DNN推斷延遲所產(chǎn)生的影響.因此,研究多種參數(shù)配置和異構(gòu)設(shè)備情況下的精準(zhǔn)多層延遲預(yù)測模型具有重要意義.
DNN任務(wù)拆分在分散計(jì)算量的同時(shí)會產(chǎn)生通信開銷.雖然增加協(xié)作執(zhí)行DNN任務(wù)的設(shè)備數(shù)量會降低單個(gè)設(shè)備的計(jì)算延遲,但是同時(shí)會導(dǎo)致設(shè)備間的通信延遲增加.因此,協(xié)作拆分策略需要高效權(quán)衡計(jì)算和通信延遲.由于DNN結(jié)構(gòu)、網(wǎng)絡(luò)狀態(tài)以及設(shè)備能力是動態(tài)變化且高度異構(gòu)的,DNN任務(wù)拆分和協(xié)作推斷策略需要依據(jù)當(dāng)前系統(tǒng)狀態(tài)進(jìn)行動態(tài)調(diào)整和高效決策,確定執(zhí)行任務(wù)的設(shè)備數(shù)量,選擇DNN任務(wù)的拆分位置以及為每個(gè)設(shè)備分配的計(jì)算任務(wù),以獲得最優(yōu)DNN推斷加速且充分利用IoT設(shè)備的計(jì)算能力[6].針對上述問題,傳統(tǒng)優(yōu)化方法計(jì)算復(fù)雜度高、求解時(shí)間長,難以應(yīng)用.基于數(shù)據(jù)驅(qū)動的人工智能方法可以通過數(shù)據(jù)處理分析,經(jīng)過訓(xùn)練和學(xué)習(xí)建立自動化決策模型,當(dāng)系統(tǒng)狀態(tài)發(fā)生變化時(shí)直接根據(jù)學(xué)習(xí)的決策模型制定決策,從而實(shí)現(xiàn)自適應(yīng)、智能和實(shí)時(shí)決策.本文采用基于數(shù)據(jù)驅(qū)動的學(xué)習(xí)算法能夠在設(shè)備能力、網(wǎng)絡(luò)狀態(tài)以及DNN任務(wù)多樣化的情況下制定實(shí)時(shí)智能的DNN任務(wù)拆分和協(xié)作推斷策略.
本文提出一種新穎的IoT設(shè)備協(xié)作執(zhí)行DNN任務(wù)推斷(IoT-collaborative DNN inference, IoT-CDI)框架,依據(jù)DNN結(jié)構(gòu)、設(shè)備能力以及網(wǎng)絡(luò)狀態(tài)等多種因素,自適應(yīng)調(diào)整DNN拆分和任務(wù)分配策略,能夠在資源受限的異構(gòu)IoT設(shè)備間實(shí)現(xiàn)DNN協(xié)作推斷,充分利用IoT設(shè)備的計(jì)算能力以最小化DNN任務(wù)的推斷時(shí)延.本文的主要貢獻(xiàn)包括3個(gè)方面:
1) 細(xì)粒度刻畫DNN模型層類型、參數(shù)配置以及設(shè)備能力等多種特征,挖掘特征與執(zhí)行時(shí)延之間的復(fù)雜映射關(guān)系,生成可解釋的多層延遲預(yù)測模型,通過大量實(shí)驗(yàn)評估多種常見的預(yù)測模型進(jìn)而獲得適合多層延遲預(yù)測的精準(zhǔn)模型.
2) 將原始DNN拆分和協(xié)作推斷問題轉(zhuǎn)換為最短路徑發(fā)現(xiàn)問題,并將該問題歸約為NP難問題;提出基于進(jìn)化增強(qiáng)學(xué)習(xí)(ERL)的自適應(yīng)DNN拆分和協(xié)作推斷算法,在異構(gòu)設(shè)備間實(shí)現(xiàn)實(shí)時(shí)智能的DNN推斷加速.
3) 利用真實(shí)實(shí)驗(yàn)進(jìn)行驗(yàn)證.選取5種常見的DNN模型和多種類型的樹莓派設(shè)備驗(yàn)證提出的IoT-CDI框架的有效性,實(shí)驗(yàn)結(jié)果表明:IoT-CDI能夠顯著提升推斷速度,并且優(yōu)于基準(zhǔn)算法.
受限于IoT設(shè)備內(nèi)存限制和計(jì)算資源約束,現(xiàn)有工作主要致力于研究IoT設(shè)備和云服務(wù)器間的DNN任務(wù)協(xié)作推斷策略.文獻(xiàn)[2]首次在神經(jīng)網(wǎng)絡(luò)層粒度上制定移動設(shè)備和云服務(wù)器之間的細(xì)粒度DNN拆分算法以降低推斷延遲和能量消耗.文獻(xiàn)[5]針對3種典型的DNN結(jié)構(gòu),將最優(yōu)DNN任務(wù)拆分問題轉(zhuǎn)換為圖模型最短路徑問題,并利用整數(shù)線性規(guī)劃方法進(jìn)行求解.文獻(xiàn)[7]提出基于樹形回歸模型的DNN推斷延遲預(yù)測算法.文獻(xiàn)[8]作者設(shè)計(jì)靈活高效的兩步剪枝算法,依據(jù)層級數(shù)據(jù)傳輸和計(jì)算延遲、可容忍精度損失、無線信道以及設(shè)備計(jì)算能力等多種因素確定修剪模型和最優(yōu)DNN拆分位置,在降低計(jì)算和通信傳輸負(fù)載的同時(shí)滿足DNN任務(wù)的推斷精度需求.文獻(xiàn)[9]設(shè)計(jì)自適應(yīng)DNN拆分算法,能夠在動態(tài)時(shí)變的網(wǎng)絡(luò)負(fù)載狀態(tài)下找到最優(yōu)拆分策略.
盡管IoT設(shè)備與云服務(wù)器協(xié)作推斷可以利用云服務(wù)器的計(jì)算能力降低推斷延遲,但是仍然存在高度依賴云服務(wù)器、不可擴(kuò)展推斷、通信延遲較長以及設(shè)備隱私保護(hù)等問題.
由于云協(xié)助DNN任務(wù)推斷面臨上述問題,一種新興研究趨勢是將資源受限的IoT設(shè)備的計(jì)算能力聚合,多個(gè)IoT設(shè)備協(xié)作執(zhí)行DNN推斷任務(wù).文獻(xiàn)[10]首次利用多個(gè)IoT設(shè)備協(xié)同執(zhí)行DNN推斷,通過減少單個(gè)設(shè)備的計(jì)算成本和內(nèi)存占用實(shí)現(xiàn)任務(wù)推斷加速.文獻(xiàn)[3]考慮模型和數(shù)據(jù)并行性、內(nèi)存使用量、通信開銷以及實(shí)時(shí)數(shù)據(jù)處理性能等多種因素,在IoT設(shè)備間提出一種高效分布式的DNN協(xié)作推斷方法,并利用視頻識別和動作識別模型進(jìn)行性能驗(yàn)證.文獻(xiàn)[4]作者采用卷積層融合分塊劃分(fused tile partitioning, FTP)和高效任務(wù)調(diào)度機(jī)制,動態(tài)平衡多設(shè)備間的計(jì)算負(fù)載,進(jìn)而有效提升設(shè)備間協(xié)作推斷速度.然而現(xiàn)有研究工作并沒有考慮IoT設(shè)備能力異構(gòu)以及環(huán)境狀態(tài)動態(tài)變化的情況,而且現(xiàn)有求解方法難以在環(huán)境配置多樣化和問題求解計(jì)算復(fù)雜度高的情況下實(shí)現(xiàn)實(shí)時(shí)自適應(yīng)決策.值得注意的是,上述工作與利用權(quán)重剪枝[11-12]、量化[13-14]和低精度推理[15-16]等降低DNN模型計(jì)算開銷的壓縮與加速方法是正交的,可以同時(shí)利用這2種技術(shù)實(shí)現(xiàn)DNN推斷加速.
本節(jié)首先介紹DNN層類型和特性,然后根據(jù)真實(shí)實(shí)驗(yàn)分析引出本文的研究動機(jī).
DNN任務(wù)包含多種層類型,例如卷積層(conv)、全連接層(fc)、池化層、激活層以及Softmax層等.其中,卷積層和全連接層的計(jì)算花銷和內(nèi)存占用最多.文獻(xiàn)[10]研究了3種常見DNN模型中不同層類型的內(nèi)存使用和計(jì)算時(shí)間情況.實(shí)驗(yàn)結(jié)果表明卷積層占據(jù)總計(jì)算時(shí)間的86.5%~97.8%;全連接層內(nèi)存占用最大,占內(nèi)存開銷的87%以上.因此,本文僅關(guān)注DNN模型中的卷積層和全連接層.
1) 模型預(yù)測.目前研究工作僅考慮不同層類型在不同配置參數(shù)情況下的單層延遲預(yù)測模型[7].然而,文獻(xiàn)[5]表明通過單層延遲累加方法評估多層延遲存在明顯預(yù)測誤差.我們進(jìn)行真實(shí)實(shí)驗(yàn)對多層延遲預(yù)測問題進(jìn)行全面分析,揭示單獨(dú)執(zhí)行每層的延遲加和與整體執(zhí)行多層的實(shí)際延遲之間的真實(shí)關(guān)系.研究具有不同通道類型數(shù)量的DNN模型,隨著不同通道類型數(shù)量逐漸增加,DNN模型的相似度逐漸降低.如圖1所示,橫坐標(biāo)表示不同通道類型的數(shù)量,縱坐標(biāo)表示整體執(zhí)行延遲與單獨(dú)執(zhí)行延遲加和相比降低的比例.在卷積層通道類型相同的情況下,整體執(zhí)行延遲與單獨(dú)執(zhí)行的延遲加和相比降低了50%,若不同通道類型數(shù)量較多則意味著卷積層相似度較低,單獨(dú)執(zhí)行的延遲加和近似等于整體執(zhí)行延遲.本實(shí)驗(yàn)為制定多層延遲預(yù)測模型提供說服力,用于更好地指導(dǎo)DNN任務(wù)拆分和協(xié)作推斷.
Fig. 1 Latency difference of grouped and separated execution圖1 整體執(zhí)行和單獨(dú)執(zhí)行的推斷時(shí)延差異性
Fig. 2 Inference latency of heterogeneous devices for multiple DNN models圖2 多個(gè)DNN模型在異構(gòu)設(shè)備上的推斷延遲
2) 設(shè)備異構(gòu)性.首先測量5種常見的DNN模型在3種型號樹莓派(樹莓派2B、樹莓派3B和樹莓派3B+)上執(zhí)行的推斷延遲.在每種型號樹莓派設(shè)備上分別執(zhí)行5種DNN模型,實(shí)驗(yàn)結(jié)果如圖2所示,柱狀圖表示推斷時(shí)延,折線圖表示不同設(shè)備執(zhí)行時(shí)延的比值,例如AlexNet模型在樹莓派2B上執(zhí)行所需的推斷延遲為1.66 s,而在樹莓派3B上執(zhí)行推斷延遲降低為1.06 s,僅為樹莓派2B推斷延遲的64%,由此可知,設(shè)備能力差異性會顯著影響DNN任務(wù)的推斷延遲.而且隨著DNN模型計(jì)算量的增加,不同設(shè)備執(zhí)行DNN任務(wù)產(chǎn)生的推斷時(shí)延差異也越來越明顯.VGG16模型在樹莓派2B和3B上執(zhí)行的推斷延遲分別為11.68 s和5.24 s,執(zhí)行速度提升約2.23倍.本實(shí)驗(yàn)表明,DNN拆分應(yīng)該考慮設(shè)備的異構(gòu)能力,充分利用設(shè)備的計(jì)算資源以實(shí)現(xiàn)近似最優(yōu)推斷加速.為此,需要設(shè)計(jì)精準(zhǔn)模型以分析設(shè)備異構(gòu)能力對DNN推斷延遲產(chǎn)生的影響.
Fig. 3 An illustration of IoT-CDI圖3 IoT-CDI場景示意圖
給定可用設(shè)備數(shù)量N和DNN子任務(wù)數(shù)量(層數(shù))K,目標(biāo)是找到DNN任務(wù)的拆分位置和這些設(shè)備的最優(yōu)任務(wù)分配.對于每個(gè)子任務(wù)k,找到一個(gè)IoT設(shè)備devi來執(zhí)行它,每個(gè)IoT設(shè)備devi執(zhí)行完分配的計(jì)算任務(wù)(DNN任務(wù)的某些層)后將產(chǎn)生的輸出數(shù)據(jù)傳輸給執(zhí)行下一層任務(wù)的設(shè)備,直到DNN任務(wù)推斷完成.研究目標(biāo)是最小化DNN任務(wù)的整體執(zhí)行時(shí)延.如果所有子任務(wù)都在一個(gè)IoT設(shè)備上執(zhí)行,單個(gè)IoT設(shè)備資源受限會導(dǎo)致計(jì)算延遲較長.然而如果任務(wù)分配給多個(gè)IoT設(shè)備,通信延遲明顯增加.因此,需要合理拆分和分配DNN任務(wù),有效權(quán)衡通信和計(jì)算延遲,實(shí)現(xiàn)DNN任務(wù)整體推斷延遲最小化.
Fig. 4 Graph illustration of IoT-CDI圖4 IoT-CDI圖模型示意圖
IoT-CDI問題可以轉(zhuǎn)換為從第1層1st到最后一層Kth的最優(yōu)路徑問題,問題表示為:
(1)
(2)
(3)
lijk∈{0,1}.
(4)
式(1)表示如果第k+1層分配給IoT設(shè)備devj,需要選擇從IoT設(shè)備devj出發(fā)的一條邊.式(2)表示每個(gè)設(shè)備的內(nèi)存限制.式(3)確保每一層僅由一個(gè)設(shè)備執(zhí)行.
此外,DNN推斷通常由多個(gè)輸入數(shù)據(jù)流組成,因此優(yōu)化目標(biāo)需要是面向數(shù)據(jù)流的,一旦確定DNN拆分策略,需要根據(jù)策略對每一幀按序處理,我們引入流水線處理概念如圖5所示.具體來說,對于2個(gè)連續(xù)的數(shù)據(jù)幀,IoT設(shè)備devi首先完成數(shù)據(jù)幀1分配的任務(wù),當(dāng)數(shù)據(jù)幀2到達(dá)后IoT設(shè)備devi將立刻執(zhí)行數(shù)據(jù)幀2的任務(wù).很顯然,流水線處理方式的瓶頸在于處理單幀時(shí)間最長的設(shè)備即Tijk的最大值.我們通過實(shí)驗(yàn)驗(yàn)證這一事實(shí).將VGG16模型拆分為3部分,分別在不同設(shè)備上執(zhí)行,每個(gè)設(shè)備執(zhí)行一幀的時(shí)間分別為2.374 s,7.768 s和1.456 s,執(zhí)行單幀任務(wù)時(shí)3個(gè)設(shè)備推斷時(shí)延的最大值為7.768 s,實(shí)驗(yàn)測試100幀的總執(zhí)行延遲大約等于100×7.768 s.為了使DNN拆分和任務(wù)分配策略能夠支持流水線處理,將延遲計(jì)算公式修改為每個(gè)IoT設(shè)備單獨(dú)執(zhí)行延遲的最大值.本文提出的多設(shè)備協(xié)作執(zhí)行DNN任務(wù)的方式聚合了多個(gè)設(shè)備的計(jì)算能力,充分利用并發(fā)處理能力,從而可以有效提高總體吞吐量,通過在多個(gè)IoT設(shè)備間實(shí)時(shí)自適應(yīng)拆分DNN任務(wù),實(shí)現(xiàn)最小化處理完所有數(shù)據(jù)幀的總推斷延遲的目標(biāo).
Fig. 5 An example of pipelined processing for the DNN model圖5 DNN模型流水線處理示意圖
首先證明IoT-CDI問題是NP難的,利用已知NP難問題——廣義分配問題(general assignment problem, GAP)[17-18]進(jìn)行證明.GAP假定有M個(gè)物品和N個(gè)箱子,將物品i投入到箱子j中,獲得收益為Mi,j.目標(biāo)是把每一件物品裝進(jìn)一個(gè)適當(dāng)?shù)南渥永?,在每個(gè)箱子成本限制約束下,使得總體收益最大化.通過參數(shù)映射和轉(zhuǎn)換,IoT-CDI問題歸約為GAP問題,從而證明該問題為NP難問題.
由于IoT-CDI問題為NP難問題,難以在多項(xiàng)式時(shí)間內(nèi)獲得最優(yōu)DNN拆分和協(xié)作推斷策略,因此,精準(zhǔn)算法例如枚舉法并不適用于求解該問題.此外,由于DNN模型結(jié)構(gòu)多樣性、設(shè)備能力異構(gòu)且通信狀態(tài)動態(tài)變化,需要實(shí)時(shí)調(diào)整協(xié)作推斷策略.為此,我們采用基于數(shù)據(jù)驅(qū)動的人工智能方法進(jìn)行求解,能夠基于環(huán)境信息進(jìn)行實(shí)時(shí)自動化決策.增強(qiáng)學(xué)習(xí)(reinforcement learning, RL)是一種有效的數(shù)據(jù)驅(qū)動方法,通過與環(huán)境交互獲得獎賞的方式不斷學(xué)習(xí)和指導(dǎo)行為以獲得最大收益.本文利用增強(qiáng)學(xué)習(xí)算法確定最優(yōu)DNN拆分策略,在異構(gòu)設(shè)備間進(jìn)行協(xié)作推斷,實(shí)現(xiàn)推斷加速.
在本節(jié)中,首先通過具體參數(shù)配置和多種典型的預(yù)測模型詳細(xì)闡述和分析所提出的精準(zhǔn)多層延遲預(yù)測模型.在此基礎(chǔ)上,利用進(jìn)化增強(qiáng)學(xué)習(xí)算法智能自適應(yīng)確定異構(gòu)設(shè)備間的協(xié)作推斷策略.
卷積層包含輸入特征維度(輸入高度in_height,輸入寬度in_width)、卷積核大小(核高度kernel_height,核寬度kernel_width)、通道規(guī)模(輸入通道in_channel,輸出通道out_channel)、步長stride和padding.全連接層參數(shù)配置包括輸入特征維度in_dim和輸出特征維度out_dim.參數(shù)配置范圍如表1所示.通過隨機(jī)組合生成各層的可配置參數(shù),并測量每種參數(shù)組合的執(zhí)行延遲Y.類似于文獻(xiàn)[7],根據(jù)上述模型參數(shù)確定可解釋參數(shù)向量X,包括浮點(diǎn)數(shù)操作(FLOPs)、內(nèi)存占用規(guī)模和參數(shù)規(guī)模.可解釋參數(shù)向量X的具體定義為:X=(FLOPs,mem,param_size),其中mem=mem_in+mem_out+mem_inter,mem_in表示輸入數(shù)據(jù)的內(nèi)存占用規(guī)模,mem_out表示輸出數(shù)據(jù)的內(nèi)存占用規(guī)模,mem_inter表示臨時(shí)數(shù)據(jù)的內(nèi)存占用規(guī)模,內(nèi)存和參數(shù)特性的詳細(xì)定義可以參考文獻(xiàn)[7].CPU操作和內(nèi)存操作在一定程度上影響程序的執(zhí)行時(shí)間,DNN模型中CPU操作和內(nèi)存操作體現(xiàn)在浮點(diǎn)數(shù)操作、內(nèi)存占用規(guī)模和參數(shù)規(guī)模上.通過各種參數(shù)配置組合獲得大量[X,Y]數(shù)據(jù)對用于延遲模型訓(xùn)練和預(yù)測.
Table 1 The Scope of Parameter Configuration for conv and fc Layers
本節(jié)我們對卷積層和全連接層的多層延遲預(yù)測模型進(jìn)行全面研究.多層延遲預(yù)測模型的可解釋參數(shù)向量X包括層數(shù)、浮點(diǎn)數(shù)操作量總和、內(nèi)存占用規(guī)模總和和參數(shù)規(guī)??偤?為進(jìn)行多層預(yù)測分析,首先生成任意層數(shù)的DNN模型,生成特征參數(shù)的隨機(jī)組合,在具有不同計(jì)算能力的IoT設(shè)備上執(zhí)行獲得任意層數(shù)不同參數(shù)配置情況下的執(zhí)行時(shí)延Y.獲得[X,Y]數(shù)據(jù)對后,建立設(shè)備能力、任務(wù)特性和執(zhí)行延遲的關(guān)聯(lián)模型,研究多種常見的預(yù)測模型用于擬合多層輸入數(shù)據(jù)和執(zhí)行時(shí)延,挖掘多種特征參數(shù)與執(zhí)行時(shí)延間的復(fù)雜映射關(guān)系.使用決定系數(shù)R2、平均絕對誤差(mean squared error,MAE)和平均絕對百分比誤差(mean absolute percentage error,MAPE)作為預(yù)測模型準(zhǔn)確性的評價(jià)指標(biāo).分別研究線性回歸(linear regression, LR)模型、RANSAC回歸(RANdom SAmple Consensus regression, RANSAC)模型、核嶺回歸(kernel ridge regression, KRR)模型、k最近鄰KNN(k-nearest neighbor)模型、決策樹(decision tree, DT)模型、支持向量機(jī)(support vector machine, SVM)模型、隨機(jī)森林(random forest, RF)模型、Ada Boost ADA模型、梯度提升回歸樹(gradient boosted regression trees, GBRT)模型和人工神經(jīng)網(wǎng)絡(luò)(artificial neural network, ANN)模型.
與卷積層相比,全連接層執(zhí)行時(shí)間較短、參數(shù)較少且層數(shù)不多.例如,AlexNet模型僅包含3個(gè)全連接層,ResNet模型僅包含一個(gè)全連接層.我們通過實(shí)驗(yàn)證明全連接層整體執(zhí)行延遲與單獨(dú)執(zhí)行延遲加和的誤差低于2%.因此,我們僅研究全連接層在不同設(shè)備上執(zhí)行的單層預(yù)測模型,進(jìn)行不同預(yù)測模型對全連接層的預(yù)測性能比較,從表2可以看出多種預(yù)測模型均可以很好地預(yù)測全連接層的執(zhí)行時(shí)延.
Table 2 Performance Comparison of Various Single-Layer Prediction Models for Fully-Connected Layer on Raspberry Pi 3B
對于卷積層,由于輸入特征參數(shù)類型較多、配置范圍較廣、執(zhí)行層數(shù)較多且特征參數(shù)間耦合關(guān)系復(fù)雜,因此延遲預(yù)測相對比較復(fù)雜.增加ANN預(yù)測模型,由于神經(jīng)網(wǎng)絡(luò)可以有效獲取非線性關(guān)系和具有強(qiáng)泛化擬合能力,而且能夠在不需要假設(shè)特征變量與結(jié)果之間的映射關(guān)系的情況下可以獲得近似實(shí)際模型.以樹莓派3B為例,表3針對卷積層進(jìn)行不同多層延遲預(yù)測模型的性能比較.從表3中可以看出,RF,GBRT和ANN這3種預(yù)測模型的性能優(yōu)于其他模型.例如與RANSAC模型和ADA模型相比,ANN模型MAPE指標(biāo)分別降低43%和81%.第6節(jié)實(shí)驗(yàn)將進(jìn)一步驗(yàn)證這3種多層預(yù)測模型的準(zhǔn)確性.
Table 3 Performance Comparison of Various Multi-Layer Prediction Models for Convolutional Layer on Raspberry Pi 3B
表3 針對卷積層的多層預(yù)測模型在樹莓派3B上的性能比較
1) 增強(qiáng)學(xué)習(xí)相關(guān)知識
深度增強(qiáng)學(xué)習(xí)(deep reinforcement learning, DRL)[19]被提出用于解決維度詛咒問題.DRL利用深度神經(jīng)網(wǎng)絡(luò)近似表示Q函數(shù)Q(st,at)≈Q(st,at|θ),其中θ表示神經(jīng)網(wǎng)絡(luò)的模型參數(shù).DQN(deep Q-network)是一種典型的DRL方法[20].DQN將經(jīng)驗(yàn)元組存儲在經(jīng)驗(yàn)池中,每次從經(jīng)驗(yàn)池中隨機(jī)選取一批次樣本進(jìn)行訓(xùn)練,然后更新參數(shù)θ以最小化損失函數(shù).
然而,基于反向傳播的DQN方法無法進(jìn)行長期優(yōu)化,難以在獎勵稀疏(采取一系列行為后才能獲得收益)的情況下學(xué)習(xí)到最優(yōu)行為.此外,面對高維動作和狀態(tài)空間,高效探索仍然是一個(gè)亟待解決的關(guān)鍵挑戰(zhàn),這種情況下存在收斂困難的挑戰(zhàn).總結(jié)而言,DQN這種傳統(tǒng)DRL算法面臨著稀疏獎勵、缺乏有效探索以及收斂困難等重要挑戰(zhàn).因此不能直接應(yīng)用傳統(tǒng)的DRL算法(例如DQN)解決IoT-CDI 問題,因?yàn)樵搯栴}行為分解為連續(xù)子行為,存在稀疏獎勵以及行為狀態(tài)空間巨大等問題,收斂十分困難.為此,提出進(jìn)化ERL算法[21]用于在異構(gòu)設(shè)備間實(shí)現(xiàn)DNN拆分和協(xié)作推斷.
2) 基于進(jìn)化增強(qiáng)學(xué)習(xí)的DNN任務(wù)拆分策略
從DRL角度,用于確定DNN拆分策略的設(shè)備被建模為智能體Agent.為了減少狀態(tài)和行為空間維度,將DNN拆分任務(wù)分解為層級序列子任務(wù),每一層當(dāng)作一個(gè)子任務(wù),在每次決策時(shí)只需要為每一層模型選擇合適的執(zhí)行設(shè)備,通過依次添加各層行為獲得整體行為集合,根據(jù)行為集合進(jìn)行DNN任務(wù)拆分和協(xié)作推斷,DNN任務(wù)執(zhí)行時(shí)延作為收益,用于衡量行為集合的性能表現(xiàn).首先定義該問題的狀態(tài)、行為和回報(bào)等基本元素.
① 狀態(tài).在每個(gè)時(shí)刻t,狀態(tài)st包含5個(gè)部分:
ⅰft表示當(dāng)前層數(shù);
ⅱcomt表示當(dāng)前網(wǎng)絡(luò)狀態(tài),即通信速率;
ⅲct={c1,t,c2,t,…,cN,t}表示每個(gè)IoT設(shè)備的能力;
ⅳlt={l1,t,l2,t,…,lN,t}表示每個(gè)IoT設(shè)備完成預(yù)先分配的子任務(wù)所需的累積延遲;
ⅴet={e1,t,e2,t,…,eN,t}表示當(dāng)前子任務(wù)分配到每個(gè)IoT設(shè)備執(zhí)行所產(chǎn)生的推斷延遲,從以上描述可知st=(ft,comt,ct,lt,et),狀態(tài)維度為3N+2.
② 行為.at表示從N個(gè)IoT設(shè)備中選擇一個(gè)設(shè)備用于執(zhí)行當(dāng)前子任務(wù).
③ 收益.如果當(dāng)前子任務(wù)是最后一個(gè),則收益為DNN任務(wù)的整體推斷時(shí)延(針對數(shù)據(jù)流情況,收益為每個(gè)IoT設(shè)備執(zhí)行各自任務(wù)所需時(shí)延的最大值),否則收益為零.
基于反向傳播的DRL算法難以獲得該問題的最優(yōu)策略,因?yàn)樵搯栴}面臨稀疏獎勵和困難探索等挑戰(zhàn).與傳統(tǒng)深度增強(qiáng)學(xué)習(xí)DRL方法相比,ERL融合自然進(jìn)化策略中基于種群的方法,使得多樣化探索成為可能,并且利用適應(yīng)度指標(biāo)學(xué)習(xí)和生成更優(yōu)后代,從而可以有效地探索多種策略,并且不斷朝著高收益方向進(jìn)化[22-23].
ERL過程如下:將進(jìn)化應(yīng)用于候選樣本種群中,通過增加隨機(jī)偏差不斷產(chǎn)生新后代.執(zhí)行選擇操作,適應(yīng)度值較高的后代有更多機(jī)會保留和產(chǎn)生新的后代.適應(yīng)度值越高則意味著性能越優(yōu),通過選擇操作后生成的下一代會提供更優(yōu)性能.在本文中,每個(gè)樣本則代表一組神經(jīng)網(wǎng)絡(luò)的參數(shù),添加在子代上的隨機(jī)偏差表示對神經(jīng)網(wǎng)絡(luò)權(quán)重進(jìn)行隨機(jī)擾動.
整體算法流程如算法1所示.
在算法1中,開始時(shí)對參數(shù)進(jìn)行初始化.然后描述如何在訓(xùn)練時(shí)更新神經(jīng)網(wǎng)絡(luò),具體來說,父代神經(jīng)網(wǎng)絡(luò)通過擾動神經(jīng)網(wǎng)絡(luò)的參數(shù)生成C個(gè)子代神經(jīng)網(wǎng)絡(luò),并且在每次迭代過程中評估每個(gè)子代獲得的收益值即適應(yīng)度值.如果一個(gè)子代具有更高的適應(yīng)度值,那么以更高概率選擇這個(gè)子代并且生成后代.通過每個(gè)子代獲得收益值與所有子代平均收益值的差值歸一化計(jì)算每個(gè)子代增益值g.依據(jù)C個(gè)子代增益值g更新父代神經(jīng)網(wǎng)絡(luò)參數(shù)(行③~⑨).
IoT-CDI框架整體流程示意圖如圖6所示,包含離線訓(xùn)練和在線執(zhí)行2個(gè)階段,離線階段生成多層延遲預(yù)測模型和完成ERL算法的訓(xùn)練過程,在線階段基于系統(tǒng)狀態(tài)動態(tài)確定拆分位置和任務(wù)分配,多個(gè)設(shè)備協(xié)作共同執(zhí)行DNN任務(wù).不同DNN任務(wù)的拓?fù)浣Y(jié)構(gòu)不同,每層的計(jì)算量和生成的中間數(shù)據(jù)傳輸量均有差異,網(wǎng)絡(luò)狀態(tài)變化直接影響數(shù)據(jù)傳輸時(shí)延,設(shè)備能力異構(gòu)顯著影響計(jì)算時(shí)延,因此需要根據(jù)這些動態(tài)因素,自動化調(diào)整DNN任務(wù)拆分和分配策略以有效降低推斷時(shí)延.IoT-CDI框架能夠根據(jù)當(dāng)前系統(tǒng)狀態(tài),包括通信狀態(tài)、設(shè)備能力以及DNN任務(wù)需求,確定DNN模型的拆分位置以及每個(gè)設(shè)備的任務(wù)分配,在異構(gòu)設(shè)備間實(shí)現(xiàn)分布式、協(xié)作DNN任務(wù)推斷.利用一個(gè)主設(shè)備(IoT設(shè)備或者網(wǎng)關(guān))管理和控制整個(gè)流程.
Fig. 6 The overview of IoT-CDI framework圖6 IoT-CDI框架整體流程示意圖
該階段主要進(jìn)行多層延遲預(yù)測模型訓(xùn)練和ERL拆分策略訓(xùn)練.針對卷積層和全連接層2種層類型,刻畫任意多層不同參數(shù)配置情況下的延遲預(yù)測模型,允許在不執(zhí)行DNN任務(wù)的情況下準(zhǔn)確評估推斷任務(wù)的實(shí)際執(zhí)行時(shí)延.由于不同層類型、層參數(shù)配置以及層數(shù)會產(chǎn)生明顯時(shí)延差異,因此構(gòu)建不同層類型的預(yù)測模型(卷積層和全連接層2種),改變每種層類型的層數(shù)和每層參數(shù)配置,利用這些參數(shù)確定計(jì)算規(guī)模和數(shù)據(jù)傳輸規(guī)模,并且分析參數(shù)配置相同時(shí)不同設(shè)備能力對執(zhí)行延遲的影響.通過實(shí)驗(yàn)獲得參數(shù)配置、設(shè)備能力和執(zhí)行延遲的真實(shí)測量數(shù)據(jù),基于數(shù)據(jù)進(jìn)行預(yù)測模型訓(xùn)練.分析多種常見的預(yù)測模型,涉及回歸、k最近鄰、決策樹、組合和人工神經(jīng)網(wǎng)絡(luò)模型等多種類型模型.通過實(shí)驗(yàn)發(fā)現(xiàn)全連接層參數(shù)種類較少,預(yù)測相對簡單,很多模型均可獲得準(zhǔn)確預(yù)測性能;而卷積層參數(shù)類型較多且配置復(fù)雜,因此具有強(qiáng)泛化和非線性擬合能力的預(yù)測模型性能比較準(zhǔn)確.值得注意的是,通過將模型參數(shù)映射為計(jì)算規(guī)模和傳輸規(guī)模,并分析不同設(shè)備能力對執(zhí)行延遲的影響,提出的預(yù)測模型是DNN模型無關(guān)的且設(shè)備能力相關(guān)的,既能夠適應(yīng)于異構(gòu)設(shè)備,而且當(dāng)DNN模型結(jié)構(gòu)和參數(shù)改變時(shí)也能依據(jù)預(yù)測模型快速獲得精準(zhǔn)的執(zhí)行時(shí)延,避免帶來額外執(zhí)行開銷.
基于生成的多層延遲預(yù)測模型,訓(xùn)練ERL算法以便在DNN模型、網(wǎng)絡(luò)狀態(tài)以及設(shè)備能力動態(tài)變化的情況下獲得近似最優(yōu)DNN任務(wù)拆分和協(xié)作推斷策略.ERL模型狀態(tài)信息包括模型參數(shù)、層數(shù)、通信狀態(tài)以及設(shè)備能力,行為策略是為確定DNN模型每一層的執(zhí)行設(shè)備,收益為執(zhí)行DNN模型所產(chǎn)生的推斷時(shí)延(包括計(jì)算時(shí)延和通信時(shí)延).訓(xùn)練20 000次達(dá)到收斂,將訓(xùn)練完成后的ERL模型存儲在主設(shè)備上,后續(xù)基于輸入的系統(tǒng)狀態(tài)確定最佳拆分策略.
該階段包括3個(gè)步驟:1)系統(tǒng)分析器system profiler獲取當(dāng)前系統(tǒng)狀態(tài),包括DNN推斷任務(wù)、當(dāng)前通信狀態(tài)以及設(shè)備能力等;2)將這些信息反饋給決策器decision maker,決策器利用離線訓(xùn)練完成的多層延遲預(yù)測模型評估每種候選決策的推斷延遲,并且利用同樣在離線階段訓(xùn)練完成的ERL拆分模型獲得最優(yōu)拆分策略,在異構(gòu)多設(shè)備間實(shí)現(xiàn)DNN推斷加速和設(shè)備資源的充分利用;3)每個(gè)設(shè)備依據(jù)拆分策略各自執(zhí)行分配任務(wù).
IoT設(shè)備需要通過相互通信傳輸命令和數(shù)據(jù),為了有效識別設(shè)備,每個(gè)IoT設(shè)備需要注冊一個(gè)IP地址.在知道DNN任務(wù)拆分和分配策略后,維護(hù)每個(gè)設(shè)備自身的IP處理表,該處理表記錄自身分配到的推斷任務(wù)以及自身任務(wù)的前驅(qū)和后繼節(jié)點(diǎn).主設(shè)備維護(hù)整體IP處理表,該表記錄每個(gè)設(shè)備的執(zhí)行任務(wù).一旦系統(tǒng)狀態(tài)發(fā)生變化,例如通信速率變化或者新設(shè)備加入或退出,將會觸發(fā)拆分策略調(diào)整,主節(jié)點(diǎn)將更新記錄.然后主節(jié)點(diǎn)向所有設(shè)備分發(fā)IP處理表的更新信息,每個(gè)設(shè)備依據(jù)更新信息修改自己的IP處理表.
DNN推斷過程依據(jù)IP處理表執(zhí)行.一個(gè)IoT設(shè)備將從前驅(qū)設(shè)備接收計(jì)算所需的輸入數(shù)據(jù),在完成分配任務(wù)后將生成的輸出結(jié)果發(fā)送給后繼設(shè)備.為實(shí)現(xiàn)上述過程,我們采用遠(yuǎn)程調(diào)用框架(remote procedure call, RPC)來實(shí)現(xiàn)設(shè)備間交互,能夠在2個(gè)設(shè)備間進(jìn)行通信和數(shù)據(jù)傳輸.以VGG模型為例,假定設(shè)備1執(zhí)行VGG模型的1~5層,其后繼設(shè)備為設(shè)備2,設(shè)備2執(zhí)行VGG模型的6~10層,設(shè)備1完成分配的層數(shù)后將生成的輸出結(jié)果發(fā)送給后繼設(shè)備2,2個(gè)設(shè)備按照策略共同執(zhí)行DNN任務(wù).當(dāng)環(huán)境狀態(tài)發(fā)生變化后,依據(jù)ERL算法調(diào)整拆分和分配策略,例如設(shè)備1執(zhí)行1~7層,設(shè)備3執(zhí)行8~10層,需要更新每個(gè)設(shè)備的IP處理表,修改分配任務(wù)以及前驅(qū)后繼節(jié)點(diǎn).
我們利用真實(shí)實(shí)驗(yàn)驗(yàn)證提出的IoT-CDI框架.首先證明提出的多層延遲預(yù)測模型是精準(zhǔn)的;然后,與基準(zhǔn)算法相比,發(fā)現(xiàn)ERL方法能夠顯著降低推斷延遲,實(shí)現(xiàn)推斷加速.此外,我們還評估通信狀態(tài)和設(shè)備數(shù)量等因素對實(shí)驗(yàn)性能的影響.
1) 設(shè)備類型.使用3種型號的樹莓派設(shè)備作為異構(gòu)IoT設(shè)備,分別是樹莓派2B、樹莓派3B和樹莓派3B+,使用Raspbian GNU/Linux10 buster操作系統(tǒng).不同型號的樹莓派具有不同計(jì)算能力,提供差異化的推斷性能.不同型號樹莓派的具體規(guī)格見表4所示.為了在樹莓派上執(zhí)行DNN任務(wù),我們安裝Python3.7.3,Keras 2.2.4和Tensorflow 1.13.1等基礎(chǔ)軟件和平臺.
2) DNN模型.使用5個(gè)常見的DNN模型,分別是AlextNet,DarkNet,NiN,ResNet18和VGG16.VGG16代表長DNN模型(層數(shù)較多),AlexNet代表短DNN模型(層數(shù)較少).AlexNet模型和ResNet18模型計(jì)算量較小,VGG16模型和NiN模型計(jì)算量較大,但VGG16模型通信量較小,NiN模型通信量較大.
3) 通信方式.利用IoT設(shè)備間的平均傳輸速率來模擬不同的無線網(wǎng)絡(luò).實(shí)驗(yàn)設(shè)置3種網(wǎng)絡(luò)環(huán)境,3G網(wǎng)絡(luò),WiFi和4G網(wǎng)絡(luò),傳輸速率分別為1.1 Mbps,18.88 Mbps和5.85 Mbps.
Table 4 Raspberry Pi Specification表4 樹莓派規(guī)格
4) 基準(zhǔn)算法.考慮4種對比算法.設(shè)備執(zhí)行(device-execution, DE)算法是指僅在生成任務(wù)的本地設(shè)備上執(zhí)行DNN任務(wù).最強(qiáng)執(zhí)行(maximum-execution, ME)算法是指將DNN任務(wù)分配給計(jì)算能力最強(qiáng)的設(shè)備.均衡執(zhí)行(equal-execution, EE)算法是指將DNN任務(wù)平均分配給所有可用設(shè)備.經(jīng)典最短路徑Dijkstra算法得到DNN模型從第一層到最后一層的最短執(zhí)行時(shí)延,利用單層預(yù)測模型確定每條邊權(quán)值,記做SE(short-execution).使用DE算法作為基準(zhǔn).本文提出的算法記作ERL.
5) 性能指標(biāo).使用推斷延遲加速(inference latency speedup)來評估不同算法的性能.延遲加速表示為與DE算法相比推斷延遲降低的倍數(shù).每個(gè)實(shí)驗(yàn)重復(fù)200次并計(jì)算200組結(jié)果的平均值使結(jié)果更加準(zhǔn)確.
延遲預(yù)測數(shù)據(jù)集:針對卷積層和全連接層2種層類型,分別設(shè)置不同參數(shù)范圍,層參數(shù)和參數(shù)范圍如表1所示,通過隨機(jī)組合生成各種可配置參數(shù)集合,將配置參數(shù)轉(zhuǎn)換為浮點(diǎn)數(shù)操作、內(nèi)存占用規(guī)模和參數(shù)規(guī)模等相關(guān)可解釋變量,獲取3種型號的樹莓派設(shè)備在不同參數(shù)設(shè)置情況下的執(zhí)行時(shí)延,得到卷積層和全連接層的參數(shù)設(shè)置和執(zhí)行時(shí)延的真實(shí)測量數(shù)據(jù)集.針對多層延遲預(yù)測,按照實(shí)際DNN模型規(guī)律生成多層參數(shù)配置,層數(shù)范圍是1~40,將每層參數(shù)配置轉(zhuǎn)換為可解釋變量,逐層加和獲得累積的可解釋變量,并通過樹莓派執(zhí)行得到多層推斷時(shí)延.基于真實(shí)測量得到的多層參數(shù)配置和推斷時(shí)延的數(shù)據(jù)集,訓(xùn)練多種常見的預(yù)測模型,分別對卷積層和全連接層進(jìn)行預(yù)測,不同預(yù)測模型的預(yù)測性能如表2和表3所示.
Fig. 8 Each layer’s latency and prediction accuracy of AlexNet圖8 AlexNet模型每一層的延遲及預(yù)測準(zhǔn)確率
下面驗(yàn)證卷積層多層延遲預(yù)測模型的準(zhǔn)確性.以VGG16和AlexNet為例,分別如圖7和圖8所示.其中柱狀圖表示實(shí)驗(yàn)測量的真實(shí)執(zhí)行時(shí)延,例如當(dāng)橫坐標(biāo)為7時(shí)表示執(zhí)行VGG16模型前7層所需時(shí)延為6.08 s;折線圖表示不同預(yù)測模型的預(yù)測性能,以平均絕對百分比誤差MAPE為評價(jià)指標(biāo).從圖7,8中可以看出,RF,GBRT和ANN這3種預(yù)測模型能夠準(zhǔn)確預(yù)測任意層數(shù)的推斷延遲,3種模型任意層預(yù)測結(jié)果的平均百分比誤差低于4%.能夠精準(zhǔn)預(yù)測的主要原因首先在于精準(zhǔn)刻畫能夠影響推斷延遲的模型參數(shù),并將這些參數(shù)映射為計(jì)算規(guī)模和通信規(guī)模這種可解釋變量.上述3種預(yù)測模型具有良好的層次擬合和泛化能力,能夠有效獲取特征變量和延遲之間復(fù)雜非線性關(guān)系.此外,進(jìn)一步考慮設(shè)備能力對推斷延遲產(chǎn)生的影響,獲取每種類型設(shè)備參數(shù)配置和執(zhí)行時(shí)延的真實(shí)數(shù)據(jù)集,并對每種設(shè)備進(jìn)行預(yù)測模型訓(xùn)練,從而能夠準(zhǔn)確預(yù)測各種設(shè)備在不同參數(shù)設(shè)置情況下的推斷時(shí)延.
Fig. 7 Each layer’s latency and prediction accuracy of VGG16圖7 VGG16模型每一層的延遲及預(yù)測準(zhǔn)確率
1) DNN拆分.圖9給出3種典型DNN模型的不同拆分策略.從圖9中可以看出,DNN拆分策略隨著DNN模型和設(shè)備數(shù)量的變化而不同.VGG16模型計(jì)算量大,數(shù)據(jù)傳輸量小,因此它傾向于利用更多的IoT設(shè)備來獲得更優(yōu)性能.NiN模型計(jì)算量大,數(shù)據(jù)傳輸量也很大,過多的通信開銷會導(dǎo)致性能下降.因此,NiN模型傾向于采取較少設(shè)備協(xié)作以降低通信開銷.ResNet18模型計(jì)算量小,需要考慮協(xié)作推斷降低的計(jì)算開銷能否抵消增加的通信開銷,因此ResNet18模型的拆分策略需要權(quán)衡計(jì)算增益和通信開銷.由此可以得出結(jié)論,需要根據(jù)DNN模型特性和環(huán)境狀態(tài)自適應(yīng)調(diào)整DNN拆分策略.
Fig. 9 Illustration of partitioning strategy for three DNN models圖9 3種DNN模型的拆分策略
Fig. 10 Measured latency speedup of five algorithms for five DNN models圖10 5種算法針對5種DNN模型的延遲加速情況
2) 延遲加速.比較5種算法針對不同DNN模型的延遲加速情況,設(shè)備數(shù)量設(shè)定為3,通信方式為WiFi.從圖10中可以看出,與DE,ME,EE和SE算法相比,我們提出的ERL算法有不同程度的提升.隨著計(jì)算需求增加,性能提升越明顯,例如VGG16模型使用ERL算法延遲加速大約是DE算法的2倍.主要是因?yàn)镮oT設(shè)備資源受限,計(jì)算量較大時(shí)單獨(dú)執(zhí)行性能較差,DNN任務(wù)拆分的需求越強(qiáng)烈.然而,當(dāng)數(shù)據(jù)傳輸量較大時(shí),DNN任務(wù)拆分產(chǎn)生較高的通信時(shí)延會嚴(yán)重降低協(xié)作執(zhí)行的優(yōu)勢,因此延遲加速在NiN模型中并不明顯.
由于單個(gè)IoT設(shè)備無法承受沉重的計(jì)算負(fù)擔(dān),因此DE和ME算法性能都不理想.雖然EE算法可以通過協(xié)作推斷獲益,但是平均決策并不是最優(yōu)拆分策略.由于單層預(yù)測不準(zhǔn)確的原因,SE算法性能并不理想.本文提出的ERL算法能夠有效權(quán)衡計(jì)算和通信開銷,充分利用了備的異構(gòu)能力,可以實(shí)現(xiàn)更優(yōu)的DNN推斷加速.
1) 通信狀態(tài)影響.本實(shí)驗(yàn)評估通信狀態(tài)對延遲加速的影響.分別在3G,4G和WiFi這3種通信條件下以VGG16模型為例對5種算法進(jìn)行性能比較,如圖11所示.值得注意的是,當(dāng)通信速率提高時(shí),ERL算法與基準(zhǔn)算法相比性能提升更明顯.當(dāng)使用3 G網(wǎng)絡(luò)時(shí),通信條件較差,協(xié)作執(zhí)行產(chǎn)生的計(jì)算增益難以抵消數(shù)據(jù)傳輸產(chǎn)生的通信花銷.因此,NiN模型EE算法性能低于DE算法.當(dāng)使用4G網(wǎng)絡(luò)時(shí),ERL算法延遲加速是DE算法的2.07倍.當(dāng)使用WiFi進(jìn)行通信時(shí),延遲加速提升到2.36倍.主要原因在于當(dāng)通信條件較好時(shí),DNN拆分所需的數(shù)據(jù)傳輸延遲降低,因此協(xié)作執(zhí)行優(yōu)勢更明顯.
Fig. 11 Latency speedup under different networks for five algorithms圖11 不同網(wǎng)絡(luò)條件下5種算法的延遲加速情況
為了進(jìn)一步驗(yàn)證所提出的ERL算法能夠適應(yīng)于各種通信狀態(tài),設(shè)置通信速率從1 Mbps到20 Mbps,以VGG16模型為例比較5種算法的延遲加速性能.通過實(shí)驗(yàn)發(fā)現(xiàn),ERL算法性能在任意通信速率時(shí)均為最優(yōu),推斷延遲降低2倍以上.從圖12可以看出,隨著通信速率提升,延遲加速越來越明顯,這是由于通信速率提升能夠有效降低拆分所帶來的通信花銷,從而降低整體執(zhí)行時(shí)延.DE,ME和EE算法無法根據(jù)網(wǎng)絡(luò)狀態(tài)調(diào)整拆分策略,因此隨著通信速率增加,延遲加速性能提升不明顯.而ERL算法和SE算法能夠根據(jù)當(dāng)前網(wǎng)絡(luò)狀態(tài)有效權(quán)衡通信和計(jì)算開銷,從而能夠隨著通信速率增加實(shí)現(xiàn)顯著推斷加速,有效降低DNN任務(wù)的推斷時(shí)延.
Fig. 12 Latency speedup under different communication rate for five algorithms圖12 不同通信速率時(shí)5種算法的延遲加速情況
2) 設(shè)備數(shù)量影響.使用不同數(shù)量的IoT設(shè)備評估5種算法的性能.以NiN模型為例,從圖13可以看出,本文提出的ERL算法在推斷延遲加速方面性能最優(yōu).當(dāng)設(shè)備數(shù)量分別為2,3,4時(shí),ERL算法延遲加速分別是EE算法的1.81倍、1.98倍和5.28倍.由于NiN模型通信花銷不可忽視,EE算法并不能靈活調(diào)整拆分策略,難以有效權(quán)衡計(jì)算和通信花銷.而本文提出的ERL算法能夠智能確定拆分策略以獲得近似最優(yōu)性能.
1) 設(shè)備異構(gòu)性.實(shí)驗(yàn)使用不同型號樹莓派設(shè)備來體現(xiàn)設(shè)備異構(gòu)性,3種型號樹莓派的性能差異如表4所示,分別在3種型號樹莓派上運(yùn)行AlexNet以及DarkNet等5種DNN模型,實(shí)驗(yàn)測量數(shù)據(jù)如圖2所示.通過實(shí)驗(yàn)可以看出3種設(shè)備存在明顯性能差異,能夠體現(xiàn)設(shè)備異構(gòu)性.后續(xù)將考慮樹莓派、手機(jī)以及穿戴設(shè)備等多種不同種類設(shè)備,分析不同類型設(shè)備的性能差異,對設(shè)備能力進(jìn)行細(xì)粒度建模,在此基礎(chǔ)上研究多種類型設(shè)備間的協(xié)作推斷問題.
2) 設(shè)備數(shù)量.單個(gè)IoT設(shè)備能力不足,多個(gè)設(shè)備協(xié)作執(zhí)行可以有效降低推斷時(shí)延,然而增加協(xié)作設(shè)備數(shù)量在降低計(jì)算時(shí)延的同時(shí)會增加通信時(shí)延開銷.為防止通信瓶頸,協(xié)作執(zhí)行DNN模型的設(shè)備數(shù)量不會太多,通過圖9可以發(fā)現(xiàn),對于數(shù)據(jù)傳輸量較大的DNN模型(例如NiN模型)即使可用設(shè)備較多時(shí)也傾向于使用少數(shù)設(shè)備.即使數(shù)據(jù)傳輸量較少且計(jì)算量較大的DNN模型(例如VGG16模型),協(xié)作執(zhí)行設(shè)備數(shù)量也不會太多.未來將進(jìn)一步研究不同DNN模型所需協(xié)作設(shè)備的最優(yōu)值,在設(shè)備數(shù)量充足的情況下能夠根據(jù)DNN任務(wù)需求自適應(yīng)調(diào)整協(xié)作設(shè)備數(shù)量以實(shí)現(xiàn)最優(yōu)推斷加速.
3) IoT-CDI框架的實(shí)用性.IoT-CDI框架主要解決2個(gè)問題:①針對現(xiàn)有單層預(yù)測方法誤差不可忽視的問題,設(shè)計(jì)細(xì)粒度多層預(yù)測方法,能夠精準(zhǔn)評估任意層DNN任務(wù)的推斷時(shí)延.②針對設(shè)備能力、DNN任務(wù)特性以及網(wǎng)絡(luò)狀態(tài)動態(tài)變化且異構(gòu)的情況,采用基于增強(qiáng)學(xué)習(xí)的智能化決策算法,為克服稀疏回報(bào)以及收斂困難等問題,使用進(jìn)化增強(qiáng)學(xué)習(xí)快速獲得拆分策略.IoT-CDI框架使用基于數(shù)據(jù)驅(qū)動的方式實(shí)現(xiàn)精準(zhǔn)預(yù)測分析和實(shí)時(shí)智能決策,然而相比于傳統(tǒng)方法,存在系統(tǒng)開銷較明顯(需要存儲模型)、擴(kuò)展性以及在線調(diào)整等問題,未來工作將著眼于該框架的實(shí)用性,解決實(shí)際部署存在的問題以提高可行性.
本文提出一種新穎的IoT設(shè)備協(xié)作執(zhí)行DNN任務(wù)的IoT-CDI框架,根據(jù)DNN任務(wù)需求、設(shè)備能力以及網(wǎng)絡(luò)狀態(tài)等多種因素,在異構(gòu)IoT設(shè)備間實(shí)現(xiàn)實(shí)時(shí)自適應(yīng)的DNN任務(wù)協(xié)作推斷.具體地,提出不同層類型、參數(shù)配置以及設(shè)備能力情況下的多層延遲預(yù)測模型,能夠準(zhǔn)確預(yù)測不同拆分情況下DNN任務(wù)的推斷時(shí)延.此外,提出基于進(jìn)化增強(qiáng)學(xué)習(xí)的智能DNN任務(wù)拆分和協(xié)作推斷算法,能夠在設(shè)備能力、網(wǎng)絡(luò)狀態(tài)以及任務(wù)需求異構(gòu)且動態(tài)變化的情況下獲得近似最優(yōu)策略.實(shí)驗(yàn)結(jié)果表明:該算法能夠有效權(quán)衡通信延遲和計(jì)算延遲,充分利用設(shè)備計(jì)算能力,顯著降低DNN推斷時(shí)延.