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

100億參數(shù)的語言模型跑不動(dòng)?MIT華人博士提出SmoothQuant量化,內(nèi)存需求直降一半,速度提升1.56倍!

人工智能 新聞
一個(gè)簡(jiǎn)單的量化操作,讓你運(yùn)行大規(guī)模語言模型的GPU需求量直接降低一半!

大型語言模型(LLM)雖然性能強(qiáng)勁,但動(dòng)輒幾百上千億的參數(shù)量,對(duì)計(jì)算設(shè)備還是內(nèi)存的需求量之大,都不是一般公司能承受得住的。

量化(Quantization)是常見的壓縮操作,通過降低模型權(quán)重的精度(如32bit降為8bit),犧牲一部分模型的性能來換取更快的推理速度,更少的內(nèi)存需求。

但對(duì)于超過1000億參數(shù)量的LLM來說,現(xiàn)有的壓縮方法都無法保持模型的準(zhǔn)確率,也無法在硬件上高效地運(yùn)行。

最近,麻省理工學(xué)院和英偉達(dá)的研究人員聯(lián)合提出了一個(gè)通用后訓(xùn)練的量化(GPQ, general-purpose post-training quantization)方案SmoothQuant,對(duì)大型語言模型可以高效實(shí)現(xiàn)8-bit權(quán)重,8-bit激活(W8A8)的量化,無需訓(xùn)練也能保持模型的準(zhǔn)確率。

圖片

論文鏈接:https://arxiv.org/pdf/2211.10438.pdf

代碼鏈接:https://github.com/mit-han-lab/smoothquant

由于激活相比權(quán)重更難量化,SmoothQuant通過數(shù)學(xué)等價(jià)變換將較難量化的激活遷移到權(quán)重上,實(shí)現(xiàn)了對(duì)激活異常值(activation outliers)的平滑處理。

SmoothQuant能夠?qū)λ蠰LM的各種層中權(quán)重和激活量化到INT8,包括OPT-175B, BLOOM-176B和GLM-130B。

相比現(xiàn)有方法僅對(duì)權(quán)重進(jìn)行靚貨,或者對(duì)激活進(jìn)行混合精度的量化,SmoothQuant有更高的硬件效率,實(shí)現(xiàn)了1.56倍加速,內(nèi)存需求僅為原始LLM的一半,并且在準(zhǔn)確率上幾乎沒有損失

圖片

SmoothQuant同時(shí)具有硬件友好的設(shè)計(jì),研究人員將SmoothQuant集成進(jìn)了LLM服務(wù)框架FasterTransformer中,實(shí)現(xiàn)了更快的推理速度,相比FP16的精度僅需一半數(shù)量的GPU

文章的第一作者肖光烜是MIT EECS的一年級(jí)博士生,本科畢業(yè)于清華大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院。

導(dǎo)師Song Han是MIT EECS的副教授,博士畢業(yè)于斯坦福大學(xué),主要研究方向?yàn)楦咝疃葘W(xué)習(xí),曾提出深度壓縮(deep compression)技術(shù),可以將神經(jīng)網(wǎng)絡(luò)的尺寸降低一個(gè)數(shù)量級(jí),而不損失準(zhǔn)確率。

SmoothQuant

量化(Quantization)就是把高精度的值映射到更低精度的離散值,在這篇論文中研究人員主要關(guān)注對(duì)硬件更高效的整數(shù)均勻量化(integer uniform quantization),尤其是INT8。

圖片

量化操作可以在不同的粒度上執(zhí)行,如per-tensor量化應(yīng)用于整個(gè)權(quán)重矩陣,per-token量化應(yīng)用于激活中的每個(gè)token,per-channel量化應(yīng)用于權(quán)重的每個(gè)輸出通道。

圖片


通過對(duì)激活的量化結(jié)果進(jìn)行觀察,研究人員總結(jié)出了幾個(gè)模式:

1、量化比權(quán)重更難量化。

權(quán)重的分布相對(duì)更加均勻和平坦,之前的研究結(jié)果已經(jīng)證明將大型語言模型的權(quán)重降低到INT8,甚至到INT4對(duì)準(zhǔn)確率的影響都不大。

2、異常值是激活量化中的主要難點(diǎn)。

激活中的異常值通常比正常值要高出100倍左右,導(dǎo)致沒有異常值通道中的量化bits/levels效率很低。

圖片

3、異常值固定在某一通道中出現(xiàn)。

異常值只在很小一部分的通道中才會(huì)出現(xiàn),但如果一個(gè)通道中有一個(gè)異常值,那該異常值可能會(huì)在所有的token中出現(xiàn)。

圖片

