滴滴、東北大學提自動結構化剪枝壓縮算法框架,性能提升高達120倍

2021-01-11 機器之心Pro

機器之心發布

機器之心編輯部

2020 年 2 月 7 日-2 月 12 日,AAAI 2020 將於美國紐約舉辦。不久之前,大會官方公布了今年的論文收錄信息:收到 8800 篇提交論文,評審了 7737 篇,接收 1591 篇,接收率 20.6%。本文介紹了滴滴 AI Labs 與美國東北大學合作的一篇論文《AutoCompress: An Automatic DNN Structured Pruning Framework for Ultra-High Compression Rates》

近年來,隨著深度神經網絡模型性能不斷刷新,模型的骨幹網絡參數量愈發龐大,存儲和計算代價不斷提高,從而導致難以部署在資源受限的嵌入式平臺上。滴滴 AI Labs 與美國東北大學王言治教授研究組合作,聯合提出了一種基於 AutoML 思想的自動結構化剪枝的算法框架 AutoCompress,能自動化的去尋找深度模型剪枝中的超參數,去除模型中不同層的參數冗餘,替代人工設計的過程並實現了超高的壓縮倍率。從而滿足嵌入式端上運行深度模型的實時性能需求。相較之前方法的局限性,該方法提出三點創新性設計:

(1)提出混合型的結構化剪枝維度;(2)採用高效強大的神經網絡剪枝算法 ADMM(交替乘子優化算法)對訓練過程中的正則項進行動態更新;(3)利用了增強型引導啟發式搜索的方式進行行為抽樣。在 CIFAR 和 ImageNet 數據集的大量測試表明 AutoCompress 的效果顯著超過各種神經網絡壓縮方法與框架。在相同準確率下,實際參數量的壓縮相對之前方法最大可以提高超 120 倍。

論文全文:https://arxiv.org/abs/1907.03141自動化設置深度模型剪枝中的超參數深度神經網絡模型壓縮技術成為解決上述問題不可或缺的關鍵。其中具有代表性的方法 -- 模型權重剪枝(weight pruning)技術可以有效地將大模型壓縮,進而高效地進行推理加速。這其中,結構化剪枝(structured pruning)作為能夠真正在平臺層面解決硬體執行效率低,內存訪問效率差,計算平行度不高問題的合理有效的剪枝維度,受到了學術界與工業界的重視。然而權重剪枝在算法實現過程中涉及到到大量的超參數設置 -- 例如如何確定模型的壓縮維度,或者如何確定模型中每層的壓縮比例等等。由於設計空間巨大且需要專業知識指導,人工設計這些超參數的過程冗長且複雜,並且在很大程度上依靠相關人員的參數調節經驗。因此,作為一種更加激進的剪枝模式,結構化剪枝技術在算法實現層面面臨著更大的挑戰。為解決結構化剪枝中超參數的決策問題,將超參數的設置轉變為一種自動化過程將大大提高模型權重剪枝的算法實現效率。在近期的研究中,比如 AMC 等利用了深度增強學習(Deep Reinforcement Learning(DRL))的方法去決策每層的剪枝比例,然而,這種自動化的剪枝方法存在三方面的局限性:(1)只採用了單一的輸出通道(filter)剪枝維度;(2)為了得到稀疏化模型,其所採用的剪枝方法僅僅是在模型訓練過程中引入一個靜態的正則項;(3)更深層次的局限性在於其所採用的基於 DRL 框架的剪枝方法本質上與剪枝問題難以兼容。但由於 DRL 框架並不適合解決模型權重剪枝的超參數設置問題,AMC 研究的結果也佐證了這一觀點,其結果中最高壓縮率只有非結構化(non-structured)的 5 倍壓縮倍率。

