近日,英特爾AI 實(shí)驗(yàn)室推出了高性能的神經(jīng)網(wǎng)絡(luò)壓縮工具Distiller,便捷地實(shí)現(xiàn)了更小更快更高效的神經(jīng)網(wǎng)絡(luò)計(jì)算。Distiller目前在PyTorch中實(shí)現(xiàn)了一系列壓縮分析算法,包括稀疏引導(dǎo)算法和低精度近似算法。工具包主要由以下三個(gè)部分組成:
一套集成了剪枝、正則化與量化的算法;
一系列分析和評(píng)價(jià)壓縮表現(xiàn)的工具;
以及一系列前沿壓縮算法的實(shí)現(xiàn)樣例。
更小更快更節(jié)能
目前的絕大多數(shù)神經(jīng)網(wǎng)絡(luò)都越來越深,其參數(shù)達(dá)到了百萬量級(jí)。如此龐大的模型即使在硬件加速的條件下也是十分消耗資源的計(jì)算密集型算法,即使只考慮推理階段也需要花費(fèi)較多的時(shí)間。在某些低延時(shí)的場合,比如說自動(dòng)駕駛和控制領(lǐng)域這樣的處理時(shí)間就會(huì)造成很多問題。同時(shí)在消費(fèi)電子上較長的延時(shí)也會(huì)造成用戶體驗(yàn)的下降。
大型模型同時(shí)也會(huì)消耗大量的內(nèi)存,以及隨之而來的算力與能耗,這對(duì)于移動(dòng)設(shè)備來說是十分重要的問題。同樣對(duì)于大型數(shù)據(jù)中心來說模型的能耗也是不同忽視的問題。同時(shí)考慮到存儲(chǔ)和傳輸?shù)南拗?,神?jīng)網(wǎng)絡(luò)的壓縮具有十分重要的現(xiàn)實(shí)需求。在精度可以接受的條件下,壓縮的越小神經(jīng)網(wǎng)絡(luò)需要的計(jì)算資源和帶寬就越少。由于深度神經(jīng)網(wǎng)絡(luò)的權(quán)重矩陣具有稀疏性,通過正則化和剪枝以及量化過程可以很好的壓縮模型的體量。
稀疏的神經(jīng)網(wǎng)絡(luò)模型表示可以被大幅度壓縮。目前很多神經(jīng)網(wǎng)絡(luò)性能都受制于帶寬,這意味著它們的計(jì)算性能主要取決于可用的帶寬,帶寬不足的情況下硬件需要用更多的時(shí)間將數(shù)據(jù)輸入到計(jì)算單元中。全連接層、RNN和LSTM等典型的結(jié)構(gòu)就受制于帶寬。如果能夠減小這些層所需要的帶寬就能大幅提高它們的速度。
通過修剪模型中的某些權(quán)重、核甚至是整個(gè)層實(shí)現(xiàn)減小帶寬提高速度的功能,但同時(shí)卻不影響算法最終精度的表現(xiàn),也減小了功耗和延時(shí)。最后考慮到讀寫非片上存儲(chǔ)的能耗是片上存儲(chǔ)的兩個(gè)量級(jí)以上,如果較小的模型可以保存在片上存儲(chǔ)中,可以使性能得到質(zhì)的飛躍,讓延時(shí)和能耗也隨之降低。所以同時(shí)稀疏或者壓縮表示時(shí),可以有效提升算法的表現(xiàn)。
工具框架
Distiller目前的設(shè)計(jì)與PyTorch進(jìn)行集成,其設(shè)計(jì)理念如下圖所示,PyTorch的訓(xùn)練與Distiller進(jìn)行交互。在distiller中包含了調(diào)度、算法和應(yīng)用等主要模塊以及匯總、日志的輔助功能,在很多常見的科學(xué)計(jì)算包的基礎(chǔ)上利用jupyter實(shí)現(xiàn)交互功能,基于tensorboard實(shí)現(xiàn)模型和日志信息的展示。
算法
Distiller中集成了先進(jìn)的剪枝和量化算法,幫助用戶有效的壓縮模型的體量。
剪枝算法主要分為了權(quán)重正則化、權(quán)重修剪、低精度等三種實(shí)現(xiàn)方式,7種具體的方法。
幅度剪枝利用閾值來將每一個(gè)權(quán)重進(jìn)行二值化,小于閾值的權(quán)重將被設(shè)為0,不同的層可以設(shè)置不同的權(quán)值;
敏感度剪枝與閾值的方法類似,但使用了敏感因子s與這一層的權(quán)重分布標(biāo)準(zhǔn)差σ的乘積來作為閾值。越敏感的層(靠近輸入的)設(shè)置的s就越??;
level剪枝通過設(shè)置稀疏度來實(shí)現(xiàn)剪枝,這種方法相較于前面方法穩(wěn)定,因?yàn)槟繕?biāo)的稀疏程度與元素的賦值不相關(guān)。
自動(dòng)梯度剪枝(AGP)
這種方法的稀疏度將會(huì)隨著初始稀疏和最終稀疏自適應(yīng)的變化;
RNN剪枝
結(jié)構(gòu)剪枝(通過移除整個(gè)核、濾波器甚至是整個(gè)特征圖來實(shí)現(xiàn)):包含了結(jié)構(gòu)排序剪枝和對(duì)于較少激活特征圖的激活相關(guān)剪枝。
量化也是一類重要的壓縮算法,Distall中同時(shí)也集成了四種量化算法:
DoReFa-Net: Training Low Bitwidth Convolutional Neural Networks with Low Bitwidth Gradients
PACT: Parameterized Clipping Activation for Quantized Neural Networks
WRPN: Wide Reduced-Precision Networks
對(duì)稱線性量化
安 裝
如果想要使用這個(gè)工具的小伙伴,可以到git上下載
$ git clone https://github.com/NervanaSystems/distiller.git
$ cd distiller
然后利用你喜歡的工具創(chuàng)建一個(gè)python虛擬環(huán)境
$ python3 -m virtualenv env
激活環(huán)境并安裝對(duì)應(yīng)的依賴包:
$ source env/bin/activate
$ pip3 install -r requirements.txt
注:這一版本依賴于CUDA8.0,會(huì)自動(dòng)安裝PyTorch3.1
然后就可以愉快的使用了,可以通過運(yùn)行下面的文件來熟悉工具的使用:
distiller/examples/classifier_compression/compress_classifier.py
#example
$ python3 compress_classifier.py --arch simplenet_cifar ../../../data.cifar10 -p 30 -j=1 --lr=0.01
#對(duì)于cifar10壓縮
$ time python3 compress_classifier.py -a alexnet --lr 0.005 -p 50 ../../../data.imagenet -j 44 --epochs 90 --pretrained --compress=../sensitivity-pruning/alexnet.schedule_sensitivity.yaml
#利用yaml配置文件來運(yùn)行
另外example下還有多個(gè)例子可以嘗試。
-
英特爾
+關(guān)注
關(guān)注
61文章
10196瀏覽量
174690 -
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4814瀏覽量
103622
原文標(biāo)題:英特爾推出全新可便捷實(shí)現(xiàn)「更小更快更高效的神經(jīng)網(wǎng)絡(luò)計(jì)算」的壓縮工具Distiller
文章出處:【微信號(hào):thejiangmen,微信公眾號(hào):將門創(chuàng)投】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
開售RK3576 高性能人工智能主板
神經(jīng)網(wǎng)絡(luò)壓縮框架 (NNCF) 中的過濾器修剪統(tǒng)計(jì)數(shù)據(jù)怎么查看?
將英特爾?獨(dú)立顯卡與OpenVINO?工具套件結(jié)合使用時(shí),無法運(yùn)行推理怎么解決?
英特爾推出具備高性能和能效的以太網(wǎng)解決方案

英特爾OpenVINO 2025.0正式發(fā)布

BU-67121W實(shí)驗(yàn)室航空電子接口計(jì)算機(jī)North Hills
NVIDIA推出DRIVE AI安全檢測(cè)實(shí)驗(yàn)室
英特爾推出全新英特爾銳炫B系列顯卡

英特爾發(fā)布全新企業(yè)AI一體化方案
英特爾聚焦AI座艙
Inflection AI攜手英特爾推出企業(yè)級(jí)AI系統(tǒng)
英特爾發(fā)布至強(qiáng)6性能核處理器
英特爾與百度共同為AI時(shí)代打造高性能基礎(chǔ)設(shè)施

英特爾攜手運(yùn)營商伙伴,共探AI驅(qū)動(dòng)通信網(wǎng)絡(luò)新未來

開箱即用,AISBench測(cè)試展示英特爾至強(qiáng)處理器的卓越推理性能

評(píng)論