當前位置:
首頁 > 新聞 > 密歇根州立大學NestDNN:動態分配多任務資源移動端深度學習框架

密歇根州立大學NestDNN:動態分配多任務資源移動端深度學習框架

選自dl.acm.org,作者:Biyi Fang、Xiao Zeng、Mi Zhang,機器之心編輯部。


本文介紹了由密歇根州立大學開發的移動端深度學習框架 NestDNN。該框架應用了研究者提出的多容量模型生成方法,可以動態地在多模型並行推斷過程中,通過準確率-資源權衡選擇合適容量的模型;NestDNN 可以最大化所有並行應用程序的性能,並且明顯優於在移動端部署壓縮模型的靜態權衡方案。

論文:NestDNN: Resource-Aware Multi-Tenant On-Device Deep Learning for Continuous Mobile Vision


密歇根州立大學NestDNN:動態分配多任務資源移動端深度學習框架


論文地址:https://www.egr.msu.edu/~mizhang/papers/2018_MobiCom_NestDNN.pdf

摘要:智能手機、無人機、增強現實(AR)頭戴設備等移動視覺系統正在改變我們的生活。這些系統通常需要同時運行多個應用,由於開啟新應用、關閉現有應用和應用優先順序改變等原因,這些系統的可用運行時資源是動態變化的。本論文提出一種新型框架 NestDNN,將運行時資源的動態變化納入考量,生成一種資源感知的多重租賃(multi-tenant)設備端深度學習移動視覺系統。NestDNN 使得每個深度學習模型進行靈活的資源-準確率權衡。在運行時方面,該框架為每個深度學習模型動態地選擇最優資源-準確率權衡,以滿足模型對系統可用運行時資源的需求。採用這種方法,NestDNN 可以高效利用移動視覺系統中的有限資源,最大化所有並行應用程序的性能。我們的實驗表明,與不考慮資源的現有方法相比,NestDNN 的推斷準確率提高了 4.2%,視頻幀處理速率提高了 1 倍,能耗降低 40%。

引言

與雲相比,移動系統受計算資源限制。然而眾所周知,深度學習模型需要大量資源 [35]。為使設備端深度學習成為可能,應用程序開發者常用的技術之一是壓縮深度學習模型以降低其資源需求,但準確率會有所損失 [12, 39]。儘管該技術非常受歡迎,而且已被用於開發最先進的移動深度學習系統 [8, 14, 17, 20, 38],但它有一個重大缺陷:由於應用程序開發者獨立開發自己的應用,壓縮模型的資源-準確率權衡在應用開發階段的靜態資源預算的基礎上就被預先確定了,在應用部署後仍然保持不變。

然而,由於開啟新應用、關閉現有應用和應用優先順序改變等事件,這些系統的可用運行時資源是動態變化的。因此,如果可用運行時資源無法滿足壓縮模型的資源需求,這些同時運行的應用就會互相爭奪資源,導致流視頻的處理幀率較低。另一方面,在有額外的運行時資源時,壓縮模型也無法利用這些額外資源來修復準確率損失。

本文提出了一種新型框架 NestDNN,將運行時資源的動態變化納入考量,生成一種資源感知的多重租賃設備端深度學習移動視覺系統。NestDNN 用靈活的資源-準確率權衡代替了固定的資源-準確率權衡。在運行時方面,該框架為每個深度學習模型動態地選擇最優資源-準確率權衡,以滿足模型對系統可用運行時資源的需求。採用這種方法,NestDNN 可以高效利用移動視覺系統中的有限資源,最大化所有並行應用程序的性能。

挑戰與對策。NestDNN 的設計面臨兩大挑戰。(i)現有方法的局限在於:壓縮模型的資源需求和準確率之間的權衡是固定的。因此,第一大挑戰在於設計一個能讓深度學習模型提供靈活的資源-準確率權衡的方案。一種樸素的方法是在移動系統中安裝所有具備可能資源-準確率權衡的模型變體。然而,由於這些模型變體各自獨立,這種方法無法擴展,在移動系統同時運行多個深度學習模型(每個模型又有多個變體)時不具備可行性。(ii)為每個同時運行的深度學習模型選擇資源-準確率權衡非常關鍵。這是因為不同的應用具有不同的推斷準確率和處理延遲目標。以路況監督無人機為例:一個通過車輛計數來檢測交通擁堵的應用不需要很高的準確率,但要求低延遲;而一個讀取車牌的應用程序需要很高的車牌讀取準確率,但不需要實時響應 [39]。

為應對第一個挑戰,NestDNN 部署了一個新的模型剪枝和復原方案(recovery scheme),將深度學習模型轉換為緊湊的多容量模型(multi-capacity model)。這一多容量模型由一組派生模型組成,每個派生模型提供不同的資源-準確率權衡。與彼此獨立的傳統模型變體不同,容量(即資源需求)較小的派生模型與擁有較大容量的派生模型共享模型參數,使其自身嵌入到較大容量的派生模型中,而無需佔用額外的內存空間。採用這種做法,這種多容量模型可以提供多個資源-準確率權衡,其內存佔用也較為緊湊。