圖 1. 自動化超參數決策框架的通用流程,以及性能提升來源為了改進以上的不足,我們提出了神經網絡權重剪枝問題超參數設置自動化過程的通用流程(generic flow),如圖 1 所示。整個自動化通用流程主要可以分為 4 步。步驟 1 為行為抽樣,步驟 2 為快速評估,步驟 3 為確定決策,步驟 4 為剪枝操作。由於超參數的巨大搜索空間,步驟 1 和步驟 2 應該快速進行,因此無法進行再訓練(re-training)後去評估其效果。因此根據量級最小的一部分權重直接進行剪枝評估。步驟 3 根據工作抽樣和評估的集合對超參數進行決策。步驟 4 利用剪枝核心算法對模型進行結構化剪枝並生成結果。基於上述通用流程,並針對之前方法的局限性,進一步提出如下三點創新性設計,通過綜合現有的深度神經網絡與機器學習框架首次實現了目前最高效的深度神經網絡自動化結構化剪枝的通用框架 AutoCompress。該框架在滴滴已經得到了實際有效應用。基於神經網絡自動化結構化剪枝框架三點創新性設計為:(1)提出混合型的結構化剪枝維度;(2)採用高效強大的神經網絡剪枝算法 ADMM(交替乘子優化算法)對訓練過程中的正則項進行動態更新;(3)利用了增強型引導啟發式搜索的方式進行行為抽樣。

圖 2. 不同的結構化剪枝策略: 基於卷積核的角度和通用矩陣乘算法(GEMM)的角度首先,結構化剪枝包含三種剪枝維度,輸出通道剪枝(filter pruning),輸入通道剪枝(channel pruning)和輸出通道形狀剪枝(filter shape/column pruning),如圖 2 上所示。輸出通道剪枝即直接刪除一個卷積核。輸入通道剪枝為刪除每個卷積核對應的輸入通道。輸出通道形狀剪枝為刪除每個卷積核上相同位置的權重。下半部分展示了推理過程中卷積層展開的通用矩陣乘法(GEMM)矩陣。其中每行代表一個卷積核(對應 filter pruning),每列對應的是每個卷積核上相同位置的權重(對應 filter shape pruning)。一段連續列則代表一個輸入通道(對應 channel pruning)。通過結合了輸出通道形狀剪枝(filter shape/column pruning)和 輸入通道剪枝(filter pruning)兩種結構化剪枝維度,剪枝後的模型仍然可以維持一個完整的矩陣,從而可以最大限度地利用硬體結構實現加速。其次,採用 ADMM 算法,將剪枝問題轉化為數學優化問題,在剪枝的同時訓練剩餘權重。ADMM 可以將原始剪枝問題分解為兩個子問題,用傳統梯度下降法求解子問題一,並引入一個二次項迭代求解子問題二。在不同量級的神經網絡下,ADMM 均取得非常好的訓練效果(高精度),同時保持了較高的訓練效率(快速收斂)。最後,採用有效的啟發式搜索的方式解決 DRL 框架的局限性。考慮到基於人類經驗的啟發式搜索可以執行導向搜索(guided search),這是採用啟發式搜索的另一個優勢。

圖 3. AutoCompress 框架示意圖基於上述三點創新性設計,我們搭建了 AutoCompress 框架,如圖 3 所示。通過基於啟發式搜索算法的自動化代理模塊的指導,AutoCompress 框架進行模型自動化剪枝主要分為兩個步驟,步驟 1:通過基於 ADMM 算法的結構化剪枝,得到權重分布結構性稀疏化的模型;步驟 2:通過網絡結構淨化(Purification)操作,將 ADMM 過程中無法完全刪除的一小部分冗餘權重找到並刪除。值得注意的是,這兩個步驟都是基於相同的啟發式搜索機制。啟發式搜索機制針對 AutoCompress 中最核心的搜索算法設計,我們利用了搜索算法中的模擬退火算法為搜索算法的核心。舉例來講,給定一個原始模型,我們會設置兩種目標函數 -- 根據權重數量設置或根據運算量(FLOPs)設置。搜索過程進行若干輪,比如第一輪目標為壓縮兩倍權重數量,第二輪為壓縮四倍權重數量。在每一輪搜索過程中,首先初始化一個行為(超參數),然後每次對行為進行一個擾動(超參數的小幅變化)生成新的行為,根據模擬退火算法原理,評估兩個行為,如果新的行為評估結果優於原結果則接受該行為,如果新的行為評估結果劣於原結果則以一定概率接受該行為。每一輪算法中的溫度參數 T 會下降,直到 T 下降到某個閾值後即停止搜索,該結果即為圖 1 中的步驟 3 輸出。最後,根據搜索得到的超參數,對神經網絡進行結構化剪枝操作。

