邊緣場景下DNN模型高效切分與放置策略研究
近年來,隨著邊緣設備與邊緣應用的爆發式增加,近邊端的智能數據處理需求急劇增加。然而,將資源需求較低的人工智能算法由云端遷移到邊端任存在許多挑戰:1)智能算法的資源需求與邊緣設備受限于資源之間的矛盾;2)服務質量與隱私保護之間的矛盾;3)智能任務需求多樣與邊緣設備能力單一之間的矛盾。傳統的云-邊協同的處理模式給網絡傳輸帶來巨大的壓力,且已不能滿足邊緣端對計算實時性的要求。因此對DNN模型進行有效切分,利用邊緣與邊緣之間協同計算來共同承擔大規模DNN的訓練與推理計算任務成為了重要的研究內容。
此外,出于對數據隱私保護的考慮,在醫療、金融等領域,當多個實體的原始數據不能直接共享時,如何實現分布式的神經網絡訓練。FL是一種解決方案[1],通過節點間更新加載模型參數實現對全局模型的訓練。另一種解決方案是對DNN模型進行切分,實體間保留DNN模型的不同部分,通過在多個實體間傳遞模型中間層梯度的形式來代替原數據的共享[2],從而既保護了原數據的隱私性,又完成全局DNN模型的訓練。
基于推理的模型切分
先前的工作表明,基于DNN的智能應用如語音或圖像查詢需要比基于文本的輸入數據多幾個數量級的處理。普遍認為,傳統移動設備無法以合理的延遲和能耗支持如此大的計算量。因此,網絡服務提供商用于智能應用的現狀方法是將所有計算托管在后臺高端云服務器上。從用戶移動設備生成的查詢被發送到云端進行處理。但是使用這種方法,大量數據(例如,圖像、視頻和音頻)通過無線網絡上傳到服務器,導致高延遲和能源成本[3]。然而基于移動硬件的性能和能效的不斷提升,越來越多的機器學習應用從云端推向移動設備。因此如何充分利用云端資源和移動硬件資源執行基于DNN的應用顯得尤為重要。
我們知道DNN被組織成一個有向圖,其中每個節點都是一個神經元,圖的邊是每個神經元之間的連接,相同功能的多個神經元被定義成一個層。因此我們以層級為單位對圖像處理應用(AlexNet)進行分層切分測試,測試在不同分層情況下,云服務器與移動設備分別執行分層后AlexNet的不同部分時所表現出的執行延遲和能源消耗,如圖1所示,星號表明了最優分層點的位置。


圖1 不同分層時AlexNet執行延遲和能源消耗
實驗證明了不同的分層切分方案會帶來不同的執行效果,并且存在最佳切分點使得整個模型執行的延遲更低,能耗更少。DNN模型的最佳劃分點取決于DNN的拓撲結構,這體現在每層的計算和數據大小變化上。此外,動態因素(如無線網絡狀態和數據中心負載)會影響最佳分區點,即使對于相同的DNN架構也是如此。因此需要一種自動系統來智能地選擇最佳點來劃分DNN,以針對端到端延遲或移動設備能耗進行優化。而系統中最關鍵的一點就是實現在不執行DNN模型推理任務的情況下,預測DNN模型不同層的執行延遲如何。
對于每種層類型,各層配置之間的延遲差異很大。因此,為了構建每種層類型的預測模型,需要改變層的可配置參數,并測量了每種配置的延遲。使用不同的profile對同類型層的不同延遲建立回歸模型[4],結果包含FC層的回歸模型、Conv層的回歸模型、Pool層的回歸模型、Activation層回歸模型等。進一步使用這些回歸模型預測DNN每一層的執行延遲,從而確定最優模型切分點。
另一種方案是考慮到Server端的資源競爭問題,進一步加入Server端的GPU信息(GPU核、內存使用情況、GPU溫度等)[5],通過Random Forest訓練層級預測模型。在進行模型切分階段,使用最短路徑方案找到最優模型切分點的位置[6],如圖2。

圖2 基于最短路徑的模型切分
按層級粒度對模型進行切分時,有一個重要問題被忽略掉:層與層之間的優化操作[7]。由于層級間優化操作的存在,使得DNN整體執行時間的延遲不完全等于每一層執行時間延遲的總和。此外由于底層硬件的差異(CPU、GPU和VPU)、驅動的差異以及推理平臺的差異(例如TFLite、OpenVINO等),層級間的優化操作也存在諸多不同。進一步考慮到很多平臺并非開源,也就無從得知優化操作的具體實現如何。因此另一種方案不再基于層級粒度對DNN模型執行時間進行預測,而是嘗試以相對粗粒度的方式Kernel描述模型執行時間,如圖3。通過Test Cases測試不同平臺、不同硬件的Fusion rules,進一步根據Fusion rules 劃分模型的Kernel。以Kernel為單位的好處在于屏蔽掉了層級間的優化操作,因此即便我們不知道具體的優化操作如何,我們也能更加精確地訓練Random Forest。

