偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

性能不打折,內(nèi)存占用減少90%,F(xiàn)acebook提出模型壓縮方法Quant-Noise

新聞 人工智能
最近,來自 Facebook AI 的研究者提出了一種新的模型量化壓縮技術(shù) Quant-Noise,讓神經(jīng)網(wǎng)絡在不降低性能的前提下,內(nèi)存占用減少 90% 以上。

對于動輒上百 M 大小的神經(jīng)網(wǎng)絡來說,模型壓縮能夠減少它們的內(nèi)存占用、通信帶寬和計算復雜度等,以便更好地進行應用部署。最近,來自 Facebook AI 的研究者提出了一種新的模型量化壓縮技術(shù) Quant-Noise,讓神經(jīng)網(wǎng)絡在不降低性能的前提下,內(nèi)存占用減少 90% 以上。

[[324224]]

我們都知道,對于神經(jīng)網(wǎng)絡來說,參數(shù)量越大、層數(shù)越多,就代表著輸出的結(jié)果越精細。當然,這也意味著許多性能優(yōu)越的神經(jīng)網(wǎng)絡體積會非常龐大。比如當前的標準機器翻譯架構(gòu) Transformer,一層就可能包含數(shù)百萬個參數(shù)。即使是一些優(yōu)化過性能和參數(shù)效率的模型(比如 EfficientNet),也仍然需要幾十到幾百 MB。這就使得它們的應用范圍限制在機器人或者虛擬助手等領域。

所以我們在應用部署之前,必須面對一個問題:如何對模型進行壓縮?

剪枝和蒸餾是模型壓縮中常用的兩種方法,通過減少網(wǎng)絡權(quán)重的數(shù)量來刪減參數(shù)。還有一種方法就是「量化」,不同的是,它是通過減少每個權(quán)重的比特數(shù)來壓縮原始網(wǎng)絡。

標量量化(scalar quantization)等流行的后處理量化方法是讓訓練網(wǎng)絡的浮點權(quán)重以一個低精度表征去表示,比如說定寬整數(shù)。這些后處理量化方法的好處在于壓縮效率很高,并且能夠加速支持硬件上的推理。但缺點在于,這些近似值造成的誤差會在前向傳播的計算過程中不斷累積,最終導致性能顯著下降。

現(xiàn)在,來自 Facebook 的研究者提出了一種新的模型量化壓縮技術(shù) Quant-Noise,可對模型進行極致壓縮,同時在實際應用部署時保持高性能。

  • 論文地址:https://arxiv.org/abs/2004.07320
  • 項目地址:https://github.com/pytorch/fairseq/tree/master/examples/quant_noise

在這項研究中,研究者提出了一種僅量化權(quán)重子集而非整個網(wǎng)絡的壓縮方案。在每次前向傳播時僅量化網(wǎng)絡的隨機部分,對大多數(shù)權(quán)重使用無偏梯度進行更新。

該方法可以在訓練過程中采用更簡單的量化方案,這對于具有可訓練參數(shù)的量化模塊來說是非常有用的,比如乘積量化(Product Quantizer,PQ)算法。

性能不打折,内存占用减少90%,Facebook提出极致模型压缩方法Quant-Noise

總體來說,該方法的亮點在于:

  1. 將名為「Quant-Noise」的量化噪聲應用到權(quán)重的隨機子集上,來學習更適用于 int4、 int8 和 PQ 算法等各種量化方法的網(wǎng)絡;
  2. 在 PQ 算法上添加 Quant-Noise,實現(xiàn)準確率和模型大小綜合結(jié)果上的 SOTA 水平。使用該方法進行壓縮后,在自然語言處理方面,RoBERTa 在壓縮到 14MB 的前提下,在 MNLI 上實現(xiàn)了 82.5% 的準確率;在計算機視覺方面,EfficientNet-B3 在壓縮到 3.3 MB 的前提下,在 ImageNet 上實現(xiàn)了 80.0% 的 top-1 準確率。
  3. 使用 Quant-Noise 訓練的網(wǎng)絡,通過結(jié)合 PQ 算法和 int8 來量化網(wǎng)絡的權(quán)重和 activation,獲得在固定精度計算條件下的極致壓縮效果,實現(xiàn)了 ImageNet 數(shù)據(jù)集上的 79.8% top-1 準確率和 WikiText-103 數(shù)據(jù)集上的 21.1 困惑度。

