<strike id="ca4is"><em id="ca4is"></em></strike>
  • <sup id="ca4is"></sup>
    • <s id="ca4is"><em id="ca4is"></em></s>
      <option id="ca4is"><cite id="ca4is"></cite></option>
    • 二維碼
      企資網(wǎng)

      掃一掃關(guān)注

      當(dāng)前位置: 首頁 » 企資快報 » 推廣 » 正文

      知識蒸餾_輕量化模型架構(gòu)_剪枝…幾種深度學(xué)習(xí)模

      放大字體  縮小字體 發(fā)布日期:2023-03-20 04:06:07    作者:江圣焓    瀏覽次數(shù):127
      導(dǎo)讀

      本文分享自華為云社區(qū)《深度學(xué)習(xí)模型壓縮方法綜述》,作者:嵌入式視覺 。原文詳情:https://bbs.huaweicloud.com/blogs/393867?utm_source=jinritoutiao&utm_medium=bbs-ex&utm_campaign=other&utm_content=content

      本文分享自華為云社區(qū)《深度學(xué)習(xí)模型壓縮方法綜述》,作者:嵌入式視覺 。

      原文詳情:https://bbs.huaweicloud.com/blogs/393867?utm_source=jinritoutiao&utm_medium=bbs-ex&utm_campaign=other&utm_content=content

      一、模型壓縮技術(shù)概述

      因為嵌入式設(shè)備的算力和內(nèi)存有限,因此深度學(xué)習(xí)模型需要經(jīng)過模型壓縮后,方才能部署到嵌入式設(shè)備上。

      在一定程度上,網(wǎng)絡(luò)越深,參數(shù)越多,模型也會越復(fù)雜,但其最終效果也越好。而模型壓縮算法是旨在將一個龐大而復(fù)雜的預(yù)訓(xùn)練模型轉(zhuǎn)化為一個精簡的小模型。本文介紹了卷積神經(jīng)網(wǎng)絡(luò)常見的幾種壓縮方法。

      按照壓縮過程對網(wǎng)絡(luò)結(jié)構(gòu)的破壞程度,《解析卷積神經(jīng)網(wǎng)絡(luò)》一書中將模型壓縮技術(shù)分為“前端壓縮”和“后端壓縮”兩部分:

    • 前端壓縮,是指在不改變原網(wǎng)絡(luò)結(jié)構(gòu)的壓縮技術(shù),主要包括知識蒸餾、輕量級網(wǎng)絡(luò)(緊湊的模型結(jié)構(gòu)設(shè)計)以及濾波器(filter)層面的剪枝(結(jié)構(gòu)化剪枝)等;
    • 后端壓縮,是指包括低秩近似、未加限制的剪枝(非結(jié)構(gòu)化剪枝/稀疏)、參數(shù)量化以及二值網(wǎng)絡(luò)等,目標(biāo)在于盡可能減少模型大小,會對原始網(wǎng)絡(luò)結(jié)構(gòu)造成極大程度的改造。

      總結(jié):前端壓縮幾乎不改變原有網(wǎng)絡(luò)結(jié)構(gòu)(僅僅只是在原模型基礎(chǔ)上減少了網(wǎng)絡(luò)的層數(shù)或者濾波器個數(shù)),后端壓縮對網(wǎng)絡(luò)結(jié)構(gòu)有不可逆的大幅度改變,造成原有深度學(xué)習(xí)庫、甚至硬件設(shè)備不兼容改變之后的網(wǎng)絡(luò)。其維護(hù)成本很高。

      1.1,模型壓縮技術(shù)分類

      工業(yè)界主流的模型壓縮方法有:知識蒸餾(Knowledge Distillation,KD)輕量化模型架構(gòu)(也叫緊湊的模型設(shè)計)、剪枝(Pruning)、量化(Quantization)。各個模型壓縮方法總結(jié)如下:

      二、知識蒸餾

      一個復(fù)雜模型可由多個簡單模型或者強(qiáng)約束條件訓(xùn)練得到。復(fù)雜模型特點是性能好,但其參數(shù)量大,計算效率低。小模型特點是計算效率高,但是其性能較差。知識蒸餾是讓小模型去擬合大模型,從而讓小模型學(xué)到與大模型相似的函數(shù)映射。使其保持其快速的計算速度前提下,同時擁有復(fù)雜模型的性能,達(dá)到模型壓縮的目的。模型蒸餾的關(guān)鍵在于監(jiān)督特征的設(shè)計,例如使用 Soft Target(軟標(biāo)簽 KD) 所提供的類間相似性作為依據(jù),或使用大模型的中間層特征圖或 attention map 作為暗示,對小網(wǎng)絡(luò)進(jìn)行訓(xùn)練。整體的框架圖如圖下所示。

      三、輕量化模型架構(gòu)

      關(guān)于如何手動設(shè)計輕量級網(wǎng)絡(luò)的研究,目前還沒有廣泛通用的準(zhǔn)則,只有一些指導(dǎo)思想,和針對不同芯片平臺(不同芯片架構(gòu))的一些設(shè)計總結(jié),建議大家從經(jīng)典論文中吸取指導(dǎo)思想和建議,然后自己實際做各個硬件平臺的部署和模型性能測試。

      3.1,如何設(shè)計高效CNN架構(gòu)一些結(jié)論
      1. 分析模型的推理性能得結(jié)合具體的推理平臺(常見如:英偉達(dá) GPU、移動端 ARM CPU、端側(cè) NPU 芯片等);目前已知影響 CNN 模型推理性能的因素包括: 算子計算量 FLOPs(參數(shù)量 Params)、卷積 block 的內(nèi)存訪問代價(訪存帶寬)、網(wǎng)絡(luò)并行度等。但相同硬件平臺、相同網(wǎng)絡(luò)架構(gòu)條件下, FLOPs 加速比與推理時間加速比成正比。
      2. 建議對于輕量級網(wǎng)絡(luò)設(shè)計應(yīng)該考慮直接 metric(例如速度 speed),而不是間接 metric(例如 FLOPs)。
      3. FLOPs 低不等于 latency 低,尤其是在有加速功能的硬體 (GPU、DSP 與 TPU)上不成立,得結(jié)合具硬件架構(gòu)具體分析。
      4. 不同網(wǎng)絡(luò)架構(gòu)的 CNN 模型,即使是 FLOPs 相同,但其 MAC 也可能差異巨大。
      5. Depthwise 卷積操作對于流水線型 CPU、ARM 等移動設(shè)備更友好,對于并行計算能力強(qiáng)的 GPU 和具有加速功能的硬件(專用硬件設(shè)計-NPU 芯片)上比較沒有效率。Depthwise 卷積算子實際上是使用了大量的低 FLOPs、高數(shù)據(jù)讀寫量的操作。因為這些具有高數(shù)據(jù)讀寫量的操作,再加上多數(shù)時候 GPU 芯片算力的瓶頸在于訪存帶寬,使得模型把大量的時間浪費在了從顯存中讀寫數(shù)據(jù)上,從而導(dǎo)致 GPU 的算力沒有得到“充分利用”。結(jié)論來源知乎文章-FLOPs與模型推理速度和論文 G-GhostNet。
      一些建議
      1. 在大多數(shù)的硬件上,channel 數(shù)為 16 的倍數(shù)比較有利高效計算。如海思 351x 系列芯片,當(dāng)輸入通道為 4 倍數(shù)和輸出通道數(shù)為 16 倍數(shù)時,時間加速比會近似等于 FLOPs 加速比,有利于提供 NNIE 硬件計算利用率。(來源海思 351X 芯片文檔和 MobileDets 論文)
      2. 低 channel 數(shù)的情況下 (如網(wǎng)路的前幾層),在有加速功能的硬件使用普通 convolution 通常會比 separable convolution 有效率。(來源 MobileDets 論文)
      3. shufflenetv2 論文 提出的四個高效網(wǎng)絡(luò)設(shè)計的實用指導(dǎo)思想: G1同樣大小的通道數(shù)可以最小化 MAC、G2-分組數(shù)太多的卷積會增加 MAC、G3-網(wǎng)絡(luò)碎片化會降低并行度、G4-逐元素的操作不可忽視。
      4. GPU 芯片上3×3 卷積非常快,其計算密度(理論運算量除以所用時間)可達(dá)1×1 和5×5 卷積的四倍。(來源 RepVGG 論文)
      5. 從解決梯度信息冗余問題入手,提高模型推理效率。比如 CSPNet 網(wǎng)絡(luò)。
      6. 從解決 DenseNet 的密集連接帶來的高內(nèi)存訪問成本和能耗問題入手,如 VoVNet 網(wǎng)絡(luò),其由 OSA(One-Shot Aggregation,一次聚合)模塊組成。
      3.2,輕量級模型部署總結(jié)

      在閱讀和理解經(jīng)典的輕量級網(wǎng)絡(luò) mobilenet 系列、MobileDets、shufflenet 系列、cspnet、vovnet、repvgg 等論文的基礎(chǔ)上,做了以下總結(jié):

      1. 低算力設(shè)備-手機(jī)移動端 cpu 硬件,考慮 mobilenetv1(深度可分離卷機(jī)架構(gòu)-低 FLOPs)、低 FLOPs 和 低MAC的shuffletnetv2(channel_shuffle 算子在推理框架上可能不支持)
      2. 專用 asic 硬件設(shè)備-npu 芯片(地平線 x3/x4 等、海思 3519、安霸cv22 等),分類、目標(biāo)檢測問題考慮 cspnet 網(wǎng)絡(luò)(減少重復(fù)梯度信息)、repvgg2(即 RepOptimizer: vgg 型直連架構(gòu)、部署簡單)
      3. 英偉達(dá) gpu 硬件-t4 芯片,考慮 repvgg 網(wǎng)絡(luò)(類 vgg 卷積架構(gòu)-高并行度有利于發(fā)揮 gpu 算力、單路架構(gòu)省顯存/內(nèi)存,問題: INT8 PTQ 掉點嚴(yán)重)

      MobileNet block (深度可分離卷積 block, depthwise separable convolution block)在有加速功能的硬件(專用硬件設(shè)計-NPU 芯片)上比較沒有效率。

      這個結(jié)論在 CSPNet 和 MobileDets 論文中都有提到。

      除非芯片廠商做了定制優(yōu)化來提高深度可分離卷積 block 的計算效率,比如地平線機(jī)器人 x3 芯片對深度可分離卷積 block 做了定制優(yōu)化。

      下表是 MobileNetv2 和 ResNet50 在一些常見 NPU 芯片平臺上做的性能測試結(jié)果。

      以上,均是看了輕量級網(wǎng)絡(luò)論文總結(jié)出來的一些不同硬件平臺部署輕量級模型的經(jīng)驗,實際結(jié)果還需要自己手動運行測試。

      四、模型剪枝

      深度學(xué)習(xí)模型中一般存在著大量冗余的參數(shù),將權(quán)重矩陣中相對“不重要”的權(quán)值剔除(即置為 0),可達(dá)到降低計算資源消耗和提高實時性的效果,而對應(yīng)的技術(shù)則被稱為模型剪枝。

      圖片來源論文Han et al. Learning both Weights and Connections for Efficient Neural Networks, NIPS 2015

      剪枝算法步驟:

      1. 正常訓(xùn)練模型;
      2. 模型剪枝;
      3. 重新訓(xùn)練模型

      以上三個步驟反復(fù)迭代進(jìn)行,直到模型精度達(dá)到目標(biāo),則停止訓(xùn)練。

      模型剪枝算法根據(jù)粒度的不同,可以粗分為4種粒度:

      1. 細(xì)粒度剪枝(fine-grained):對連接或者神經(jīng)元進(jìn)行剪枝,它是粒度最小的剪枝。
      2. 向量剪枝(vector-level):它相對于細(xì)粒度剪枝粒度更大,屬于對卷積核內(nèi)部(intra-kernel)的剪枝。
      3. 核剪枝(kernel-level):去除某個卷積核,它將丟棄對輸入通道中對應(yīng)計算通道的響應(yīng)。
      4. 濾波器剪枝(Filter-level):對整個卷積核組進(jìn)行剪枝,會造成推理過程中輸出特征通道數(shù)的改變。
      五、模型量化

      模型量化是指將神經(jīng)網(wǎng)絡(luò)的浮點算法轉(zhuǎn)換為定點。量化有一些相似的術(shù)語,低精度(Low precision)可能是常見的。

    • 低精度模型表示模型權(quán)重數(shù)值格式為 FP16(半精度浮點)或者 INT8(8位的定點整數(shù)),但是目前低精度往往就指代 INT8。
    • 常規(guī)精度模型則一般表示模型權(quán)重數(shù)值格式為 FP32(32位浮點,單精度)。
    • 混合精度(Mixed precision)則在模型中同時使用 FP32 和 FP16 的權(quán)重數(shù)值格式。 FP16 減少了一半的內(nèi)存大小,但有些參數(shù)或操作符必須采用 FP32 格式才能保持準(zhǔn)確度。

      模型量化過程可以分為兩部分:將模型從 FP32 轉(zhuǎn)換為 INT8(即量化算術(shù)過程),以及使用 INT8 進(jìn)行推理。

      5.1,模型量化的方案

      在實踐中將浮點模型轉(zhuǎn)為量化模型的方法有以下三種方法:

      1. data free:不使用校準(zhǔn)集,傳統(tǒng)的方法直接將浮點參數(shù)轉(zhuǎn)化成量化數(shù),使用上非常簡單,但是一般會帶來很大的精度損失,但是高通最新的論文 DFQ 不使用校準(zhǔn)集也得到了很高的精度。
      2. calibration:基于校準(zhǔn)集方案,通過輸入少量真實數(shù)據(jù)進(jìn)行統(tǒng)計分析。很多芯片廠商都提供這樣的功能,如 tensorRT、高通、海思、地平線、寒武紀(jì)
      3. finetune:基于訓(xùn)練 finetune 的方案,將量化誤差在訓(xùn)練時仿真建模,調(diào)整權(quán)重使其更適合量化。好處是能帶來更大的精度提升,缺點是要修改模型訓(xùn)練代碼,開發(fā)周期較長。

      按照量化階段的不同,量化方法分為以下兩種:

    • Post-training quantization PTQ(訓(xùn)練后量化、離線量化);
    • Quantization-aware training QAT(訓(xùn)練時量化,偽量化,在線量化)。5.2,量化的分類

      目前已知的加快推理速度概率較大的量化方法主要有:

      1. 二值化,其可以用簡單的位運算來同時計算大量的數(shù)。對比從 nvdia gpu 到 x86 平臺,1bit 計算分別有 5 到128倍的理論性能提升。且其只會引入一個額外的量化操作,該操作可以享受到 SIMD(單指令多數(shù)據(jù)流)的加速收益。
      2. 線性量化(最常見),又可細(xì)分為非對稱,對稱和 ristretto 幾種。在 nvdia gpu,x86、arm 和 部分 AI 芯片平臺上,均支持 8bit 的計算,效率提升從 1 倍到 16 倍不等,其中 tensor core 甚至支持 4bit計算,這也是非常有潛力的方向。線性量化引入的額外量化/反量化計算都是標(biāo)準(zhǔn)的向量操作,因此也可以使用 SIMD 進(jìn)行加速,帶來的額外計算耗時不大。
      3. 對數(shù)量化,一種比較特殊的量化方法。兩個同底的冪指數(shù)進(jìn)行相乘,那么等價于其指數(shù)相加,降低了計算強(qiáng)度。同時加法也被轉(zhuǎn)變?yōu)樗饕嬎恪D壳?nvdia gpu,x86、arm 三大平臺上沒有實現(xiàn)對數(shù)量化的加速庫,但是目前已知海思 351X 系列芯片上使用了對數(shù)量化。
      六、壓縮方法總結(jié)
      1. 一般情況下,參數(shù)剪枝,特別是非結(jié)構(gòu)化剪枝,能大大壓縮模型大小,且不容易丟失分類精度。對于需要穩(wěn)定的模型分類的應(yīng)用,非結(jié)構(gòu)化剪枝成為首要選擇。
      2. 如果需要一次性端對端訓(xùn)練得到壓縮與加速后模型,可以利用基于緊性濾波設(shè)計的深度神經(jīng)網(wǎng)絡(luò)壓縮與加速方法。
      3. 影響神經(jīng)網(wǎng)絡(luò)推理速度主要有 4 個因素:FLOPs、MAC、計算并行度、硬件平臺架構(gòu)與特性(算力、GPU內(nèi)存帶寬)。
      參考資料
      1. 深度學(xué)習(xí)模型壓縮與加速
      2. Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman Coding

      關(guān)注#華為云開發(fā)者聯(lián)盟#,第一時間了解華為云新鮮技術(shù)~

    •  
      (文/江圣焓)
      免責(zé)聲明
      本文僅代表作發(fā)布者:江圣焓個人觀點,本站未對其內(nèi)容進(jìn)行核實,請讀者僅做參考,如若文中涉及有違公德、觸犯法律的內(nèi)容,一經(jīng)發(fā)現(xiàn),立即刪除,需自行承擔(dān)相應(yīng)責(zé)任。涉及到版權(quán)或其他問題,請及時聯(lián)系我們刪除處理郵件:weilaitui@qq.com。
       

      Copyright ? 2016 - 2025 - 企資網(wǎng) 48903.COM All Rights Reserved 粵公網(wǎng)安備 44030702000589號

      粵ICP備16078936號

      微信

      關(guān)注
      微信

      微信二維碼

      WAP二維碼

      客服

      聯(lián)系
      客服

      聯(lián)系客服:

      在線QQ: 303377504

      客服電話: 020-82301567

      E_mail郵箱: weilaitui@qq.com

      微信公眾號: weishitui

      客服001 客服002 客服003

      工作時間:

      周一至周五: 09:00 - 18:00

      反饋

      用戶
      反饋

      午夜久久久久久网站,99久久www免费,欧美日本日韩aⅴ在线视频,东京干手机福利视频
        <strike id="ca4is"><em id="ca4is"></em></strike>
      • <sup id="ca4is"></sup>
        • <s id="ca4is"><em id="ca4is"></em></s>
          <option id="ca4is"><cite id="ca4is"></cite></option>
        • 主站蜘蛛池模板: 欧美午夜理伦三级在线观看| 91最新高端约会系列178| 色吊丝二区三区中文字幕| 日韩精品中文字幕在线| 国产理论视频在线观看| 亚洲欧洲日产国码www| 99久9在线|免费| аⅴ中文在线天堂| 久草视频在线免费| 欧美人与性动交另类| 国产精品一线二线三线| 亚洲另类欧美日韩| 一个人www免费看的视频 | 狠狠精品久久久无码中文字幕| 好男人在线社区www在线观看视频| 动漫人物将机机插曲3d版视频| 一本大道久久东京热无码AV| 粗大的内捧猛烈进出在线视频| 奇米影视7777久久精品| 亚洲风情亚aⅴ在线发布| 久久久久99精品成人片直播| 色综合久久天天综线观看| 日产乱码一卡二卡三免费| 国产69精品久久久久9999| 久久精品国产精品亚洲毛片| 香蕉大视频在线播放持久| 日本xxxx在线| 又粗又硬又大又爽免费观看| ririai66在线观看视频| 污污在线免费观看| 强挺进小y头的小花苞漫画| 免费人成在线观看视频播放| 中文在线第一页| 男女肉粗暴进来120秒动态图| 在线日韩理论午夜中文电影| 亚洲愉拍一区二区三区| 欧美三级香港三级日本三级| 日本不卡在线播放| 免费无遮挡无码永久在线观看视频| 91麻豆国产福利精品| 最近最新中文字幕2018|