自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

神經(jīng)網(wǎng)絡(luò)中的量化與蒸餾

人工智能 深度學習
深度學習模型,特別是那些具有大量參數(shù)的模型,在資源受限環(huán)境中的部署幾乎是不可能的。所以就出現(xiàn)了兩種流行的技術(shù),量化和蒸餾,它們都是可以使模型更加輕量級,而不會對性能造成太大影響。但是它們需要什么,它們又如何比較呢?

本文將深入研究深度學習中精簡模型的技術(shù):量化和蒸餾

深度學習模型,特別是那些具有大量參數(shù)的模型,在資源受限環(huán)境中的部署幾乎是不可能的。所以就出現(xiàn)了兩種流行的技術(shù),量化和蒸餾,它們都是可以使模型更加輕量級,而不會對性能造成太大影響。但是它們需要什么,它們又如何比較呢?

量化:犧牲精度換取效率

量化是關(guān)于數(shù)字精度的。通過減少模型中權(quán)重和激活的位寬度,縮小模型大小,從而潛在地提高推理速度。

神經(jīng)網(wǎng)絡(luò)有相互連接的神經(jīng)元,每個神經(jīng)元都有在訓練過程中調(diào)整的權(quán)重和偏差。這些參數(shù)值一般存儲在32位浮點數(shù)中,這樣雖然保證了精度,但占用了大量內(nèi)存。例如,一個50層的ResNet需要168MB來存儲2600萬32位權(quán)重值和1600萬32位激活值。

量化旨在通過使用較低的位數(shù)(如8位整數(shù))來表示權(quán)重和激活,來減少內(nèi)存占用。但這引入了量化誤差,所以量化的目標是在精度和內(nèi)存使用之間取得平衡。像每通道量化、隨機舍入和再訓練這樣的先進技術(shù)可以最大限度地減少對模型精度的影響。

最常見的兩種量化情況是:float32 -> float16和float32 -> int8。

量化背后的數(shù)學理論:

上面公式提供了一種將實數(shù)轉(zhuǎn)換為量化整數(shù)的簡單且計算效率高的方法,使其成為許多量化方案中的流行選擇。

如何量化機器學習模型?

訓練后量化:這就像用一支普通的筆寫整本書,在你寫完之后,用一支更好的更細筆重寫它,使它更小。你不需要改變故事的任何內(nèi)容;只要把字改小一點就行了。這是非常容易的,但有時較小的文字可能更難閱讀(這意味著神經(jīng)網(wǎng)絡(luò)的準確性可能會下降)。

量化感知訓練:這就像從一開始就用一支好筆寫書。當你寫的時候,你會意識到字母應(yīng)該有多小,所以你會在寫的時候調(diào)整你的寫作風格。這樣最終小版本從一開始就更容易閱讀,因為你一直在為小版本的書進行考慮(這意味著神經(jīng)網(wǎng)絡(luò)從一開始就被訓練成可以很好地與更小的量化版本一起工作)。

在這兩種情況下,目標都是使書(或神經(jīng)網(wǎng)絡(luò))更小、更高效,同時又不失去故事的本質(zhì)(或網(wǎng)絡(luò)的準確性)。

優(yōu)點:

  • 減小模型大小:例如,從32位浮點數(shù)轉(zhuǎn)換為8位整數(shù)可以將模型大小減小四倍。
  • 速度和硬件兼容性:在特定的硬件加速器上,低精度的算法可以更快。
  • 內(nèi)存效率:更少的數(shù)據(jù)意味著更少的內(nèi)存帶寬需求。

缺點

  • 準確性權(quán)衡:較低的精度有時會影響模型性能。
  • 實現(xiàn)挑戰(zhàn):量化,特別是量化感知訓練,可能會很棘手。

蒸餾:老師到學生傳遞知識

蒸餾包括訓練一個較小的神經(jīng)網(wǎng)絡(luò)(稱為學生)來模仿一個更大的預訓練網(wǎng)絡(luò)(即教師)。

下面的舉例我們都以書籍寫作為例,這樣可以更加清晰

從廣義上講,蒸餾有三種類型的分類:

離線蒸餾:一個作家正在從一本已經(jīng)出版的成功的書中學習。出版的書(教師模型)是完整和固定的。新作者(學生模式)從這本書中學習,試圖根據(jù)所獲得的見解寫出自己的作品。在神經(jīng)網(wǎng)絡(luò)的背景下,這就像使用一個經(jīng)過充分訓練的、復雜的神經(jīng)網(wǎng)絡(luò)來訓練一個更簡單、更有效的網(wǎng)絡(luò)。學生網(wǎng)絡(luò)從教師的既定知識中學習,而不修改它。

在線蒸餾:想象一個有作家和一個經(jīng)驗豐富的作家同時寫他們的書。當經(jīng)驗豐富的作者開發(fā)新的章節(jié)(更新教師模型)時,新作者也會編寫他們的章節(jié)(更新學生模型),并在此過程中向經(jīng)驗豐富的作者學習。這兩本書同時寫作,兩個作者的作品相互啟發(fā)。在神經(jīng)網(wǎng)絡(luò)中,這意味著同時訓練教師和學生模型,讓他們一起學習和適應(yīng),增強學生模型的學習過程。

自蒸餾:一本書作者既是老師又是學生。他以目前的技能水平開始寫書。當他獲得新的見解并提高寫作水平時,會修改前面的章節(jié)。這是一種自學習的模式,作者根據(jù)自己不斷發(fā)展的理解不斷完善自己的作品。在神經(jīng)網(wǎng)絡(luò)中,這種方法涉及單個網(wǎng)絡(luò)學習和自我改進,使用其更高級的層或后期的訓練來增強其較早的層或初始階段,有效地教會自己變得更高效和準確。

蒸餾背后的數(shù)學理論:

精餾的目的是盡量減少教師預測和學生預測之間的差異。這種散度最常用的度量是Kullback-Leibler散度:

優(yōu)點

  • 大小靈活性:學生模型的架構(gòu)或大小可以定制,從而在大小和性能之間提供平衡。
  • 精度更好:一個訓練有素的學生模型可以達到接近老師的成績,并且更小。

缺點

  • 再訓練是必須的:與量化不同,蒸餾要求對學生模型進行再訓練
  • 訓練開銷:訓練學生模型需要時間和計算資源。

總結(jié)

量化通常在特定于硬件的部署中找到它的位置,而精餾則是在需要性能接近大型對應(yīng)模型的輕量級模型時需要的方法。在許多情況下,兩者可以結(jié)合——提煉一個模型,然后量化它——可以帶來兩個方法的好處。將選擇與部署需求、可用資源以及在準確性和效率方面的可接受權(quán)衡相結(jié)合是至關(guān)重要的。

責任編輯:華軒 來源: DeepHub IMBA
相關(guān)推薦

2024-12-02 01:10:04

神經(jīng)網(wǎng)絡(luò)自然語言DNN

2025-03-31 08:50:00

模型量化神經(jīng)網(wǎng)絡(luò)AI

2023-06-18 23:00:39

神經(jīng)網(wǎng)絡(luò)損失函數(shù)隨機變量

2017-11-30 18:05:18

2017-09-10 07:07:32

神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)集可視化

2024-06-28 08:15:02

2024-07-10 11:09:35

2024-06-11 08:19:34

2018-07-03 16:10:04

神經(jīng)網(wǎng)絡(luò)生物神經(jīng)網(wǎng)絡(luò)人工神經(jīng)網(wǎng)絡(luò)

2025-03-07 08:00:00

LLM蒸餾和量化大模型

2020-08-20 07:00:00

深度學習人工智能技術(shù)

2019-10-08 15:39:54

人工智能損失函數(shù)網(wǎng)絡(luò)

2025-02-25 14:13:31

2017-05-31 13:23:41

神經(jīng)網(wǎng)絡(luò)深度學習

2020-08-06 10:11:13

神經(jīng)網(wǎng)絡(luò)機器學習算法

2023-05-12 14:58:50

Java神經(jīng)網(wǎng)絡(luò)深度學習

2023-04-07 09:18:33

AI神經(jīng)網(wǎng)絡(luò)

2017-04-26 14:32:24

神經(jīng)網(wǎng)絡(luò)人工智能對杭樣本

2018-03-21 10:14:38

JavaScript交叉GPU

2018-11-28 15:39:21

人工神經(jīng)嵌入式SDK
點贊
收藏

51CTO技術(shù)棧公眾號