日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

深度学习模型如何缩小到可以放到微处理器呢?

發(fā)布時間:2025/3/8 pytorch 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度学习模型如何缩小到可以放到微处理器呢? 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

深度學(xué)習(xí)模型如何縮小到可以放到微處理器呢?作為煉丹師,模型變的越來越復(fù)雜,模型大小也不斷增加.在工業(yè)場景下光訓(xùn)練數(shù)據(jù)就有幾百T,訓(xùn)練就要多機多卡并行跑數(shù)天.到底如何把這些模型部署在小型嵌入式設(shè)備的呢?

要理解我們?nèi)绾慰s小模型,就要先理解模型文件如何被壓縮.如下圖所示,一個常見的DNN模型由神經(jīng)元和它們之間的連接構(gòu)成,模型的大小主要就是由這些weights構(gòu)成.一個簡單的CNN都有上百萬的參數(shù),我們知道訓(xùn)練的時候,它們的dtype都是float32,一個float32占4個字節(jié),上百萬的參數(shù)往往就占據(jù)幾十兆的空間大小.幾十兆的模型?我們可能覺得這已經(jīng)很小了,但是一個微型處理器就只有256Kb的隨機存儲器.

為了把模型縮小到可以塞到這么小的處理器中,有以下幾個框架:

  • AIMET from Qualcomm
  • TensorFlow Lite from Google
  • CoreML from Apple
  • PyTorch Mobile from Facebook

tensorflow提供一個python庫tensorflow_model_optimization,這個庫優(yōu)化模型的延遲,大小.直觀上,優(yōu)化模型大小,一個就是優(yōu)化參數(shù)的數(shù)量,另一個就是優(yōu)化每個參數(shù)的大小.主要的方式就是以下幾種.

Compression or Distillation

模型訓(xùn)練完成后,如何在準確率可接受的情況下壓縮模型,最常見的方式就是剪枝和蒸餾.

剪枝-刪除對輸出影響較低或者可能會引起過擬合的weights,再剪枝后稀疏的神經(jīng)網(wǎng)絡(luò)需要重新被訓(xùn)練.蒸餾煉丹師都比較熟悉了,用小模型去學(xué)習(xí)打模型即可.

Quantisation

該方法用低精度的參數(shù)去學(xué)習(xí)一個同樣效果的模型,這種方式提升了模型的處理能力和效率.這種方法主要是把float壓縮到int8上,如下圖所示:

Quantisation Aware Training(QAT) 這個方式是在模型訓(xùn)練過程中使用量化,如下圖所示,該方法會帶來噪聲也會影響loss,所以學(xué)到的模型更加魯棒.

Post-Training Quantisation (PTQ) 該方法不用重訓(xùn)練模型,直接把float32量化到int8,這樣直接把模型大小降低了4倍,預(yù)估性能也提升了兩倍,精度也沒有顯著下降.

weight clustering 使用權(quán)重聚類/共享,降低了存儲參數(shù)的數(shù)量,該方法把一層的參數(shù)聚成N個類,并共享索引,舉例來說,如果我們把一層聚成8個類,每個參數(shù)都會只占3bit(2^3 = 8).從實驗我們可以看到,使用該方法可以降低模型大小6倍,僅僅降低了0.6%的準確率.我們還可以通過fine-tune聚類的中心點,來提升模型精度.

Encoding

通過使用霍夫曼編碼對模型進行壓縮,使用01編碼weights,把最常出現(xiàn)的權(quán)重用較少的bit去編碼,如下圖所示,我們有已經(jīng)被量化的權(quán)重矩陣:

每個權(quán)重占5bit(0~31),如果使用霍夫曼編碼,我們就會得到下面這顆樹:

17會被編碼成11,22編碼為001,可以看到權(quán)重通過編碼顯著被壓縮.

Compilation

剩下的就是工程上的優(yōu)化了,如使用C++,相較于python更快更省內(nèi)存.

參考文獻

1.github.com/quic/aimet

2.tensorflow.org/lite

3.developer.apple.com/doc

4.pytorch.org/mobile/home

5.medium.com/marionete/ti

"微"模型

總結(jié)

以上是生活随笔為你收集整理的深度学习模型如何缩小到可以放到微处理器呢?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。