剪枝量化初完結,蒸餾學習又上場
作者&編輯 | 言有三
1 剪枝
剪枝是一項古老的技術,從上個世紀傳承至今,在學術界和工業界相關的研究工作都是很活躍的。剪枝根據不同的粒度有很多種,小到一個卷積引數,大到一個網路層。
下面是Google關於剪枝的一個典型研究。
本文探討了具有同樣大小的稀疏大模型和稠密小模型的效能對比,在影像和語音任務上表明稀疏大模型普遍有更好的效能。
模型剪枝是一項重要的模型壓縮技術,它給網路引數帶來了稀疏性,在開源框架中可以通過和權重矩陣大小相等的掩膜來實現。
那麼,剪枝到底對效能會有什麼影響呢?首先看Inception V3模型的實驗,在稀疏性分別為0%,50%,75%,87.5%時的結果,此時模型中非零引數分別是原始模型的1,0.5,0.25,0.128倍,即實現了1,2,4,8倍的壓縮。
可以看到,在稀疏性為50%,效能幾乎不變。稀疏性為87.5%時,指標下降為2%。
上表展示了MobileNet的實驗結果,分別比較更窄的MobileNet和更加稀疏的MobileNet的結果,可以發現稀疏的MobileNet效能明顯優於稠密的MobileNet。
75%的Sparse Model比0.5倍寬的Dense Model在top-
1指標上超出了4%,而且模型更小。90%的Sparse Model比0.25倍寬的Dense Model在top-1指標上超出了10%,模型大小相當。
從這裡可以看出剪枝真的是一個非常有前途的課題,值得研究。
[1] Zhu M, Gupta S. To prune, or not to prune: exploring the efficacy of pruning for model compression[J]. arXiv preprint arXiv:1710.01878, 2017.
其他相關的內容如果感興趣可以移步有三AI知識星球。
2 量化
量化是深度學習模型在各大硬體平臺落地的重要基礎技術,從全精度到8bit及以下的相關研究和實踐都非常多。早期的研究關注在訓練後模型的權重量化,而現在更多的研究已經集中在訓練過程中同時完成量化,並且並不僅僅限制在模型的權重,而是從權重到啟用,甚至是誤差和梯度,並且開始關注混合精度量化,下面是一個典型的研究。
HAQ(Hardware-Aware Automated Quantization with Mixed Precision)是一個自動化的混合精度量化框架,使用增強學習讓每一層都學習到了適合該層的量化位寬。
不同的網路層有不同的冗餘性,因此對於精度的要求也不同,當前已經有許多的晶片開始支援混合精度。通常來說,淺層特徵提取需要更高的精度,卷積層比全連線層需要更高的精度。如果手動的去搜尋每一層的位寬肯定是不現實的,因此需要採用自動搜尋策略。
另一方面,一般大家使用FLOPS,模型大小等指標來評估模型壓縮的好壞,然後不同的平臺表現出來的差異可能很大,因此本文使用了新的指標,即晶片的延遲和功耗。
搜尋的學習過程是代理Agent接收到層配置和統計資訊作為觀察,然後輸出動作行為即權值和啟用的位寬。其中一些概念如下:
(1) 觀測值-狀態空間,一個10維變數,如下:
(2) 動作空間,使用了連續函式來決定位寬,離散的位寬如下:
(3) 反饋,利用硬體加速器來獲取延遲和能量作為反饋訊號,以指導Agent滿足資源約束。
(4) 量化,直接使用線性量化方法,其中s是縮放因子,clamp是截斷函式。
c的選擇是計算原始分佈和量化後分布的KL散度,這也是很多框架中的做法。
(5) 獎勵函式,在所有層被量化過後,再進行1個epoch的微調,並將重訓練後的驗證精度作為獎勵訊號。
(6)代理,使用了深度確定性策略梯度(DDPG)方法。
下面我們看實驗結果,這是延遲約束量化下的結果。
上圖是MobileNet-V1/V2模型在邊緣端和雲端裝置上的實驗結果,與固定的8bit量化方法相比,分別取得了1.4倍到1.95倍的加速。
上圖分別是邊緣端和雲端裝置上MobileNet-V1各個網路層的量化特點,可以發現在邊緣端裝置上depthwise卷積有更少的bits,pointwise有更多,在雲端則是完全相反。這是因為雲裝置具有更大的記憶體頻寬和更高的並行性,而depthwise就是記憶體受限的操作,pointwise則是計算受限的操作,MobileNet-V2上能觀察到同樣的特點。
另外還有能量約束和模型大小約束的結果,讀者可以讀原始論文獲取細節。
[1] Wang K, Liu Z, Lin Y, et al. HAQ: Hardware-Aware Automated Quantization with Mixed Precision[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2019: 8612-8620.
更多相關內容感興趣請移步有三AI知識星球。
3 蒸餾學習
人類學習都需要一個經驗更加豐富的老師引導,這一思想也可以更自然地遷移到深度學習模型的訓練上,即知識蒸餾(Knowledge Distilling)技術,由此引發了很多的相關研究,大佬雲集。下面是Hinton研究組最早期的經典方法。
知識蒸餾(Knowledge Distilling)是一項重要的模型壓縮技術,它將Teacher模型的知識遷移到了Student模型上,有著很廣泛的應用。
知識蒸餾法包含了一個大模型,也被稱為teacher模型,一個小模型,也被稱為student模型,teacher模型和student模型的訓練是同時進行的。
Hinton最早在文章“Distilling the knowledge in a neural network”中提出了這個概念,核心思想是一旦複雜網路模型訓練完成,便可以用另一種訓練方法從複雜模型中提取出來更小的模型。
“蒸餾”的難點在於如何縮減網路結構但保留有效資訊,文中以softmax分類為例子,T就是一個常量引數:
當T=1時,這就是softmax的定義,當T>1,稱之為soft softmax,T越大,因為Zk產生的概率差異就會越小。
文中提出這個方法用於生成軟標籤,然後將軟標籤和硬標籤同時用於新網路的學習。當訓練好一個模型之後,模型為所有的誤標籤都分配了很小的概率。然而實際上對於不同的錯誤標籤,其被分配的概率仍然可能存在數個量級的懸殊差距。這個差距,在softmax中直接就被忽略了,但這其實是一部分有用的資訊。文章的做法是先利用softmax loss訓練獲得一個大模型,然後基於大模型的softmax輸出結果獲取每一類的概率,將這個概率,作為小模型訓練時的標籤,網路結構如上圖。真實的損失函式包含了硬標籤(hard label)和軟標籤(soft label)兩部分。
MNIST和JAT資料集上的結果都驗證了該方法的有消性,如下圖:
[1] Hinton G, Vinyals O, Dean J. Distilling the knowledge in a neural network[J]. arXiv preprint arXiv:1503.02531, 2015.
https://www.toutiao.com/i6740454129195287048/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-2658424/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 模型壓縮-模型蒸餾、模型剪枝、模型量化模型
- 知識蒸餾、輕量化模型架構、剪枝…幾種深度學習模型壓縮方法模型架構深度學習
- 模型小型化:蒸餾法、剪枝模型
- 祖克伯說,Llama3-8B還是太大了,量化、剪枝、蒸餾準備上!
- 模型蒸餾的程式碼模型
- 英偉達玩轉剪枝、蒸餾:把Llama 3.1 8B引數減半,效能同尺寸更強
- ACL 2018使用知識蒸餾提高基於搜尋的結構預測
- 深度學習之雙DNN排序模型:線上知識蒸餾在愛奇藝推薦的實踐深度學習DNN排序模型
- 知識蒸餾在推薦系統的應用
- Mamba作者新作:將Llama3蒸餾成混合線性 RNNRNN
- Java工程師學習指南 完結篇Java工程師
- Java工程師學習指南(完結篇)Java工程師
- TypeScript學習文件-基礎篇(完結)TypeScript
- PAIRDISTILL: 用於密集檢索的成對相關性蒸餾方法AI
- 哈工大訊飛聯合實驗室釋出知識蒸餾工具TextBrewer
- EMNLP 2020 | 忒修斯之船啟發下的知識蒸餾新思路
- 林軒田機器學習技法課程學習筆記16(完結) — Finale機器學習筆記
- 「AutoML」如何使用強化學習進行模型剪枝?TOML強化學習模型
- 史丹佛吳佳俊擴散自蒸餾來了!突破文生圖身份保留挑戰
- 模型剪枝:剪枝粒度、剪枝標準、剪枝時機、剪枝頻率模型
- ssy中學暑假集訓向量學習筆記(應該能完結)筆記
- 上交大o1復現新突破:蒸餾超越原版,警示AI研發"捷徑陷阱"AI
- 林軒田機器學習基石課程學習筆記16(完結) — Three Learning Principles機器學習筆記
- html初學總結HTML
- Meta開發System 2蒸餾技術,Llama 2對話模型任務準確率接近100%模型
- CVPR 2022 | 這個自蒸餾新框架新SOTA,降低了訓練成本,無需修改網路框架
- 「完結」優秀的深度學習從業者都有哪些優秀的習慣深度學習
- iOS初級開發學習筆記:APP生命週期的學習總結iOS筆記APP
- 韓語學習經驗總結,給韓語初學者指路
- ICCV2021 | 簡單有效的長尾視覺識別新方案:蒸餾自監督(SSD)視覺
- 帶UI的小初高數學學習軟體——湖南大學結對程式設計總結UI程式設計
- 完結篇
- 學習Grafana初級使用Grafana
- 初識機器學習機器學習
- Numpy學習(2)numpy向量化、numpy操作
- Laravel 初學者學習點滴Laravel
- 記錄保研完後的學習
- 初學 PHP 總結建立物件PHP物件