作者:Hou-I Liu, Marco Galindo, Hongxia Xie, Lai-Kuan Wong, Hong-Han Shuai, Yung-Hui Li, Wen-Huang Cheng
1. 摘要
過去的十年里,深度學習的主導地位在人工智能的各個領域中占據了主導地位,包括自然語言處理、計算機視覺和生物醫學信號處理。雖然模型準確性有了顯著提高,但在輕量級設備上部署這些模型,比如手機和微控制器,受到資源限制的約束。在這項調查中,我們提供了專門針對這些設備的全面設計指南,詳細介紹了輕量級模型的精心設計、壓縮方法和硬件加速策略。這項工作的主要目標是探索方法和概念,以克服硬件限制,而不損害模型的準確性。此外,我們還探討了未來輕量級深度學習的兩條顯著途徑:TinyML 和大型語言模型的部署技術。盡管這些途徑無疑具有潛力,但它們也帶來了重大挑戰,鼓勵研究未開發的領域。
2. 介紹
近年來,神經網絡(NNs)的重要性急劇上升,它們的應用滲透到日常生活的各個方面,并擴展到支持復雜任務。然而,自2012年AlexNet發布以來,創建更深層次、更復雜的網絡以提高準確性的趨勢已經普遍存在。例如,Model Soups在ImageNet數據集上取得了顯著的準確性,但代價是超過18.43億個參數。同樣,GPT-4在自然語言處理(NLP)基準測試上表現出色,盡管參數多達1.76萬億。深度學習(DL)的計算需求急劇增加,從2012年到2018年增加了約300,000倍。這種規模的急劇增加為本文探討的挑戰和發展奠定了基礎。
針對上述實際需求,近年來出現了大量的研究,重點放在輕量級建模、模型壓縮和加速技術上。年度移動人工智能(MAI)研討會已連續舉辦了CVPR 2021-2023,重點是在資源受限的設備上部署DL模型,例如ARM Mali GPU和樹莓派4上的圖像處理。此外,在ICCV 2019、ICCV 2021和ECCV 2022進行的圖像處理(AIM)研討會組織了圍繞圖像/視頻處理、恢復和增強在移動設備上的挑戰。
從這篇工作,作者發現了分析高效輕量級模型的發展的最有效方法,從設計階段到部署階段,涉及將三個關鍵元素納入流程中:NN架構設計、壓縮方法和輕量級DL模型的硬件加速。以往的調查往往只專注于此流程的特定方面,比如只討論量化方法,提供了這些領域的詳細見解。然而,這些調查可能無法提供對整個流程的全面了解,可能忽視了重要的替代方法和技術。相比之下,這篇綜述涵蓋了輕量級架構、壓縮方法和硬件加速算法。
3. 神經網絡設計
作者研究了經典的輕量級架構,并將它們分類為系列以提高清晰度。這些架構中的一些通過引入創新的卷積塊取得了重大進展。例如,深度可分離卷積優先考慮高準確性和降低計算需求。值得注意的是,參數和FLOPs與推理時間并不一致。早期的輕量級架構,如SqueezeNet和MobileNet ,旨在減少參數和FLOPs。然而,這種減少通常會增加內存訪問成本(MAC),導致推理速度較慢。因此,作者的目標是通過提供更全面和富有見地的審查來促進輕量級模型的應用。
4. 神經網絡壓縮
除了輕量級架構設計外,作者提到了可以應用于壓縮給定架構的各種高效算法。例如,量化方法 旨在減少數據所需的存儲空間,通常是通過用8位或16位數字代替32位浮點數,甚至使用二進制值表示數據。修剪算法,在其最簡單的形式中,從模型中刪除參數以消除網絡內部的不必要的冗余。然而,更復雜的算法可能會從網絡中刪除整個通道或過濾器。知識蒸餾(KD)技術探索了從一個模型(稱為"老師")轉移知識到另一個模型(稱為"學生")的概念。老師代表具有所需知識的大型預訓練模型,而學生代表一個未經訓練的較小模型,負責從老師那里提取知識。然而,隨著方法的發展,一些算法通過兩次使用相同的網絡修改了方法,消除了額外的老師模型的需要。隨著這些各種壓縮方法的進展,通常會觀察到兩種或更多技術的采用,例如在同一模型中融合修剪和量化方法。
?
?
此外,作者討論了神經架構搜索(NAS)算法,這是一組旨在自動化模型創建過程的技術,同時減少人類干預。這些算法自主搜索定義搜索空間內的最佳因素,如網絡深度和過濾器設置。該領域的研究主要集中在優化搜索空間的定義、遍歷和評估,以在不過度消耗時間和資源的情況下實現高準確性。
5. 神經網絡部署
作者深入探討了專用于DL應用的流行硬件加速器的景觀,包括圖形處理單元(GPUs)、現場可編程門陣列(FPGAs)和張量處理單元(TPUs)。此外,描述了各種數據流類型,并深入探討了數據局部性優化方法,探索支撐DL工作流程的高效處理的復雜技術。隨后,討論了專為加速DL過程而量身定制的流行DL庫。這一審查涵蓋了多樣化的工具和框架,在優化硬件加速器的利用方面發揮了重要作用。此外,調查了協同設計解決方案,在加速DL方面取得了優化和全面結果,需要認真考慮硬件架構和壓縮方法。
?
6. 挑戰和未來工作
這項綜述探討了輕量級模型、壓縮方法和硬件加速等復雜領域,展示了它們在廣泛的通用應用領域中的先進技術能力。然而,在資源受限的環境中部署這些模型仍然面臨著重大挑戰。本節致力于揭示在微型機器學習(TinyML)和LLMs中加速和應用深度學習模型的新技術,重點關注需要進一步研究的未解決問題。
TinyML是一種新興技術,可以使深度學習算法在功耗低于1mW的超低端物聯網設備上運行。 然而,極度受限的硬件環境使得設計和開發TinyML模型具有挑戰性。低端物聯網設備主要采用MCU,因為它們的成本效益高于CPU和GPU。然而,MCU庫(如CMSIS-NN和TinyEngine)通常是平臺依賴性的,不像PyTorch和TensorFlow等GPU庫提供跨平臺支持。因此,TinyML的設計重點更多地傾向于專用應用,而不是促進通用研究,這可能會妨礙整體研究進展的速度。
基于MCU的庫。 由于TinyML中的資源受限環境,基于MCU的庫通常設計用于特定用例。例如,CMSIS-NN是在ARM Cortex-M設備上開發的基于MCU的庫的開創性工作,它提出了一個高效的內核,分為NNfunctions和NNsupportfunctions。NNfunctions執行網絡中的主要函數,如卷積、池化和激活。NNsupportfunctions包含數據轉換和激活表。CMIX-NN提出了一種開源的混合和低精度工具,可以將模型的權重和激活量化為8、4和2位任意位數。MCUNet提出了一個針對商用MCU的DL實現的協同設計框架。該框架整合了TinyNAS,以有效地搜索最準確和輕量級的模型。此外,它利用了TinyEngine,其中包括基于代碼生成器的編譯和原地深度卷積,有效地解決了內存約束問題。MCUNetV2引入了一種基于補丁的推斷機制,只在特征圖的小空間區域上運行,進一步減少了峰值內存使用。MicroNet采用了可微分NAS(DNAS)來搜索具有低操作數量的高效模型,并支持開源平臺Tensorflow Lite Micro(TFLM)。MicroNet在所有TinyMLperf行業標準基準任務上取得了最先進的結果,即視覺喚醒詞、谷歌語音命令和異常檢測。
什么阻礙了TinyML的快速發展? 盡管取得了進展,但TinyML的增長受到幾個固有關鍵約束的限制,包括資源約束、硬件和軟件異構性以及缺乏數據集。極端的資源約束,如SRAM的極小尺寸和不到1MB的閃存內存大小,在設計和部署邊緣設備上的TinyML模型時帶來了挑戰。此外,由于硬件異構性和缺乏框架兼容性,當前的TinyML解決方案被調整以適應每個單獨設備,使得TinyML算法的廣泛部署變得復雜。此外,現有數據集可能不適用于TinyML架構,因為數據可能不符合邊緣設備外部傳感器的數據生成特征。需要一組適用于訓練TinyML模型的標準數據集,以推動有效TinyML系統的發展。在能夠在物聯網和邊緣設備上進行大規模部署之前,這些開放性研究挑戰需要解決。
輕量級大型語言模型的構建。 在過去的兩年中,LLMs在各種任務中始終表現出色。LLMs在實踐中具有重要的應用潛力,尤其是與人類監督配對時。例如,它們可以作為自主代理人的副駕駛員,或者作為靈感和建議的來源。然而,這些模型通常具有數十億規模的參數。將這樣的模型部署到推斷中通常需要GPU級別的硬件和數十吉字節的內存,這給日常LLM利用帶來了重大挑戰。例如,Tao等人發現很難對生成式預訓練語言模型進行量化,因為詞嵌入是同質的,權重分布各異。因此,將大型、資源密集的LLM模型轉化為適合部署在資源受限移動設備上的緊湊版本已成為未來研究的一個突出方向。
世界知名企業在LLM部署方面取得了重大進展。 2023年,高通展示了文本到圖像模型穩定擴散和圖像到圖像模型控制網絡在移動設備上的獨立執行,從而加速了大型模型部署到邊緣計算環境。谷歌還推出了其最新通用大型模型PaLM 2的幾個版本,其中包括專為移動平臺量身定制的輕量級變體。這一進展為將大型模型從基于云的系統遷移到邊緣設備創造了新的機會。然而,某些大型模型仍然需要數十吉字節的物理存儲和運行時內存。因此,正在努力實現少于1GB的內存占用,這意味著在這個領域仍然需要進行大量工作。本節概述了在資源受限環境中簡化LLM實施的一些關鍵舉措。
不需重新訓練的剪枝。 最近,大量工作應用常見的DL量化和剪枝技術構建輕量級LLMs。一些方法專注于實現量化,其中數值精度大大降低。SparseGPT首次證明,可以在單一步驟中將大規模生成式預訓練Transformer(GPT)模型剪枝至至少50%的稀疏度,而無需任何后續重新訓練,并且準確度損失最小。隨后,Wanda(Pruning by Weights and Activations)專門設計用于在預訓練的LLMs中引入稀疏性。Wanda剪枝了具有最小幅度的權重,不需要重新訓練或權重更新。剪枝的LLM可以直接使用,增加了其實用性。值得注意的是,Wanda超越了幅度剪枝的已建立基線,并與最近涉及大量權重更新的方法有效競爭。這些工作為未來設計LLM剪枝方法而不需要重新訓練設定了重要的里程碑。
模型設計。 從模型設計的角度來看,可以從一開始就創建輕量級LLMs,重點是減少模型參數的數量。在這方面的一個有前景的途徑是提示調優,它旨在在保持效率和模型大小的同時優化LLMs的性能。在這方面的一個值得注意的方法是視覺提示調優(VPT),它成為視覺相關任務中大規模Transformer模型的全面微調的高效和有效替代方法。VPT在輸入空間內引入了僅占一小部分,小于1%的可訓練參數,同時保持了模型骨干的完整性。另一個值得注意的貢獻是CALIP,它引入了無參數的注意機制,以促進視覺和文本特征之間的有效交互和通信。它產生了文本感知的圖像特征和視覺引導的文本特征,有助于開發更加簡潔和高效的視覺-語言模型。在不久的將來,推進輕量級LLM設計的一個有前景的途徑是開發自適應微調策略。這些策略將動態調整模型的架構和參數,以與特定任務要求對齊。這種適應性確保了模型能夠在特定應用中優化其性能,而不會產生不必要的參數膨脹。
構建輕量級擴散模型。 近年來,基于去噪擴散的生成模型,特別是基于得分的模型,在創建多樣化和真實數據方面取得了顯著進展。然而,將擴散模型的推斷階段轉移到邊緣設備上面臨著重大挑戰。推斷階段反轉了轉換過程,從高斯噪聲生成真實數據,通常稱為去噪過程。此外,當這些模型被壓縮以減少其占用的空間和計算需求時,存在嚴重降低圖像質量的風險。壓縮過程可能需要簡化、近似或甚至刪除必要的模型組件,這可能會對模型從高斯噪聲準確重建數據的能力產生不利影響。因此,在減小模型尺寸的同時保持高質量圖像生成之間出現了關鍵問題,從而在資源受限場景下開發擴散模型面臨著嚴峻挑戰。
部署視覺Transformer(ViTs)。 盡管輕量級ViTs越來越普遍,但在硬件受限環境中部署ViT仍然是一個持續關注的問題。根據報道,移動設備上的ViT推斷的延遲和能耗是CNN模型的40倍。因此,如果不加修改,移動設備無法支持ViT的推斷。ViTs中的自注意操作需要計算圖像補丁之間的成對關系,并且隨著補丁數量的增加,計算量呈二次增長。此外,與注意力層相比,FFN層的計算時間更長。通過去除冗余的注意力頭和FFN層,DeiT-Tiny可以將延遲降低23.2%,幾乎不損失0.75%的準確性。
一些工作設計了用于嵌入式系統(如FPGA)的NLP模型。 最近,DiVIT和VAQF提出了ViTs的硬件-軟件協同設計解決方案。DiVIT提出了一種在算法級別利用補丁局部性的差分注意的增量補丁編碼。在DiVIT中,使用節省位的技術設計了帶有差分數據流通信的差分注意處理引擎陣列。此外,指數操作使用查找表執行,無需額外計算,且硬件開銷最小化。VAQF首次將二進制化引入ViTs中,可用于FPGA映射和量化訓練。具體來說,VAQF可以根據目標幀率生成所需的量化精度和加速器描述,用于直接軟件和硬件實現。
為了在資源受限設備中無縫部署ViTs,作者重點介紹了兩個潛在的未來方向:
1)算法優化。 除了描述的設計高效ViT模型外,還應考慮ViTs的瓶頸。例如,由于MatMul操作在ViTs中造成了瓶頸,可以加速或減少這些操作。此外,可以考慮整數量化和運算融合的改進。
2)硬件可訪問性。 與CNN不同,大多數移動設備和AI加速器都支持CNNs,而ViTs沒有專門的硬件支持。例如,ViT無法在移動GPU和英特爾NCS2 VPU上運行。根據我們的研究結果,某些重要操作符在特定硬件上不受支持。具體而言,在移動GPU上,連接操作符在TFLiteGPUDelegate中需要4維輸入張量,但ViTs中的張量為3維。另一方面,英特爾VPU不支持LayerNorm,在變壓器架構中存在,但在CNN中不常見。因此,需要進一步調查在資源受限設備上ViTs的硬件支持。
7. 貢獻
本文旨在簡單但準確地描述如何利用輕量級架構、壓縮方法和硬件技術來實現在資源受限設備上的準確模型。主要貢獻總結如下:
(1) 以往的調查只簡要提及少數輕量級架構的作品。作者將輕量級架構組織成系列,例如將MobileNetV1-V3和MobileNeXt分組到MobileNet系列中,并提供了從它們誕生到現在的輕量級架構的歷史。
(2) 為了涵蓋整個輕量級DL應用,這篇文章還涵蓋了壓縮和硬件加速方法。與許多其他調查不明確建立這些技術之間聯系的不同,對每個領域提供了全面的概述,深入了解它們之間的相互關系。
(3) 作為輕量級DL前沿進展的一部分,作者審查了當前的挑戰并探索未來的工作。首先,探索了TinyML,這是一種新興的方法,專為在資源極度有限的設備上部署DL模型而設計。隨后,調查了在邊緣設備上利用LLMs的各種當代倡議,這是輕量級DL領域的一個有希望的方向。
8. 總結
最近,計算機視覺應用越來越注重能源節約、碳足跡減少和成本效益,突顯了輕量級模型在邊緣人工智能背景下的重要性。本文對輕量級深度學習(DL)進行了全面考察,探討了MobileNet和Efficient變換器變體等重要模型,以及用于優化這些模型的流行策略,包括剪枝、量化、知識蒸餾和神經結構搜索。除了詳細解釋這些方法外,還提供了定制輕量級模型的實用指導,通過分析它們各自的優勢和劣勢來提供清晰度。此外,討論了DL模型的硬件加速,深入探討了硬件架構、不同數據流類型和數據局部性優化技術,以增強對加速訓練和推斷過程的理解。這項調查揭示了硬件和軟件之間的復雜互動關系(協同設計),提供了從硬件角度加速訓練和推斷過程的見解。最后,作者將目光轉向未來,認識到在TinyML和LLM技術中部署輕量級DL模型存在挑戰,需要在這些不斷發展的領域探索創造性解決方案。
審核編輯:黃飛
評論
查看更多