為了應對第二個挑戰,NestDNN 將每個並行應用的每個派生模型的推斷準確率和處理延遲編碼為一個成本函數。在給定所有成本函數的情況下,NestDNN 使用資源感知運行時調度器(resource-aware runtime scheduler)為每個深度學習模型選擇最優資源-準確率權衡,並確定分配給每個模型的最佳運行時資源,以同時最大化整體推斷準確率,最小化所有並行應用程序的總體處理延遲。

貢獻。據我們所知,NestDNN 是第一個支持資源感知的多重租賃設備端深度學習移動視覺系統的框架。它為克服現有方法的局限性以及連續移動視覺中的獨特挑戰提供了新的技術。我們相信,我們的工作是將連續移動視覺的設想變為現實的重要一步 [6, 24, 29]。

實驗結果總結

我們開展了一系列實驗來評估 NestDNN 的性能。為了評估多容量模型的性能,我們在六個移動視覺應用程序上對其進行了評估,這些應用針對移動視覺系統中一些最重要的任務。這些應用程序的開發基於兩種廣泛使用的深度學習模型——VGG Net [33] 和 ResNet [13],以及計算機視覺社區中常用的六個數據集。為了評估資源感知運行時調度器的性能,我們結合了兩種廣泛使用的調度方案,並在三部智能手機上實現了 NestDNN 和六款移動視覺應用程序。我們還實施了現有方法,該方法使用固定的資源-準確率權衡,因此是不考慮資源的。為了比較我們的資源感知方法和不考慮資源的現有方法之間的性能,我們設計了一個基準來模擬不同場景中的運行時應用程序查詢。結果表明:

  • 多容量模型能夠提供嵌套在單個模型中的靈活、優化的資源-準確率權衡。通過參數共享,它顯著減少了模型內存佔用和模型切換開銷。
  • 資源感知運行時調度器在兩種調度方案上都優於不考慮資源的調度器,推斷準確率提高了 4.2 %,視頻幀處理速度提高了 1 倍,能耗降低了 40%。

NestDNN 框架概覽

圖 1 展示了 NestDNN 的架構,由離線階段和在線階段組成。

離線階段包含三個子階段:模型剪枝(model pruning)、模型復原(model recovery)和模型配置(model profiling)。


密歇根州立大學NestDNN:動態分配多任務資源移動端深度學習框架

圖 1:NestDNN 架構示意圖。

在模型剪枝階段,NestDNN 使用當前最佳的三聯響應殘差(Triplet Response Residual,TRR)方法,基於給定深度學習模型(即原版模型)濾波器的重要性對濾波器進行排序,并迭代地對濾波器進行修剪。在每次迭代中,重要性較低的濾波器被裁剪,然後剪枝模型被重新訓練以補償濾波器修剪導致的準確率降低(如果存在的話)。當剪枝模型無法達到用戶設定的最低準確率時,迭代過程結束。最小的剪枝模型被稱為種子模型(seed model)。最終,一個濾波器修剪路徑圖被創建出來,其中路徑圖中的每個佔用是一個帶濾波器修剪記錄的剪枝模型。


密歇根州立大學NestDNN:動態分配多任務資源移動端深度學習框架

圖 2:濾波器剪枝的圖示 [23]。通過修剪濾波器,模型大小和計算成本都有所降低。

在模型復原階段,NestDNN 使用了一種新的模型固化(model freezing)和濾波器增長(filter growing)方法(即 freeze-&-grow),以迭代的方式生成多容量模型。模型復原使用種子模型作為起點。在每一次迭代中,模型固化被首先應用於固化所有濾波器的參數。然後按照濾波器修剪路徑圖的逆向順序,應用濾波器增長將修剪的濾波器加回去,從而生成一個擁有更大容量的派生模型,其準確率通過重新訓練而恢復。通過重複迭代,新的派生模型基於之前的模型而生成。因此,最終的派生模型擁有所有之前模型的容量,因而被命名為多容量模型。


密歇根州立大學NestDNN:動態分配多任務資源移動端深度學習框架

圖 4:模型固化和濾波器增長圖示。

在模型配置階段,給定一個移動端視覺系統的規範,NestDNN 為每個多容量模型生成一個配置文件,包括推斷準確率、內存佔用,以及每個派生模型的處理延遲。


密歇根州立大學NestDNN:動態分配多任務資源移動端深度學習框架

圖 5:多容量模型的模型切換(模型升級與模型降級)圖示。

最後,在在線階段,資源感知運行時調度器持續監控改變運行時資源的事件。一旦檢測到這種事件,調度器會檢查所有並行應用程序的配置文件,為每個應用程序選擇最佳派生模型,並為每個選擇的派生模型分配最佳數量的運行時資源,以同時最大化整體推斷準確率,最小化所有應用程序的總體處理延遲。

