機器之心發布
機器之心編輯部
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 的效果超過各種神經網絡壓縮方法與框架。這一研究使得高效率,高精度地獲取深度神經網絡高壓縮率模型成為可能,並且得到的高效神經網絡模型可以在嵌入式移動系統中實現實時推理運算。