0
本文作者: AI研習社 | 2019-12-19 21:22 | 專題:NeurIPS 2019 |
雷鋒網(wǎng)AI開發(fā)者訊,日前,神經(jīng)信息處理系統(tǒng)大會(NeurIPS 2019)于12月8日至14日在加拿大溫哥華舉行,中國科學院自動化研究所及其南京人工智能芯片創(chuàng)新研究院聯(lián)合團隊在本次大會的神經(jīng)網(wǎng)絡壓縮與加速競賽(MicroNet Challenge)中獲得雙料冠軍!
據(jù)悉,本次NeurIPS大會參會人數(shù)愈13000人,今年共收到投稿 6743 篇,再次打破了歷年來的接收記錄。而歷來,NeurIPS競賽單元都被譽為AI界的華山論劍,匯聚了全球AI頂尖力量決戰(zhàn)技術之巔。
以模型壓縮和加速為代表的深度學習計算優(yōu)化技術是近幾年學術界和工業(yè)界最為關注的焦點之一。隨著人工智能技術不斷地落地到各個應用場景中,在終端上部署深度學習方案面臨了新的挑戰(zhàn):模型越來越復雜、參量越來越多,但終端的算力、功耗和內(nèi)存受限,如何才能得到適用于終端的性能高、速度快的模型?
由Google、Facebook、OpenAI等機構在NeurIPS2019上共同主辦的MicroNet Challenge競賽旨在通過優(yōu)化神經(jīng)網(wǎng)絡架構和計算,達到模型精度、計算效率、和硬件資源占用等方面的平衡,實現(xiàn)軟硬件協(xié)同優(yōu)化發(fā)展,啟發(fā)新一代硬件架構設計和神經(jīng)網(wǎng)絡架構設計等。
MicroNet Challenge競賽對于人工智能軟件、硬件的未來發(fā)展都有著非比尋常的意義,此次不僅集結了MIT、加州大學、KAIST、華盛頓大學、京都大學、浙大、北航等國內(nèi)外著名前沿科研院校,同時還吸引了ARM、IBM、高通、Xilinx等國際一流芯片公司的參與。
MicroNet Challenge競賽包括ImageNet圖像分類、CIFAR-100圖像分類和WikiText-103語言模型三個子任務。來自自動化所程健研究員實驗室的團隊參加了競爭最激烈的ImageNet和CIFAR-100兩個子賽道的比拼。歷經(jīng)五個多月的廝殺,團隊一舉包攬了圖像類的全部兩項冠軍。
團隊結合極低比特量化技術和稀疏化技術,在ImageNet任務上相比主辦方提供的基準模型取得了20.2倍的壓縮率和12.5倍的加速比,在CIFAR-100任務上取得了732.6倍的壓縮率和356.5倍的加速比,遙遙領先兩個任務中的第二名隊伍。
同時,受組織方的邀請,團隊在大會以“A Comprehensive Study of Network Compression for Image Classification”為主題詳細介紹了相關的量化和稀疏化壓縮和加速技術。
針對比賽任務,團隊在報告中給出解決辦法:采用量化和稀疏化技術,將深度學習算法模型進行輕量化和計算提速,以大幅降低算法模型對算力、功耗以及內(nèi)存的需求,讓低端設備實現(xiàn)人工智能方案。團隊成員冷聰副研究員表示,量化及稀疏化技術也是深度學習軟、硬件協(xié)同加速方案的突破口。通過將其與人工智能硬件架構設計緊密結合,可以進一步降低人工智能技術落地難度,讓AI更為易得易用。
NeruIPS 2019 MicroNet Challenge神經(jīng)網(wǎng)絡壓縮與加速競賽雙項冠軍技術解讀
賽題介紹
本比賽總共包括三個賽道:ImageNet分類、CIFAR-100分類、WikiText-103語言模型。在三個賽道上,參賽團隊要求構建輕量級網(wǎng)絡,在精度滿足官方要求的條件下,盡可能降低網(wǎng)絡計算量和存儲。對于ImageNet分類,要求至少達到75%的top-1精度,而對于CIFAR-100,top-1精度需要達到80%以上。
評測指標
最終評分指標包括存儲壓縮和計算量壓縮兩部分,均采用理論計算量和存儲進行計算。
對于存儲,所有在推理階段需要使用的參數(shù)均需要計算在內(nèi),比如稀疏化中的mask、量化中的字典、尺度因子等。對于存儲,32比特位算作一個參數(shù),低于32比特的數(shù)按照比例計算,例如8比特數(shù)算作1/4個參數(shù)。
對于計算量,乘法計算量和加法計算量分別計算。對于稀疏而言,稀疏的位置可以認為計算量為0。對于定點量化,32比特操作算作一個操作,低于32比特的操作按照比例計算。操作的比特數(shù)認為是兩個輸入操作數(shù)中較大的那一個,例如一個3比特數(shù)和一個5比特數(shù)進行計算,輸出為7比特數(shù),那么該操作數(shù)為5/32。
對于ImageNet,以MobileNet-V2-1.4作為基準(6.9M參數(shù),1170M計算量,精度大約為75%)。所以,如果參數(shù)量記為Param,計算量記為Operation,則最終評分Score為:
對于CIFAR-100,以WideResNet-29-10為基準(36.5M參數(shù),10.49B計算量,精度大約為80%),評分公式為:
解決方案
我們主要采用稀疏化+量化的方式,主要包括模型選擇、網(wǎng)絡剪枝、定點量化、算子融合等操作,實現(xiàn)大規(guī)模稀疏和極低比特壓縮。
首先是模型選擇,復雜的模型往往具有更高的精度,參數(shù)量和計算量較大,但同時壓縮空間也比較大;輕量級模型精度相對較低,但參數(shù)量和計算量相對較小,同時對網(wǎng)絡壓縮也比較敏感,因此需要再模型復雜度和精度之前進行權衡。我們選擇輕量級、同時精度略高于比賽要求的網(wǎng)絡。最終在ImageNet上選擇了MixNet-S模型(精度75.98%),在CIFAR-100上選擇了DenseNet-100(精度81.1%)。
在確定好模型之后,我們先對網(wǎng)絡進行剪枝,去掉不重要的參數(shù)量和計算。在這之前,我們對每一層進行了魯棒性分析。具體而言,對于每一層,我們進行稀疏度從0.1到0.9的剪枝,然后測試網(wǎng)絡精度。圖1顯示了網(wǎng)絡各層對不同稀疏度的影響,可以看出某幾層對網(wǎng)絡剪枝特別敏感,而其余一些層對剪枝卻很魯邦?;诖?,我們確定了每一層的稀疏度,然后刪除不重要的節(jié)點,再對剩余連接進行重新訓練。我們可以實現(xiàn)在稀疏度大概為60%的情況下,精度損失只有0.4%。
圖1 網(wǎng)絡各層對剪枝操作的魯棒性分析
在對網(wǎng)絡進行剪枝以后,再對網(wǎng)絡進行定點量化。我們采用了均勻量化策略,量化公式如下:
對于激活,每層引入一個浮點數(shù)尺度因子;而對于權值,每個3D卷積核引入一個浮點數(shù)尺度因子。在給定比特數(shù)的情況下,以上優(yōu)化公式唯一的待求解參數(shù)就是尺度因子,即優(yōu)化目標為,我們采用迭代優(yōu)化的方式計算出每一層的尺度因子。在求解尺度因子之后,與網(wǎng)絡剪枝類似,我們需要對網(wǎng)絡進行微調(diào)來恢復精度,在網(wǎng)絡微調(diào)階段,我們保持尺度因子一直不變。通過以上方式,我們可以實現(xiàn)在激活7比特,參數(shù)大部分為3、4、5比特的情況下,網(wǎng)絡精度損失為0.5個點,最終網(wǎng)絡模型top-1精度為75.05%。
最后,我們進行了算子融合,把量化中的尺度因子、卷積層偏置、BN層參數(shù)等融合成一個Scale層,以進一步降低網(wǎng)絡的存儲和計算量。最終,我們的方法在ImageNet上只有0.34M參數(shù)和93.7M計算量,相對于基準模型實現(xiàn)20.2倍的壓縮和12.5倍的加速;而在CIFAR-100上,我們的模型存儲僅有49.8K,計算量為29.4M,相對于基準模型壓縮732.6倍,加速365.5倍。
雷鋒網(wǎng)AI開發(fā)者
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。
本專題其他文章