成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

提高深度學習模型效率的三種模型壓縮方法

譯文 精選
人工智能
模型壓縮是深度學習模型實時部署的關鍵組成部分,本文探討了提高深度學習模型效率的不同方法。

譯者 | 李睿

審校 | 重樓

近年來,深度學習模型在自然語言處理(NLP)和計算機視覺基準測試中的性能穩步提高。雖然這些收益的一部分來自架構和學習算法的改進,但數據集大小和模型參數的增長是重要的驅動因素。

下圖顯示了top-1 ImageNet分類精度作為GFLOPS的函數,GFLOPS可以用作模型復雜性的指標。

擴大數據規模和模型復雜性增加似乎是主要趨勢,擁有數十億個甚至萬億個參數的模型并不罕見。雖然這些大型模型具有令人印象深刻的性能,但這些模型的龐大規模使得它不可能用于邊緣設備或延遲關鍵的應用程序。

這正是模型壓縮發揮作用的地方。模型壓縮的目標是減少模型的參數數量和/或延遲,同時力求將對模型性能的負面影響降至最低。雖然有一些方法,但它們可以分為三大類:

  • 剪枝(Pruning)
  • 量化(Quantization)
  • 知識蒸餾(KD)

雖然還有其他方法(例如低秩張量分解),但本文不涵蓋這些方法。以下詳細討論這三種主要技術。

剪枝

通過剪枝,可以從神經網絡中移除不太重要的權重(神經元連接)或層,從而使模型變得更小。一個簡單的策略是,如果某個神經元連接的權重低于某個閾值,則將其移除。這被稱為權重剪枝,它確保移除的是冗余的連接或者是對最終結果影響不大的連接。

同樣,可以根據神經元重要性的一些指標來移除神經元本身,例如輸出權重的L2范數。這被稱為神經元剪枝,通常比權重剪枝更有效。

與節點剪枝相比,權值剪枝會導致稀疏網絡,這在GPU等硬件上很難優化。雖然它會減少內存占用和FLOPS,但可能不會降低延遲。剪枝的思想也可以擴展到卷積神經網絡(CNN),其中過濾器/內核的相對重要性可以根據其L1/L2范數來確定,并且只能保留重要的過濾器。在實踐中,剪枝是一個迭代過程,將在剪枝和微調模型之間交替進行。

使用這種方法,可以在性能下降最小的情況下,將網絡參數減少50%以上,如下圖所示:

量化

基于量化的模型壓縮背后的主要思想是降低模型權重的精度,以減少內存和延遲。通常情況下,深度學習模型在訓練期間或訓練后將其權重存儲為32位浮點數(FP32)。通過量化,這些權重通常被轉換為16位(FP16)或8位(INT8)精度,以便在運行時部署。

量化可以分為兩類:

訓練后量化(PTQ)

這涉及到訓練后權重和激活的量化,并通過一個稱為校準的過程來實現。該過程的目標是在最小化信息損失的同時,找出從原始到目標精度的映射。為了實現這一點,使用數據集中的一組樣本,并在模型上運行推理,跟蹤模型中不同激活的動態范圍,以確定映射函數。

量化感知訓練(QAT)

使用較低精度權重和激活進行訓練的主要問題是沒有正確定義梯度,因此無法進行反向傳播。為了使用QAT解決這個問題,該模型模擬了前向傳播過程中的目標精度,但使用后向傳播的原始精度來計算梯度。

雖然PTQ易于實施并且無需重新訓練模型,但它可能會導致性能下降。另一方面,QAT與PTQ相比通常具有更高的準確性,但其實施起來不那么容易,并且會增加訓練代碼的復雜性。

從數學的角度來看,給定權重/激活的量化和校準涉及確定兩個值:比例因子和零點。假設想要將FP32轉換為INT8:

Python 
1 # max_int for INT8 would be 255 and min_int 0
2 # max_float, min_float are deteremined in the calibration process
3 scale = (max_float - min_float) / (max_int - min_int)
4
5 # to allow for both positive and negative values to be quantized
6 zero_point = round((0 - min_float) / scale)
7
8 int8_value = round(fp32_value / scale) + zero_point

知識蒸餾(KD)

顧名思義,知識蒸餾(KD)試圖將原始模型(在這種情況下稱為教師模型)中的知識提煉或轉移到一個較小的模型(可以稱之為學生模型)中。實現這一目標的方法有多種,但最常見的方法是嘗試使教師模型的輸出或中間特征表示與學生模型相匹配。有趣的是,使用真實標簽和教師模型輸出的軟標簽組合訓練的學生模型,其性能優于僅使用真實標簽訓練的學生模型,有時甚至能達到教師模型的性能。對于這種行為的一種假設是,由于軟標簽包含比真實標簽(硬標簽,例如zero-shot)更多的信息,它有助于學生模型更好地泛化。

知識蒸餾是一種更靈活的模型壓縮技術,因為生成的模型可以具有與原始模型不同的架構,并且與剪枝或量化相比,具有更大的內存和延遲減少潛力。然而,它也是訓練最復雜的技術,因為它涉及訓練教師模型,然后設計和訓練學生模型。

結論

在實踐中,通常將多種壓縮技術結合在一起(例如,知識蒸餾之后PTQ或剪枝)來實現所需的壓縮和準確性結果。
原文標題:Model Compression: Improving Efficiency of Deep Learning Models,作者:Inderjot Singh Saggu

責任編輯:姜華 來源: 51CTO內容精選
相關推薦

2023-11-19 23:36:50

2016-12-06 09:06:08

深度學習算法性能

2023-04-10 11:22:34

CIOIT運營成本

2013-05-07 09:39:14

軟件定義網絡SDNOpenFlow

2015-07-01 09:17:29

數據中心數據中心模型

2016-06-12 10:37:32

云計算私有云公有云

2020-09-23 10:20:02

深度學習GPU人工智能

2025-02-17 13:09:59

深度學習模型壓縮量化

2023-08-04 10:35:48

物聯網安全

2022-04-18 16:13:44

物聯網可靠性物聯網IOT

2022-09-14 10:19:39

物聯網LOT

2020-06-23 09:52:31

運營效率首席信息官IT預算

2023-05-09 11:13:09

IO模型語言

2021-11-11 11:24:54

JavaScript模型事件

2025-03-19 10:22:09

JavaScript編程語言開發

2022-02-16 07:00:00

機器學習特征選擇過濾法

2020-03-20 11:49:20

Linux命令技巧

2024-09-11 14:57:00

Redis消費線程模型

2025-02-24 08:00:28

2021-10-14 10:45:57

云計算SaaSPaaS
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区二区三区四区国产 | 黄色国产 | 色狠狠一区 | 欧美综合视频在线 | av一级在线观看 | 亚洲二区视频 | 精品一区视频 | 欧美xxxx色视频在线观看免费 | 无码一区二区三区视频 | 亚洲高清av在线 | 免费成人高清在线视频 | 成人亚洲视频 | 日本不卡一区二区三区在线观看 | 色网在线看| 欧美成人hd | 国产亚洲精品久久久优势 | 成人天堂| 成人在线小视频 | 日本在线视频一区二区 | 天天爽夜夜爽精品视频婷婷 | 欧美不卡一区 | 91精品国产一区二区三区 | 奇色影视| av资源在线看 | 99精品久久久久久 | 国精产品一品二品国精在线观看 | 一区二区日韩 | 五月婷婷丁香 | 91精品国产一区二区 | 久亚州在线播放 | 亚洲国产精品久久久久久 | 国产麻豆一区二区三区 | 久久综合狠狠综合久久综合88 | 国产一区二区电影网 | www.亚洲区 | 99热视| 久久一区二区三区四区五区 | 免费一级做a爰片久久毛片潮喷 | 一二三四在线视频观看社区 | 91国在线视频 | 国产高清无av久久 |