給定一個(gè)token中所有通道的方差會(huì)很大(一些通道會(huì)非常大,但大部分很?。?,但是給定一個(gè)通道在所有token度中的方差會(huì)很小(異常值通道會(huì)很大)。

由于異常值具有持續(xù)出現(xiàn)和每個(gè)通道內(nèi)小方差的特點(diǎn),那如果對(duì)激活執(zhí)行per-channel量化,其量化誤差將會(huì)遠(yuǎn)遠(yuǎn)小于per-tensor量化。

通過一個(gè)簡(jiǎn)單的實(shí)驗(yàn),其結(jié)果再次驗(yàn)證了研究人員的想法,量化到INT8時(shí),per-channel的準(zhǔn)確率遠(yuǎn)遠(yuǎn)高于per-tensor和per-token量化,和FP16基線準(zhǔn)確率相差無幾。

圖片

研究人員通過使用一個(gè)per-channel平滑因子s來將輸入激活進(jìn)行平滑(smooth)。為了保持線性層的數(shù)學(xué)等價(jià),還需要反向縮放權(quán)重。

圖片

由于輸入X通常是由之前的線性操作生成的(如線性層、層norms等),所以就可以很容易地將平滑因子融合到之前層的參數(shù)offline,而且不會(huì)產(chǎn)生額外縮放的內(nèi)核調(diào)用開銷。對(duì)于其他情況,比如當(dāng)輸入來自殘差add時(shí),可以向殘差分支添加一個(gè)額外的縮放。

將量化難度從激活轉(zhuǎn)移到權(quán)重

?Smooth的目標(biāo)是選擇一個(gè)per-channel的平滑因子s,使該逆操作更易于量化。

為了減少量化誤差,應(yīng)該增加所有通道的有效量化比特。當(dāng)所有通道的最大magnitude相同時(shí),總的有效量化位數(shù)將是最大的。

因此,一個(gè)最直接的平滑因子選擇就是輸入中每個(gè)通道的最大值,可以保證在劃分之后,所有的激活通道都有相同的最大值,從而實(shí)現(xiàn)更容易的量化。

但需要注意的是,激活的范圍是動(dòng)態(tài)的,對(duì)于不同的輸入樣本是不同的。所以研究人員使用預(yù)訓(xùn)練數(shù)據(jù)集中的校準(zhǔn)樣本來估計(jì)激活通道的規(guī)模。

由于這個(gè)公式將所有的量化困難遷移給了權(quán)重,可以發(fā)現(xiàn)在這種情況下,權(quán)重的量化誤差會(huì)很大,導(dǎo)致準(zhǔn)確性下降很多。

圖片

另一方面,也可以通過選擇sj = 1/ max(|Wj |),將所有的量化難度從權(quán)重推到激活上。同樣,由于激活量化誤差過大,模型的性能也不好。因此需要在權(quán)重和激活之間分割量化難度,使它們都易于量化。

研究人員引入一個(gè)超參數(shù)遷移強(qiáng)度α,來控制要從激活遷移到權(quán)重的難度。

圖片

可以發(fā)現(xiàn),對(duì)于大多數(shù)模型,例如OPT和BLOOM模型,α=0.5是一個(gè)很好的平衡點(diǎn),可以平均分配量化難度,特別是使用相同的量化器進(jìn)行權(quán)重和激活。

該公式保證了相應(yīng)通道的權(quán)重和激活具有相似的最大值,從而共享相同的量化難度。

圖片

對(duì)于其他一些激活異常值比較大的模型,例如GLM-130B有30%的異常值,這對(duì)激活量化來說比較困難,可以選擇一個(gè)較大的α(如0.75),將更多的量化難度遷移到權(quán)重上。

SmoothQuant應(yīng)用于Transformer塊

線性層占據(jù)了LLM模型的大部分參數(shù)和計(jì)算。在默認(rèn)情況下,SmoothQuant對(duì)Transformer中所有線性層的輸入激活進(jìn)行比例平滑,并用W8A8對(duì)線性層進(jìn)行量化,在注意力計(jì)算中啟用了BMM運(yùn)算符的量化。

圖片

在流程中,首先用INT8對(duì)線性層和注意力層中的BMM等計(jì)算量大的運(yùn)算符的輸入和權(quán)重進(jìn)行量化,而對(duì)其他輕量級(jí)元素的運(yùn)算,如Softmax和LayerNorm,保持激活為FP16,這樣的設(shè)計(jì)有助于平衡準(zhǔn)確性和推理效率。

實(shí)驗(yàn)部分

研究人員選擇了三個(gè)大型語言模型用來評(píng)估SmoothQuant,包括OPT, BLOOM和GLM-130B;并使用七個(gè)zero-shot任務(wù),包括LAMBADA, HellaSwag, PIQA, WinoGrande, OpenBookQA, RTE, COPA等。

實(shí)驗(yàn)結(jié)果顯示SmoothQuant可以處理非常大的LLM的量化問題,其激活更難量化。

圖片

SmoothQuant可以在所有評(píng)估數(shù)據(jù)集上匹配FP16的準(zhǔn)確性,而W8A8、ZeroQuant和Outlier Suppression基線產(chǎn)生的結(jié)果幾乎是隨機(jī)的。

圖片

并且SmoothQuant可以無損地量化所有超過100B參數(shù)的開放式LLMs

SmoothQuant的O1和O2級(jí)成功地保持了浮點(diǎn)精度,而O3級(jí)(per-tensor static)使平均精度下降了0.8%,可能是因?yàn)殪o態(tài)收集的統(tǒng)計(jì)數(shù)據(jù)與真實(shí)評(píng)估樣本的激活統(tǒng)計(jì)數(shù)據(jù)之間的差異。

