論文

Edge Intelligence: On-Demand Deep Learning Model Co-Inference with Device-Edge Synergy 邊緣智慧:裝置-邊緣協同進行按需深度學習模型聯合推理

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,如圖。

邊緣智慧:Edgent

模型精簡

模型分割後,雖然雲/邊緣伺服器分擔了很多計算,但是執行在本地移動裝置的部分網路依然受限,所以Edgent還應用了模型精簡。模型精簡透過在模型設定多個退出點(exit points),以滿足應用程式的預設延遲。可以在DNN淺層的退出點輸出模型推斷結果,減少模型的執行時間,但是可能降低準確度。以AlexNet為例,在原有的一個退出點外增設四個退出點。這種做法借鑑了BranchyNet,並且做了兩點改進:大幅增加退出點數量;退出結構用非線性的卷積層替代線性的二分類器;退出機制略有差別(BranchyNet從淺層執行到深層,每經過一個退出點,判斷預測的置信度是否超過閾值,超過就輸出;Edgent先從深層遍歷到淺層,計算模型執行到每個退出點的時間,在滿足時間限制的前提下,儘量從靠後的退出點輸出)。

邊緣智慧:Edgent

問題描述

給定預設延遲的需求,如何聯合最佳化模型分割和模型精簡,以最大限度地提高模型推理的準確性。(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結構的神經網路模型;線上最佳化階段得到分割點與退出點;聯合推斷階段根據分割點和退出點,聯合推斷。

邊緣智慧:Edgent

Layer Latency Prediction

Edgent需要預測每層網路的延遲。為簡化預測過程,Edgent轉為預測每種網路層的延遲,並且根據實驗,概括出兩個影響延遲的因素,並得到線性迴歸模型預測延遲。各種網路層(如卷積層、池化層、Relu等)的延遲與該層各引數(輸入資料尺寸、輸出引數尺寸、卷積核引數等)和模型載入時間有關。預測延遲的線性迴歸模型如圖。

邊緣智慧:Edgent

Joint optimization on DNN Partition and DNN Right-Sizing

最佳化階段,需要從移動裝置獲得預設延遲。隨後需要根據EPPPS演算法(Exit Point and Partition Point Search Algorithm,退出點和分割點搜尋演算法)得到退出點和分割點。該演算法是真的暴力,按照從網路深層的退出點到淺層退出點順序遍歷,透過預測每層延遲,判斷每個退出點之前是否存在分割點p,使得整個網路的執行時間滿足要求。

邊緣智慧:Edgent

附錄: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

多個分支結構有多組輸出,採用聯合損失函式:

邊緣智慧:Edgent

​是一個引數,調出來的。訓練期間,需要記錄每個輸出點的結果。

Fast Inference with BranchyNet

對於每個退出點,得到該退出點的預測值,即包含每個類別機率的矩陣​。帶入下式得到​(熵),比較entropy與閾值​的大小,判斷是否退出。

邊緣智慧:Edgent

超引數

BranchyNet包含兩個超參,​和​。這些引數有以下影響:

正則化 在訓練過程中,給予較早的分支更多權重,是一種正則化方法,可以提高模型準確率。給予較早的分支更多權重,鼓勵網路在淺層就學習更多有區分度的特徵資訊,同時允許具有高置信度的預測分支提前輸出結果並退出。

執行時間與準確率 超參​的選擇取決於任務對延遲或準確度的側重,是折中。

退出點位置 處理複雜資料集的模型,第一個退出點靠後;簡單模型第一個退出點靠前。沒啥意義。