圖3 基于kernel的模型預測系統
二
基于訓練的模型切分
除了使用模型切分對推理任務的執行時間進行優化之外,模型切分也用于模型訓練時對數據隱私保護方面。深度神經網絡的訓練是數據密集性的,需要從多個實體收集大規模的數據集。深度神經網絡通常包含數百萬個參數,并且需要巨大的計算能力來進行訓練,這使得單個數據數據庫很難訓練它們[8]。考慮到醫療、金融等領域匿名化數據共享相關的隱私和道德問題,雖然許多這樣的數據實體在開發新的深度學習算法方面有既得利益,但也有義務保持用戶數據的私密性。因此提出具有多個數據源和一個主節點的架構訓練神經網絡的方法來解決這些問題。
如圖4中Slave是數據源節點,Master是超級主節點。為了保持原始數據的私有性,Slave節點之間以及Slave與Master之間不共享各自的原數據[9]。我們的目標是得到優化后的模型W*= [ W* C, W* S ],我們將模型切分成兩部分,W = [ W C, W S ],其中Slave節點訓練神經網絡時僅訓練前幾層網絡 W C,而后幾層網絡 W C由Master節點訓練,當Slave 1與Master節點完成訓練后,進行Slave 2節點與Master節點的訓練,依次訓練直到Slave 6節點也完成訓練,最后將完整的訓練模型共享。通過這種方式在數據源之間以及數據源與主節點之間傳遞的是梯度值和層級間的張量,從而有效避免了原數據的共享。

圖4 全局梯度的模型切分訓練
進一步探討訓練過程使用模型切分策略時,帶來的一個額外問題是通信開銷。由于全局梯度的使用使得模型訓練過程中需要不斷傳遞梯度信息和張量,為了解決模型切分過程中的通信開銷的問題,Dong-Jun Han[10]等人提出了新的方法local-loss-based training。在 W C后增加auxiliary network,auxiliary network的作用是對client端的 W C部分求局部損失函數。
三
總結展望
本文主要討論了目前關于DNN模型切分的工作。DNN模型切分包含推理階段和訓練階段兩種不同的方式。推理階段進行模型切分的目的主要是為了預測設備上或服務器上模型每一層的執行時間,進而可以根據層的執行時間實現機器學習應用的協同執行,從而減少總的執行延遲并降低移動終端設備中能源的消耗。然而目前推理階段模型切分存在時間預測的精確度的問題,該問題的挑戰在于模型執行過程中硬件設備、應用平臺的優化操作是一種黑盒狀態,我們無法獲知這些優化操作包含哪些,又是以怎樣的形式發生的。因此接下來的工作在于如何避免優化操作對時間預測產生的的影響。
在訓練階段中的模型切分除了需要解決通信開銷的問題以外,還存在訓練時層級時間預測問題。例如在模型壓縮過程中,壓縮性能的好壞通過FLOPs或推理時間來判斷,但如果可以以層級粒度實現準確預測模型訓練時間,那么就可以更好對模型壓縮的性能進行有效評測。
文獻引用:
[1] McMahan, B., Moore, E., Ramage, D., Hampson, S., and y Arcas, B. A. Communication-efficient learning of deepnetworks from decentralized data. In Artificial Intelligence and Statistics, pp. 1273–1282, 2017.
[2] Thapa, C., Chamikara, M. A. P ., and Camtepe, S. Splitfed: When federated learning meets split learning. arXiv preprint arXiv: 2004. 12088, 2020.
[3] C. Hu, W. Bao, D. Wang, and F. Liu, “Dynamic adaptive DNN surgery for inference acceleration on the edge,” in IEEE INFOCOM 2019 IEEE Conference on Computer Communications, 2019, pp. 1423–1431.
[4] Y . Kang, J. Hauswald, C. Gao, A. Rovinski, T. Mudge, J. Mars, and L. Tang, “Neurosurgeon: Collaborative intelligence between the cloud and mobile edge,” in Proceedings of the Twenty-Second International Conference on Architectural Support for Programming Languages and Operating Systems. ACM, 2017, pp. 615–629.
[5] H.-J. Jeong, H.-J. Lee, C. H. Shin, and S.-M. Moon, “Ionn: Incremental offloading of neural network computations from mobile devices to edge servers,” in Proceedings of the ACM Symposium on Cloud Computing, ser. SoCC ’18. New York, NY, USA: ACM, 2018, pp. 401–411.
[6] H.-J. Jeong, H.-J. Lee, C. H. Shin, and S.-M. Moon,“PerDNN Offloading Deep Neural Network Computations to Pervasive Edge Servers,” in International Conference on Distributed Computing Systems, ICDCS, 2020, pp.1055-1066.
[7] Li Lyna Zhang, Shihao Han, Jianyu Wei, Ningxin Zheng, Ting Cao, Yuqing Yang, Yunxin Liu,” nn-Meter: Towards Accurate Latency Prediction of Deep-Learning Model Inference on Diverse Edge Devices,” The 19th ACM International Conference on Mobile Systems, Applications, and Services ,MobiSys 2021, pp. 81-93.
[8] Maarten G.Poirot,Rajiv Gupta,Praneeth V epakomma,“Split Learning for collaborative deep learning in healthcare”,arXiv preprintarXiv: 1912. 12115. 2019.
[9] Otkrist Gupta and Ramesh Raskar. Distributed learning of deep neural network over multiple agents. Journal of Network and Computer Applications, 116:1–8, 2018. ISSN 1084-8045.
[10] Nathalie Baracaldo · Olivia Choudhury · Gauri Joshi · Peter Richtarik · Praneeth Vepakomma · Shiqiang Wang · Han Yu,“Accelerating Federated Learning with Split Learning on Locally Generated Losses,” in International Workshop on Federated Learning for User Privacy and Data Confidentiality in Conjunction with ICML 2021.