盡管如此,SmoothQuant-O1可以與FP16的準(zhǔn)確性相匹配,而SmoothQuant-O3只降低了1%的準(zhǔn)確性,明顯優(yōu)于基線。

SmoothQuant不僅對(duì)超過100B參數(shù)的非常大的LLM有效,而且對(duì)較小的LLM也有穩(wěn)定的效果,SmoothQuant可以在所有規(guī)模的OPT模型上工作,并與INT8量化的FP16精度相匹配。

圖片

為了展示集成到PyTorch和FasterTransformer中的SmoothQuant-O3的速度提升和內(nèi)存節(jié)省,研究人員我們測(cè)量了一次生成一批4個(gè)句子的所有隱藏狀態(tài)的端到端延遲,也就是context階段的延遲,并記錄了這個(gè)過程中GPU內(nèi)存使用的峰值。

由于Huggingface缺乏對(duì)模型并行的支持,所以研究人員只測(cè)量了SmoothQuant在單個(gè)GPU上的PyTorch實(shí)現(xiàn)的性能,因此選擇了OPT-6.7B、OPT-13B和OPT-30B進(jìn)行評(píng)估。

在FasterTransformer庫中,SmoothQuant可以與Tensor Parallelism算法無縫對(duì)接,因此研究人員在OPT-13B、OPT-30B、OPT-66B和OPT-175B上測(cè)試SmoothQuant的單GPU和多GPU基準(zhǔn)。

在NVIDIA A100 80GB GPU服務(wù)器上進(jìn)行的實(shí)驗(yàn)結(jié)果顯示,基于PyTorch實(shí)現(xiàn)的推理延遲和峰值內(nèi)存使用上,SmoothQuant始終比FP16基線快,當(dāng)序列長(zhǎng)度為256時(shí),在OPT-30B上獲得了1.51倍的速度提升。

圖片

還可以看到一個(gè)趨勢(shì),即模型越大,加速越明顯,但LLM.int8()幾乎總是比FP16基線慢,這也是由于混合精度激活表示的巨大開銷造成的。

在內(nèi)存方面,SmoothQuant和LLM.int8()都可以將FP16模型的內(nèi)存用量幾乎減半,而SmoothQuant由于完全使用INT8 GEMM,所以節(jié)省的內(nèi)存稍多。

圖片

與FasterTransformer對(duì)OPT的FP16實(shí)現(xiàn)相比,SmoothQuant-O3在使用單個(gè)GPU時(shí)可以進(jìn)一步降低OPT-13B和OPT-30B的執(zhí)行延遲,最高可達(dá)1.56倍。


責(zé)任編輯:張燕妮 來源: 新智元
相關(guān)推薦

2022-07-27 09:25:08

深度架構(gòu)目標(biāo)檢測(cè)

2022-05-16 14:47:01

MIT模型

2021-09-03 16:41:26

模型人工智能深度學(xué)習(xí)

2021-09-02 16:00:06

算法開源技術(shù)

2023-06-30 13:01:26

2021-09-30 11:27:58

模型人工智能神經(jīng)網(wǎng)絡(luò)

2023-07-18 14:19:00

模型AI

2011-11-07 10:06:28

惠普ARM服務(wù)器Moonshot

2015-07-27 10:24:01

蘋果中國(guó)

2013-02-25 10:11:35

4GLTE商用網(wǎng)絡(luò)

2020-12-04 10:11:26

Unsafejava并發(fā)包

2022-02-22 16:21:04

Windows 11微軟

2022-05-11 14:45:48

模型人工智能

2024-11-27 14:30:00

模型訓(xùn)練

2023-07-31 09:54:12

2023-07-30 15:22:47

2011-08-17 10:53:16

Firefox 7

2024-07-08 08:00:00

2009-04-30 09:01:25

微軟操作系統(tǒng)Windows 7

2013-02-25 09:42:54

點(diǎn)贊
收藏

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