表 1. 在 VGG-16 上基於 CIFAR-10 數據集的權重剪枝對比結果。

表 2. 在 ResNet-18 (NISP 和 AMC 結果為 ResNet-50) 上基於 CIFAR-10 數據集的權重剪枝對比結果。

表 3. 在 VGG-16 上基於 ImageNet 數據集的結構化權重剪枝

表 4. 在 ResNet-18/50 上基於 ImageNet 數據集的結構化權重剪枝對比結果。

表 5. 在 ResNet-50 上基於 ImageNet 數據集的非結構化權重剪枝對比結果。表 1,2,3,4,5 展示了 AutoCompress 框架在代表性的深度神經網絡和數據集上的剪枝效果。可以看到,AutoCompress 框架對深度模型壓縮效果極為顯著,例如 VGG-16 在 CIFAR-10 數據集上,結構化剪枝壓縮率高達 52.2 倍,無精度損失,在 Samsung Galaxy S10 智慧型手機上測試(使用代碼生成優化版編譯器),其運行速度為 2.7ms。ResNet-18 在 CIFAR-10 數據集上更是達到了 54.2 倍結構化剪枝壓縮率無精度損失。相比之前的方法,如果考慮到 ResNet-18 與 ResNet-50 本身的大小差距(我們使用更小的 ResNet-18),可以在準確率有所上升的情況下比之前的方法減小 120 倍權重參數。在 ImageNet 數據集上,VGG-16 達到了 6.4 倍結構化壓縮率,精度損失僅為 0.6%,ResNet-18 達到了 3.3 倍的結構化壓縮率,無精度損失;最後,值得指出的是,AutoCompress 框架也可以應用於非結構化剪枝,其壓縮結果使 ResNet-50 在 ImageNet 數據集上可以做到 9.2 倍無精度損失的壓縮,更能達到 17.4 倍的壓縮率,僅損失 0.7% 的精度。與其他方法相比,AutoCompress 的效果超過各種神經網絡壓縮方法與框架。這一研究使得高效率,高精度地獲取深度神經網絡高壓縮率模型成為可能,並且得到的高效神經網絡模型可以在嵌入式移動系統中實現實時推理運算。