在不損失泛化性能的情況下,我們將 CIFAR-10、GTSRB 和 Adience-Gender 隨機分配給 VGG-16,並將 ImageNet50、ImageNet-100 和 Places-32 分配給 ResNet-50,以分別創建被標記為 VC(即在 CIFAR-10 數據集上訓練的 VGG-16)、RI-50、RI-100、VS、VG 和 RP 的六個移動視覺應用程序。我們嚴格遵循上述每個數據集提供的協議來訓練和測試所有原版 DNN 模型和 NestDNN 生成的所有派生模型。

表 2 對這些數據集、DNN 模型和移動視覺應用程序進行了總結。


密歇根州立大學NestDNN:動態分配多任務資源移動端深度學習框架

表 2:本研究使用的數據集、DNN 模型和移動視覺應用概覽。

多容量模型的性能

優化的資源-準確率權衡

如圖 6 所示,我們從結果中得到兩個關鍵結論。一,在這六個應用的不同大小的模型中,派生模型的準確率一直高於基線模型。派生模型的平均準確率比基線模型高 4.98%。這表明我們每個容量的派生模型都能夠在給定內存條件下獲得當前最優的推斷準確率。二,規模較小的派生模型性能優於規模較大的派生模型。兩個最小的派生模型的平均準確率比對應的基線模型高出 6.68%,而兩個最大的派生模型的平均準確率比對應的基線模型高 3.72%。這是因為我們的 TRR 方法能夠保存重要的濾波器,並剪掉不那麼重要的濾波器。儘管容量小,但規模較小的派生模型從重要的濾波器中受益很多,而對應的基線模型無法從中獲益。


密歇根州立大學NestDNN:動態分配多任務資源移動端深度學習框架

圖 6:派生模型和基線模型的 Top-1 準確率 vs. 模型大小對比。

圖 7 展示了六個應用的五個派生模型和對應原版模型的計算成本對比(指標:GFLOPs,即 GigaFLOPs)。如圖所示,所有派生模型的 GFLOPs 都比對應原版模型低。這表明我們的濾波器剪枝方法能夠有效減少這六個應用的計算成本,且該方法可泛化至在不同數據集上訓練的不同深度學習模型。


密歇根州立大學NestDNN:動態分配多任務資源移動端深度學習框架

圖 7:派生模型和原版模型的計算成本對比。

內存佔用減少

表 3 列舉了六個移動視覺應用的對比結果。顯然,每個應用的多容量模型的規模小於對應的累積模型(accumulated model)規模。此外,模型尺寸較大的深度學習模型從參數共享中受益更多。例如,VC 是六個應用中模型規模最大的。在參數共享方面,它的內存佔用減少了 241.5 MB。最後,如果我們考慮同時運行這六個應用,則多容量模型內存佔用減少 587.4 MB,在內存佔用減少方面受益最大。


密歇根州立大學NestDNN:動態分配多任務資源移動端深度學習框架

表 3:多容量模型的內存佔用減少狀況。

資源感知調度器(Resource-Aware Scheduler)的性能

推斷準確率和幀率的改進

圖 10(a) 展示了在 MinTotalCost 調度方案下,NestDNN 和基線模型的運行時性能對比。黃色圓圈代表基線模型的運行時性能。每個藍色方塊代表在公式(2)定義的損失函數中使用特定 α 進行調度時所獲得的運行時性能。

圖 10(b) 展示了在 MinMaxCost 調度方案下,NestDNN 和基線模型的運行時性能對比。當 NestDNN 和基線模型的平均 top-1 準確率一樣時,NestDNN 的平均幀率速度是基線模型的 1.9 倍。當 NestDNN 和基線模型的平均幀率一致時,NestDNN 的平均準確率比基線模型高 4.2%。在「knee」處,NestDNN 相對基線模型達到了 1.5 倍的平均幀率加速和 2.1% 的平均準確率提升。


密歇根州立大學NestDNN:動態分配多任務資源移動端深度學習框架

圖 10:在 (a) MinTotalCost 和 (b) MinMaxCost 機制下,NestDNN (資源感知) 和現有方法(不考慮資源)的運行時對比。

能耗減少

除了推斷準確率和幀率方面的改進以外,NestDNN 的能耗也比較低。圖 11(a) 展示了在 MinTotalCost 調度方案下,在「knee」處,NestDNN 和基線模型的能耗對比。在不同的推斷數上,NestDNN 的平均能耗相比基線模型減少了 40%。類似地,圖 11(b) 展示了在 MinTotalCost 調度方案下的能耗對比。NestDNN 的平均能耗相比基線模型減少了約 33%。


密歇根州立大學NestDNN:動態分配多任務資源移動端深度學習框架

圖 11:在 (a) MinTotalCost 和 (b) MinMaxCost 機制下,NestDNN(資源感知)和現有方法(不考慮資源)的能耗對比。

原文鏈接:https://dl.acm.org/citation.cfm?id=3241559

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

資源 | 領英開源TonY:構建在Hadoop YARN上的TensorFlow框架
教程|用深度學習DIY自動化監控系統

TAG:機器之心 |