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

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

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

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

[[324224]]

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

所以我們?cè)趹?yīng)用部署之前,必須面對(duì)一個(gè)問(wèn)題:如何對(duì)模型進(jìn)行壓縮?

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

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

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

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

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

該方法可以在訓(xùn)練過(guò)程中采用更簡(jiǎn)單的量化方案,這對(duì)于具有可訓(xùn)練參數(shù)的量化模塊來(lái)說(shuō)是非常有用的,比如乘積量化(Product Quantizer,PQ)算法。

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

總體來(lái)說(shuō),該方法的亮點(diǎn)在于:

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

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

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

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

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

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

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

定點(diǎn)標(biāo)量量化

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

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

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

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

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

使用 Quant-Noise 訓(xùn)練網(wǎng)絡(luò)

仍以實(shí)矩陣 W 為例。在訓(xùn)練時(shí),Quant-Noise 方法的運(yùn)行方式如下:

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

Quant-Noise 的效果怎么樣?

Quant-Noise 對(duì)不同量化方法的影響

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

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

表 1:在 QAT 和 Quant-Noise 兩種設(shè)置下,int4、int8 和 iPQ 三種量化方案在語(yǔ)言建模和圖像分類(lèi)任務(wù)上的量化結(jié)果對(duì)比。對(duì)于語(yǔ)言建模任務(wù),研究者在 Wikitext-103 基準(zhǔn)上訓(xùn)練 Transformer,得出了測(cè)試?yán)Щ蠖龋≒PL);對(duì)于圖像分類(lèi)任務(wù),研究者在 ImageNet-1k 基準(zhǔn)上訓(xùn)練了 EfficientNet-B3,得出了驗(yàn)證 Top-1 準(zhǔn)確率。

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

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

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

與 SOTA 方法的對(duì)比

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

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

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

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

控制變量測(cè)試

如下表 3 所示,研究者分別展示了在未利用 Quant-Noise 訓(xùn)練、利用 Quant-Noise 微調(diào)以及利用 Quant-Noise 訓(xùn)練三種不同的設(shè)置下,Adaptive Input 架構(gòu)的困惑度和 RoBERTa 的準(zhǔn)確率變化情況??梢钥闯觯苯永?Quant-Noise 訓(xùn)練可以實(shí)現(xiàn)最低的困惑度和最高的準(zhǔn)確率。

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

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

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

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

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

 

 

責(zé)任編輯:張燕妮 來(lái)源: 機(jī)器之心
相關(guān)推薦

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開(kāi)源壓縮軟件

2011-08-17 10:53:16

Firefox 7

2021-09-15 11:48:02

FacebookAndroid AppSuperpack技術(shù)

2022-07-25 15:34:01

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

2021-03-12 19:26:54

ChromeChrome瀏覽器瀏覽器

2023-04-28 15:53:55

框架模型

2013-11-12 12:22:38

2024-03-11 09:27:00

框架模型AI

2020-06-09 10:15:21

模型人工智能自然語(yǔ)言

2013-03-11 10:37:08

2021-03-29 07:34:01

微軟應(yīng)用Teams

2021-02-20 16:07:27

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

2024-07-10 12:42:53

2024-11-13 09:57:22

2018-02-08 09:37:27

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

2023-12-26 12:03:52

AI模型

2020-10-13 17:30:45

Python代碼內(nèi)存
點(diǎn)贊
收藏

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