相關焦點

  • 性能超越GPU、FPGA,華人學者提出軟體算法架構加速AI實時化
    近期,由美國東北大學王言治研究組、威廉瑪麗學院任彬研究組和北卡州立大學慎熙鵬研究組共同提出了名為CoCoPIE的軟體算法架構,通過有效的「壓縮-編譯」協同設計(compression-compilation co-design),在沒有特殊硬體加速器的情況下,使用現有邊緣設備(如智慧型手機),依然可以實現人工智慧的實時化,並且在性能上超越了特殊硬體加速器。
  • 邊緣計算中深度神經網絡剪枝壓縮的研究簡介
    智能邊緣計算利用物聯網的邊緣設備進行數據採集和智能分析計算,實現智能在雲和邊緣之間流動,對人工智慧算法、終端、晶片都提出了新的需求,正成為越來越多人工智慧企業關注的重點方向。然而,由於深度學習模型推理需要消耗大量的計算資源,當前的大多數邊緣設備由於資源受限無法以低延遲、低功耗、高精確率的方式支持深度學習應用。
  • 137% YOLOv3加速、10倍搜索性能提升!這樣的驚喜,最新版PaddleSlim...
    與2019年第一季度初次發布相比,PaddleSlim在易用性、模型適配、端側部署、性能提升等方面都有了顯著提升。最核心的體現,在於以下的十個特性。PaddleSlim1.0採用以網絡節點為視角進行遍歷,找出所有與被剪卷積相關的節點,相當於把複雜網絡的遍歷任務分攤給了各個類型的網絡節點,從而提升了可擴展性,在理論上可以支持任意複雜的網絡。在目標檢測任務中,可以在不降低模型精度的情況下,進行大比例的剪枝,個別任務剪枝後精度反而有所提升。
  • CVPR 2019Oral論文解讀|百度提出關於網絡壓縮和加速的新剪枝算法
    (geometric median)的剪枝算法,來對神經網絡進行壓縮和加速。網絡剪枝是網絡的壓縮和加速中一個重要的方向,自1989年LeCun提出以來,得到了迅速發展。現在主要分為2種方向:1)權重剪枝;2)濾波器剪枝。濾波器剪枝相對於權重剪枝有一系列優點,包括它可以得到規則的模型,由此減少內存消耗,並且加速網絡的推斷。
  • 剪枝需有的放矢,快手&羅切斯特大學提出基於能耗建模的模型壓縮
    最近,快手 Y-Tech 西雅圖 AI lab 聯合羅切斯特大學等研究者提出了一種基於能耗建模的壓縮方法,他們一脈相承的兩篇論文分別被 ICLR 2019 和 CVPR 2019 接收。在這篇文章中,我們將介紹這種新型模型壓縮的核心思想及主要做法,神經網絡壓縮也許該走向有目標的前進之路了。
  • 網絡剪枝中的AutoML方法
    實驗部分,作者首先對比了AMC與手工設計相比的優勢,最大的優勢,就是利用了RL針對自適應的決定了每一層的壓縮比例,在同壓縮比例的情況下,模型的性能損失更小。然後按照慣例,在ImageNet大數據集上驗證方法的可靠性。實驗結果如下圖。
  • ThiNet:模型通道結構化剪枝
    【GiantPandaCV】ThiNet是一種結構化剪枝,核心思路是找到一個channel的子集可以近似全集,那麼就可以丟棄剩下的channel,對應的就是剪掉剩下的channel對應的filters。剪枝算法還是三步剪枝:train-prune-finetune,而且是layer by layer的剪枝。
  • 閒話模型壓縮之網絡剪枝(Network Pruning)|綜述
    其中對當時經典網絡AlexNet和VGG進行了壓縮。結合pruning,quantization和huffman encoding等多種方法,將網絡size壓縮了幾十倍,性能獲得成倍的提升。其中對於pruning帶來的精度損失,使用了iterative pruning方法進行補償,可以讓精度幾乎沒有損失。這讓大家意識到DNN參數冗餘程度如此之大,可榨油水如此之多。
  • Java 不同壓縮算法的性能比較
    結果表明,某些算法在極端苛刻的CPU限制下仍能正常工作。文中進行比較的算有:JDK GZIP ——這是一個壓縮比高的慢速算法,壓縮後的數據適合長期使用。JDK中的java.util.zip.GZIPInputStream / GZIPOutputStream便是這個算法的實現。
  • 深度學習模型壓縮與加速綜述
    因此,如何在不影響深度學習模型性能的情況下進行模型壓縮與加速,成為了學術界和工業界的研究熱點。1、簡介深度學習模型壓縮與加速是指利用神經網絡參數和結構的冗餘性精簡模型,在不影響任務完成度的情況下,得到參數量更少、結構更精簡的模型。被壓縮後的模型對計算資源和內存的需求更小,相比原始模型能滿足更廣泛的應用需求。
  • Java不同壓縮算法的性能比較
    本文將會對常用的幾個壓縮算法的性能作一下比較。結果表明,某些算法在極端苛刻的CPU限制下仍能正常工作。
  • 2019年的最後一個月,這裡有6種你必須要知道的最新剪枝技術
    這是一種模型優化技術,它刪除權重張量中不必要的值,從而使得壓縮後的神經網絡運行速度更快,網絡訓練過程中的計算成本也有所降低。在將模型部署到手機等邊緣設備上時,剪枝的作用更加明顯現。 本篇精選了神經網絡剪枝領域的一些研究論文,供大家學習參考。
  • 綜述論文:當前深度神經網絡模型壓縮和加速方法速覽
    壓縮機制不會帶來任何準確率損失。B. 剪枝和共享網絡剪枝和共享已經被用於降低網絡複雜度和解決過擬合問題。首先,這些方法的性能可與寬/平坦的架構(如 VGGNet)相媲美,但是無法與較窄/特殊的架構(如 GoogleNet、Residual Net)相比。其次,遷移假設有時過於強大以致於無法指導算法,使得在某些數據集上的結果不穩定。知識精煉據我們所知,Caruana 等人 [49] 首先提出利用知識遷移(KT)來壓縮模型。
  • 七個自動機器學習框架
    自動學習框架之排名 自動學習框架能夠實現所有或幾乎所有步驟的自動化,為企業提供準確的預測。它的最大優勢就是能將很多業務流程和數據分析人員從瑣事中解脫出來,把時間花在項目的創意方面。Gartner曾經發布一個數據報告,它預測在2020年,40%的大數據專家將會被自動化機器學習所取代。
  • 清華團隊最新晶片報告:原創框架性能提4.8倍,入選頂會ISCA2020
    因此,人們提出了大量的圖分析框架來對多種圖計算算法進行性能優化,其應用從CPU拓展到GPU、FPGA和ASIC。 然而,多樣性的計算平臺也給圖分析帶來了異質性,大量的協調和同步工作使得圖分析框架很難從單一平臺擴展到異構平臺。
  • 騰訊聯合港中文提出新型神經網絡壓縮方法
    InfoQ 將通過選題的方式逐一介紹各大公司在模型壓縮上的技術創新和落地實踐。在行動裝置和許多在線應用中,實時性能好的輕量級模型是一大重要需求,而為了保證神經網絡的實時性,很多時候都有必要對模型進行壓縮;但與此同時,幾乎所有神經網絡模型壓縮算法都會在壓縮過程中減損原始模型的準確度。因此,在進行模型壓縮時,需要在實時性和準確性之間找到一個合適的平衡。
  • 刷新濾波器剪枝的SOTA效果,騰訊優圖論文入選NeurIPS2020
    【天極網IT新聞頻道】近日,騰訊優圖實驗室在模型壓縮任務中獲得創新性突破,提出的基於濾波器骨架的逐條剪枝算法(Stripe-Wise Pruning,SWP),刷新了濾波器剪枝的SOTA效果。具有合適形狀的濾波器,即使參數是隨機的,也能具有較好的性能。   因此本文通過一種名為濾波器骨架(Filter Skeleton,FS)的模塊來顯性地學習濾波器的形狀(如圖中①)。當訓練結束,我們可以將FS乘回參數上,因此不會引入額外的參數(如圖中②)。
  • 清華魏少軍團隊最新晶片報告:原創框架性能提升4.8倍,入選頂會ISCA 2020
    對於許多數據密集型的應用分析而言,高效求解的大規模圖計算算法是至關重要的。因此,人們提出了大量的圖分析框架來對多種圖計算算法進行性能優化,其應用從CPU拓展到GPU、FPGA和ASIC。然而,多樣性的計算平臺也給圖分析帶來了異質性,大量的協調和同步工作使得圖分析框架很難從單一平臺擴展到異構平臺。
  • 壓縮26倍,神經網絡仍高效,Facebook新研究造福嵌入式設備
    性能,功耗,成本,都是不得不考慮的問題。每一種不同的應用場景,都需要在神經網絡的大小和精確度之間進行特定的權衡(trade-off)。像自動駕駛汽車,就需要實現對實時視頻的精確識別,這意味著嵌入其中的神經網絡模型一定是個體積龐大的傢伙。受限於硬體,神經網絡必須進行壓縮。
  • 學者故事:從深鑑科技創始人到MIT教授,韓松帶你探尋深度壓縮模型世界的奧妙
    韓松  本科畢業於清華大學,博士畢業於史丹福大學,師從 NVIDIA 首席科學家 Bill Dally 教授。他的研究也廣泛涉足深度學習和計算機體系結構,他提出的 Deep Compression 模型壓縮技術曾獲得 ICLR'16 最佳論文,ESE 稀疏神經網絡推理引擎獲得 FPGA'17 最佳論文,對AI算法在移動端的高效部署影響深遠。