此外,使用 Quant-Noise 壓縮后的模型性能幾乎與原始模型一致,同時將內(nèi)存占用量減少至原來的十分之一甚至二十分之一。這大大超過了 PyTorch 和 Tensorflow 中所用的 int8 的 4 倍壓縮。目前,相關代碼也已經(jīng)開源。

原理:量化神經(jīng)網(wǎng)絡

在本章中,研究者介紹了量化原理以及幾種標準量化方法,并詳細解釋了如何將標量和乘積量化相結(jié)合。需要注意的是,為了定義清楚,研究者主要專注于固定實矩陣(fixed real matrix)W∈R ^ n×p 的示例,并假設此矩陣被拆分為 m×q 個塊(b_kl):

性能不打折,内存占用减少90%,Facebook提出极致模型压缩方法Quant-Noise

這些塊的屬性由量化方法來確定,而碼本(codebook)是包含 K 個向量的集合,即 C = {c [1], ..., c [K]}。此量化方法使用如下方法壓縮矩陣 W:向每個塊 b_kl 分配一個指向碼本 C 中「碼字 c」的索引,同時存儲碼本 C 以及結(jié)果索引(作為索引矩陣 I 的條目 I_kl), 而不是使用實際權(quán)重。在推理過程中,該方法重建原始矩陣 W 的近似值,使得 b_kl = c [I_kl]。研究者將標量量化(如 int8,即每個塊 b_kl 由一個權(quán)重組成)與向量量化(將多個權(quán)重共同量化)區(qū)分開來。

上圖顯示了研究者在訓練過程中如何將量化噪聲應用于權(quán)重子集,從而改善量化模型的性能(完整視頻請參照鏈接)。

定點標量量化

定點(Fixed-point)標量量化方法用低精度定點表示代替了浮點表示。通過在能夠兼容的硬件上使用定點運算,實現(xiàn)減少模型內(nèi)存占用并加快推理速度的效果。

Quant-Noise 的具體實現(xiàn)方法

深度網(wǎng)絡訓練過程中不會接觸到 quantization drift 引起的噪聲,從而導致性能欠佳。如何使網(wǎng)絡對量化具有一定的魯棒性?解決方案就是在訓練期間引入量化噪聲。

量化感知訓練(Quantization Aware Training,QAT)通過對前向傳播過程中的權(quán)重進行量化來實現(xiàn)這一點。這種轉(zhuǎn)換是不可微的,且使用直通估計器(straight through estimator,STE)來逼近梯度。STE 在梯度中引入了一個偏置,該偏置取決于權(quán)重的量化級別,因此也取決于壓縮率。

因此,研究者提出了一種簡單的修改方法 Quant-Noise,通過隨機改善 QAT 來控制該偏置。其思路是:量化權(quán)重中的隨機部分,而不是像 QAT 那樣量化整個網(wǎng)絡,使未經(jīng)量化的權(quán)重使用無偏梯度。該方法的一般形式可以模擬訓練期間的量化和剪枝效果。

使用 Quant-Noise 訓練網(wǎng)絡

仍以實矩陣 W 為例。在訓練時,Quant-Noise 方法的運行方式如下:

首先,計算與目標量化方法相關的塊 b_kl;然后在每個前向傳播過程中,隨機選擇這些塊的子集,并添加一些失真;在反向傳播過程中,使用 STE 逼近失真的權(quán)重,進而計算所有權(quán)重的梯度值。換句話說,給定索引元組 J ⊂ {(k, l)},其中 1≤k≤m,1≤l≤q,同時將失真或噪聲函數(shù) ϕ 作用在塊上,于是研究者定義算子 ψ (· | J),對于每個塊 b_kl 均應用以下轉(zhuǎn)換:

Quant-Noise 的效果怎么樣?

Quant-Noise 對不同量化方法的影響

如下表 1 所示,研究者首先展示了在語言建模和圖像分類任務上,Quant-Noise 對 int4、int8 和 iPQ 三種不同量化方案的影響。結(jié)果表明,Quant-Noise 對 iPQ 等高性能量化方案表現(xiàn)出非常好的效果,而 QAT 一般導致性能下降,即使與量化作為后處理步驟的情況相比也會這樣。

性能不打折,内存占用减少90%,Facebook提出极致模型压缩方法Quant-Noise

表 1:在 QAT 和 Quant-Noise 兩種設置下,int4、int8 和 iPQ 三種量化方案在語言建模和圖像分類任務上的量化結(jié)果對比。對于語言建模任務,研究者在 Wikitext-103 基準上訓練 Transformer,得出了測試困惑度(PPL);對于圖像分類任務,研究者在 ImageNet-1k 基準上訓練了 EfficientNet-B3,得出了驗證 Top-1 準確率。

研究者分析得出,Quant-Noise 能夠與剪枝(pruning)和權(quán)重共享(weight sharing)方法兼容并相互補充。如下表 2 所示,研究者分別展示了 WikiText-103 上語言建模、MNLI 上預訓練句子表征和 ImageNet-1k 上目標分類的結(jié)果,這些結(jié)果在不同的任務和基準上保持了高度一致:Quant-Noise 在強大的 iPQ 基線方法上實現(xiàn)了性能的大幅提升。

性能不打折,内存占用减少90%,Facebook提出极致模型压缩方法Quant-Noise

表 2:幾種不同的壓縮方法(權(quán)重共享、剪枝和 Quant-Noise)在語言建模、句子表征和圖像分類任務上對未量化模型和量化模型性能的影響。

與 SOTA 方法的對比

研究者在相同任務上將 Quant-Noise 與當前 SOTA 方法進行對比。他們在有競爭力的模型上應用了最佳量化設置,在結(jié)合權(quán)重共享和剪枝方法時將這些模型的內(nèi)存占用縮小到原來的 1/94-1/20,從而為高性能模型提供了極致壓縮。

如下圖 2 所示,研究者得出了在語言建模、MNLI 和 ImageNet 上性能與模型大小的權(quán)衡情況。

性能不打折,内存占用减少90%,Facebook提出极致模型压缩方法Quant-Noise

圖 2:模型性能隨模型大小的變化情況。

控制變量測試

如下表 3 所示,研究者分別展示了在未利用 Quant-Noise 訓練、利用 Quant-Noise 微調(diào)以及利用 Quant-Noise 訓練三種不同的設置下,Adaptive Input 架構(gòu)的困惑度和 RoBERTa 的準確率變化情況。可以看出,直接利用 Quant-Noise 訓練可以實現(xiàn)最低的困惑度和最高的準確率。

性能不打折,内存占用减少90%,Facebook提出极致模型压缩方法Quant-Noise

表 3:未利用 Quant-Noise 訓練、利用 Quant-Noise 微調(diào)和利用 Quant-Noise 訓練三種不同設置下的困惑度和準確率對比。

如下圖 3 所示,不同 Quant-Noise 值對語言建模模型 Transformer 性能的影響。對于 iPQ,高噪聲值對模型性能帶來較大影響;而對于 int8 量化及其噪聲函數(shù)而言,較高的噪聲值對模型性能造成輕微的負面影響,但不如前者那么嚴重。

性能不打折,内存占用减少90%,Facebook提出极致模型压缩方法Quant-Noise

圖 3:量化參數(shù)的影響。

 

 

責任編輯:張燕妮 來源: 機器之心
相關推薦

2024-02-21 12:10:00

模型數(shù)據(jù)

2023-07-18 14:19:00

模型AI

2010-10-28 15:15:08

oracle內(nèi)存參數(shù)

2022-12-20 11:20:07

PeaZip 8開源壓縮軟件

2021-09-15 11:48:02

FacebookAndroid AppSuperpack技術(shù)

2011-08-17 10:53:16

Firefox 7

2022-07-25 15:34:01

量化仿真數(shù)據(jù)誤差內(nèi)存占用

2021-03-12 19:26:54

ChromeChrome瀏覽器瀏覽器

2023-04-28 15:53:55

框架模型

2020-06-09 10:15:21

模型人工智能自然語言

2024-03-11 09:27:00

框架模型AI

2013-11-12 12:22:38

2021-03-29 07:34:01

微軟應用Teams

2013-03-11 10:37:08

2021-02-20 16:07:27

神經(jīng)網(wǎng)絡AI算法

2024-07-10 12:42:53

2018-02-08 09:37:27

Pandas大數(shù)據(jù)Spark

2024-11-13 09:57:22

2023-12-26 12:03:52

AI模型

2025-05-28 11:42:14

模型框架AI
點贊
收藏

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