精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

LLM推理優(yōu)化:AWQ 與 GPTQ 的模型壓縮策略與量化技術(shù)解析

原創(chuàng) 精選
人工智能
本文將主要圍繞如何降低模型大小展開,重點(diǎn)探討通過算法優(yōu)化的方式來壓縮模型的策略,旨在為提升LLM推理加速提供有效的解決方案。

作者 | 崔皓

審校 | 重樓

開篇

在當(dāng)今人工智能領(lǐng)域,大語言模型(LLM)正以前所未有的速度發(fā)展。隨著模型參數(shù)的不斷增加,大模型變得愈發(fā)“聰明”,在語言理解、文本生成、知識問答等眾多任務(wù)中展現(xiàn)出了卓越的性能,為自然語言處理等相關(guān)領(lǐng)域帶來了巨大的變革。

然而,這種參數(shù)規(guī)模的急劇增長也帶來了一系列挑戰(zhàn)。在模型推理階段,需要大量的硬件資源來支撐。顯存作為存儲模型參數(shù)的關(guān)鍵部件,其容量需求也隨之大幅提升。當(dāng)GPU執(zhí)行大模型的向量運(yùn)算時,需要依次將顯存中的數(shù)據(jù)加載到GPU運(yùn)算寄存器、緩存,最終加載到具體的SM(流式多處理器)中進(jìn)行計算。

但在這個模型參數(shù)的搬運(yùn)過程中,往往會成為推理的瓶頸,導(dǎo)致推理速度變慢,效率降低。 為了解決這一問題,量化技術(shù)應(yīng)運(yùn)而生。量化的核心思想是將模型變小,通過降低模型參數(shù)的精度,減少數(shù)據(jù)的存儲空間和傳輸量,從而加速參數(shù)從顯存搬運(yùn)到運(yùn)算單元的過程,進(jìn)而加快整個計算過程,最終提升推理效率。本文將主要圍繞如何降低模型大小展開,重點(diǎn)探討通過算法優(yōu)化的方式來壓縮模型的策略,旨在為提升LLM推理加速提供有效的解決方案。

模型參數(shù)量化

在探索降低模型大小以加速 LLM 推理的過程中,對模型進(jìn)行量化是一種極為有效的減少模型參數(shù)的方法。我們首先要了解,模型主要由參數(shù)和代碼兩部分構(gòu)成。在模型的訓(xùn)練階段,它會不斷學(xué)習(xí)數(shù)據(jù)中的特征和規(guī)律,并將學(xué)習(xí)到的這些內(nèi)容以權(quán)重或參數(shù)的形式保存下來。 一般而言,模型越大,其在處理各種復(fù)雜任務(wù)時就會表現(xiàn)得越精準(zhǔn)、越 “聰明”,這是因?yàn)樗軌驅(qū)W習(xí)和存儲更多的數(shù)據(jù)特征和模式。

而與之對應(yīng)的是,模型越大,其包含的參數(shù)數(shù)量就越多,并且這些參數(shù)的精度也越高。以著名的 GPT-3 為例,它有多個不同規(guī)模的版本,其中最大的版本具有 1750 億個參數(shù)。

這里提到的精度,常見的有 FP32、FP16、INT8 等。FP32 即單精度浮點(diǎn)數(shù),它使用 32 位二進(jìn)制來表示一個浮點(diǎn)數(shù),F(xiàn)P16 就是 16 位二進(jìn)制來表示一個浮點(diǎn)數(shù),INT8 就是 8 位二進(jìn)制表示一個整數(shù)。

如下圖所示,F(xiàn)loat16 和 Float32 以科學(xué)計數(shù)法的形式展示。

Float16 和 Float32 的展示方式可以通過如下公式理解:

  • Sign(符號位):1 位,0 表示正數(shù),1 表示負(fù)數(shù)。
  • Exponent(指數(shù)位):表示指數(shù)部分,需減去一個 “偏移量(Bias)” 來表示正負(fù)指數(shù)。
  • Bias(偏移量):2指數(shù)位長度?1?1,例如:Float16: 25-1-1=15
  • Fraction(小數(shù)位 / 尾數(shù)位):表示有效數(shù)字的小數(shù)部分,結(jié)合隱含的 “1.” 形成完整的有效數(shù)字。

通過上圖可以看出,模型參數(shù)精度越高,模型就更加精準(zhǔn),所需的存儲空間就越高,推理時需要傳輸?shù)牧烤驮酱螅托枰嗟挠布Y源。反之,低精度的參數(shù),例如 INT8,所需的存儲空間就越小,推理時需要傳輸?shù)牧烤驮叫。托枰俚挠布Y源。

在實(shí)際應(yīng)用中,為了提高效率,像 GPT - 3 這類模型也會采用量化技術(shù)將其量化為更低的精度,如 INT8 等。

其實(shí)原理在前面也介紹過,參數(shù)精度越高,參數(shù)所占用的存儲空間就越大,也就意味著需要更多的顯存來存儲這些參數(shù)。在數(shù)據(jù)傳輸過程中,大量的數(shù)據(jù)需要從顯存搬運(yùn)到運(yùn)算單元,這就容易成為推理的瓶頸,導(dǎo)致推理速度變慢。因此,為了提高推理效率,通常采用的通用方法就是降低參數(shù)的精度,這種降低參數(shù)精度的操作就被稱為量化。通過量化,可以在一定程度上犧牲模型的精度,換取更小的模型大小和更快的推理速度,從而有效緩解硬件資源的壓力,提升整體的推理性能。

后訓(xùn)練量化

在前面的討論中,我們已經(jīng)了解到提升LLM推理效率可以通過量化模型參數(shù)來實(shí)現(xiàn),例如將原本的FP32精度降低到INT8,這樣能顯著減少模型大小和計算量,從而加快推理速度。然而,凡事有利就有弊,這種操作就像一把雙刃劍。對模型參數(shù)進(jìn)行量化,固然能帶來效率上的提升,但同時也會降低模型的精度,進(jìn)而影響模型的精準(zhǔn)性。

畢竟,模型之所以能夠表現(xiàn)出強(qiáng)大的智能,很大程度上依賴于其較高的精度,精度越高,模型的推理能力往往越強(qiáng)。為了在降低模型精度的同時,又不降低模型的精準(zhǔn)性,也就是要讓模型既小又快,還能保持相對較高的智能水平,這時后訓(xùn)練量化(Post - Training Quantization,PTQ)技術(shù)應(yīng)運(yùn)而生。

后訓(xùn)練量化在LLM推理加速的研究中,是一項(xiàng)關(guān)鍵的模型壓縮技術(shù)。它具有獨(dú)特的優(yōu)勢,無需對模型進(jìn)行額外的訓(xùn)練或微調(diào),這大大節(jié)省了時間和計算資源。PTQ通過使用少量校準(zhǔn)數(shù)據(jù),能夠?qū)㈩A(yù)訓(xùn)練好的高精度模型(如FP32或FP16)的權(quán)重和/或激活值轉(zhuǎn)換為低精度格式(如INT4或INT8)。在實(shí)際應(yīng)用中,高精度的模型雖然具有較好的性能,但往往占用大量的內(nèi)存和計算資源,這在資源受限的環(huán)境中會成為部署和推理的瓶頸。而PTQ的出現(xiàn),正是為了解決這一問題。其目的在于顯著減少模型的內(nèi)存占用和計算開銷,從而提高LLM的推理效率,使得大型語言模型能夠在更多的設(shè)備上快速、高效地運(yùn)行。

PTQ的兩大階段分解

現(xiàn)有的量化方法通常是多種技術(shù)的組合,為了更好地理解這些復(fù)雜的量化方法,研究人員將量化過程解耦為兩個關(guān)鍵步驟。

如下圖所示,在量化之前要進(jìn)行“預(yù)量化變換”,在量化之后要執(zhí)行“量化誤差緩解”。

預(yù)量化變換 (Pre - quantization Transformation)

此階段的目的是在量化之前對數(shù)據(jù)(權(quán)重和激活值)進(jìn)行預(yù)處理。在模型的數(shù)據(jù)中,存在著離群值(Outliers),這些離群值的存在會給量化帶來困難。預(yù)量化變換的核心問題就是減輕離群值的影響,將其平坦和順滑,使得數(shù)據(jù)更利于量化。在LLM技術(shù)中,AWQ(采用縮放Scaling)就對應(yīng)這一階段。

前面這句話看上去太抽象了,說人話就是,由于量化之后模型中的參數(shù)會出現(xiàn)一些特別“大”或者特別“小”的值,就好像一個人不合群,我們把這種值稱為“離群值(Outliers)”。我們擔(dān)心這種“離群值(Outliers)”在量化過程中把模型的精度“帶跑偏”,所以需要讓其“平坦和順滑”,可以理解為對“刺頭”進(jìn)行打磨棱角。

量化誤差緩解 (Quantization Error Mitigation)

該階段的主要任務(wù)是在量化過程中或之后補(bǔ)償量化引入的誤差。當(dāng)進(jìn)行低比特量化時,不可避免地會導(dǎo)致精度損失,這是量化過程中需要解決的核心問題。在LLM技術(shù)里,GPTQ(采用自補(bǔ)償Self - compensation)對應(yīng)這一階段,它致力于解決低比特量化導(dǎo)致的精度損失問題。

這里還是需要用人話解釋一遍,在完成對模型參數(shù)降低精度之后,會出現(xiàn)降低過頭的情況。就好像為了節(jié)約成本,把一大幫大學(xué)生員工換成了一幫中學(xué)生,你擔(dān)心這幫中學(xué)生的素質(zhì)無法勝任工作,于是對其能力或者素質(zhì)進(jìn)行“補(bǔ)償”。

好了到這里我們知道在模型量化的前后分別存在兩個階段:預(yù)量化變換和量化誤差緩解。那么就需要對應(yīng)兩個算法實(shí)現(xiàn)這兩個階段完成的任務(wù)。

如下圖所示,前后兩個階段需要通過 AWQ-激活感知權(quán)重量化(Activation - aware Weight Quantization)和 GPTQ-生成式預(yù)訓(xùn)練 Transformer 量化(Generative Pre -trained Transformers Quantization)兩個算法來實(shí)現(xiàn)。

下面我們會針對這兩個算法進(jìn)行討論。

激活感知權(quán)重量化(Activation - aware Weight Quantization)

AWQ是一種權(quán)重獨(dú)有(Weight-Only)量化方法,專注于通過縮放進(jìn)行預(yù)量化轉(zhuǎn)換 。AWQ的核心理念是識別并“保護(hù)”模型中對輸出影響最大的“顯著權(quán)重”(Salient Weights)。為什么要找這個所謂的顯著權(quán)重呢?

鑒別顯著權(quán)重

在大型語言模型(LLM)的推理過程中,并非所有權(quán)重都對推理結(jié)果有著同等程度的影響。僅有0.1% - 1%的小部分顯著權(quán)重對模型輸出精度起著關(guān)鍵作用。如果能夠精準(zhǔn)地鑒別出這一小部分顯著權(quán)重,并使其保持原來的高精度(如FP16),而對其他權(quán)重進(jìn)行低比特量化,那么就可以在幾乎不損失模型精度的前提下,大幅降低模型的內(nèi)存占用,同時顯著提升推理速度。這對于提高LLM在實(shí)際應(yīng)用中的效率和性能具有重要意義。

那么如何漸變顯著權(quán)重,如下圖所示,總結(jié)了幾個方法的效果。

Perplexity(困惑度,PPL)是衡量語言模型性能的關(guān)鍵指標(biāo),可理解為 “模型預(yù)測下一個詞時的平均‘困惑程度’”,數(shù)值越低,模型性能越好。模型對文本的概率預(yù)測越準(zhǔn)確,PPL 越低。

直接說結(jié)論就是,基于激活值分布挑選(based on act)的方式相比FP16幾乎沒有精度損失。說明基于激活值分布來鑒別顯著權(quán)重能夠更精準(zhǔn)地找到對模型輸出精度至關(guān)重要的權(quán)重,從而在量化過程中有效地保留關(guān)鍵信息,保證模型在低比特量化后的性能。 

隨機(jī)挑選

隨機(jī)挑選顯著權(quán)重的方法簡單粗暴,就是隨機(jī)選出0.1% - 1%的權(quán)重作為顯著權(quán)重。然而,這種方法缺乏科學(xué)性,沒有考慮到權(quán)重在模型中的實(shí)際作用和重要性,就如同“聽天由命”一般,難以保證挑選出的權(quán)重能夠真正對模型精度產(chǎn)生關(guān)鍵影響。

基于權(quán)重分布挑選(base on W)

這種方法是對權(quán)重矩陣(例如自注意力機(jī)制中的相關(guān)矩陣)中的元素按絕對值大小由大到小進(jìn)行排序,認(rèn)為絕對值越大的元素越顯著,然后選擇前0.1% - 1%的元素作為顯著權(quán)重。很多傳統(tǒng)的量化方法都采用這種方式來挑選顯著權(quán)重,它基于權(quán)重本身的數(shù)值特征進(jìn)行判斷,但可能沒有充分考慮到權(quán)重在模型計算過程中的實(shí)際作用。

基于激活值分布挑選(based on act)

這里的激活值是指與權(quán)重矩陣作矩陣乘法(matmul)運(yùn)算的輸入值。例如在自注意力機(jī)制中,計算相關(guān)結(jié)果時,對應(yīng)的輸入值就是相應(yīng)權(quán)重矩陣的激活值。該方法按激活值絕對值大小由大到小排序,絕對值越大越顯著,選擇前0.1% - 1%的元素作為顯著權(quán)重。通過激活值來判斷權(quán)重的重要性,能夠更直接地反映出權(quán)重在模型實(shí)際計算中的影響力。

實(shí)驗(yàn)評估結(jié)果

作者對上述三種方法進(jìn)行了實(shí)驗(yàn),并將困惑度(PPL,值越小越好)作為評估指標(biāo)。

放大(Scaling)

在LLM推理加速中,對顯著權(quán)重保留FP16格式、其他權(quán)重采用INT4格式雖能提升效率,卻也帶來新問題。當(dāng)權(quán)重矩陣中不同格式元素并存,存儲時需設(shè)計復(fù)雜結(jié)構(gòu)管理,計算取數(shù)要額外邏輯判斷,編寫kernel函數(shù)更是抽象難維護(hù),無疑增加了操作難度與出錯風(fēng)險。為解決這些難題,使用了一個變通方法——Scaling,以此簡化存儲與計算過程,讓后續(xù)操作更順暢高效。

來做個實(shí)驗(yàn)驗(yàn)證這個方法,如下圖所示,三種不同的量化方式的結(jié)果。

  • 圖(a):RTN 量化(基準(zhǔn)方法)

A.過程:將 FP16 精度的權(quán)重FP16直接量化為 INT3 精度。

B.結(jié)果: perplexity(PPL,語言模型的“困惑度”,數(shù)值越低性能越好)為 43.2,性能較差。

C.原因:直接量化會丟失大量精度,導(dǎo)致模型表達(dá)能力下降。

  • 圖(b):保留 1% 關(guān)鍵權(quán)重為 FP16(混合精度嘗試)。

A.過程:通過激活分布識別“關(guān)鍵權(quán)重(salient weights)”,將這些權(quán)重保留為 FP16 精度,其余量化為低精度。

B.結(jié)果:PPL 從 43.2 降至 13.0,性能大幅提升。

C.問題:“混合精度格式(MixPrec)”在硬件上效率差,因?yàn)橛布y以高效處理不同精度的混合計算。

  • 圖(c):AWQ 方法(激活感知的量化方法)

A.過程:遵循“激活感知”原則,先對權(quán)重按通道進(jìn)行縮放(scale)計算激活的“平均幅值(average mag.)”,再基于縮放因子 alpha 調(diào)整權(quán)重,最后量化為 INT3。

B.結(jié)果:PPL 同樣達(dá)到 13.0,既保留了關(guān)鍵權(quán)重的精度,又采用統(tǒng)一的 INT3 精度,兼顧了性能和硬件效率。

大語言模型量化時,直接低精度量化會導(dǎo)致性能暴跌(圖a);若保留少量關(guān)鍵權(quán)重為高精度,性能會恢復(fù)但硬件效率差(圖b);AWQ 方法通過“按通道縮放+統(tǒng)一低精度量化”,在保護(hù)關(guān)鍵權(quán)重的同時保證了硬件效率,實(shí)現(xiàn)了性能與效率的平衡。

需要說明的是,量化時放大顯著權(quán)重(即乘較大縮放因子)可降低量化誤差;對于非顯著權(quán)重,乘以較小縮放因子,減少關(guān)注。這就是縮放(Scaling)方法,通過調(diào)整激活值與權(quán)重間的縮放因子,實(shí)現(xiàn)降低誤差和保證權(quán)重顯著特性的目的。上述說明,只是對縮放因子的結(jié)論,推導(dǎo)過程不在這里展開。可以查看如下論文,我把鏈接放到結(jié)尾。

《AWQ: ACTIVATION-AWARE WEIGHT QUANTIZATION FOR ON-DEVICE LLM COMPRESSION AND ACCELERATION》

到這里 AWQ 整個過程差不多就說完了,總結(jié)為下面表格:

步驟

機(jī)制

描述與來源

1.識別顯著權(quán)重

基于激活值的感知

AWQ 基于一個核心觀察:并非所有權(quán)重都同等重要3。要確定哪些權(quán)重通道是顯著的,應(yīng)該參考激活值的分布,而非權(quán)重本身的分布。

2.等效變換

數(shù)學(xué)等效縮放

AWQ 使用等效變換Y=XW=(X^)(W^),將量化難度從難以處理的激活值分布轉(zhuǎn)移到權(quán)重上。該變換在數(shù)學(xué)上不改變模型的輸出結(jié)果。

3.確定縮放因子

離線收集統(tǒng)計信息

AWQ 通過離線收集激活值(X)的統(tǒng)計信息(例如最大幅度),來確定最優(yōu)的每通道縮放因子 (S)

4.保護(hù)與量化

放大顯著權(quán)重

縮放因子 S 用于放大那些被判定為顯著的權(quán)重通道 W^=S?W。這種放大操作旨在保護(hù)這些關(guān)鍵權(quán)重,使其在隨后量化到低比特(如 INT4)時,能夠保留更多有效信息

在 AWQ 算法的最后,再補(bǔ)充一下 S 縮放因子的內(nèi)容:

為實(shí)現(xiàn)自動計算縮放因子(scaling)從而最小化量化誤差,原本需找到權(quán)重矩陣每個通道的縮放系數(shù),使公式 4 最小化。但量化函數(shù)不可微,且公式非凸,無法用梯度下降法求解。

激活值越大,對應(yīng)通道越顯著,應(yīng)分配更大縮放系數(shù)降低量化誤差。于是統(tǒng)計各通道平均激活值作為縮放因子,并引入變量平衡顯著與非顯著通道系數(shù),問題轉(zhuǎn)化為新的形式。同時,為防止過大或過小,進(jìn)行了數(shù)據(jù)標(biāo)準(zhǔn)化。

你可以采用 “Fast Grid Search” 方法在 [0, 1] 區(qū)間找,實(shí)際是在此區(qū)間平均取 20 個數(shù),逐個計算不同情況下的 MSE 損失,損失最小的即為最佳,進(jìn)而確定最佳縮放因子。

AWQ 實(shí)現(xiàn)

說完了 AWQ 的原理之后,再來看看 AWQ 的實(shí)現(xiàn)。說到實(shí)現(xiàn)就不得不提到AutoAWQ 。

AutoAWQ 是一個易于使用的用于 4 位量化模型的工具包。它通過實(shí)現(xiàn)激活感知權(quán)重量化(Activation - aware Weight Quantization, AWQ)算法對大語言模型(LLMs)進(jìn)行量化。相比 FP16,AutoAWQ 能將模型推理速度提升 3 倍,同時將內(nèi)存需求降低 3 倍。該工具包是在麻省理工學(xué)院(MIT)的原始工作基礎(chǔ)上創(chuàng)建和改進(jìn)而來的。目前, AutoAWQ 已被 vLLM 項(xiàng)目完全采用。

可以使用如下命令對其進(jìn)行安裝:

pip install autoawq

此默認(rèn)安裝方式不包含外部內(nèi)核,推理過程依賴Triton。這種安裝方式較為基礎(chǔ),適合對內(nèi)核沒有特殊需求,希望快速使用AutoAWQ的用戶。

帶內(nèi)核的發(fā)布版本使用如下命令進(jìn)行安裝。

pip install autoawq[kernels]

需要注意的是,這種安裝方式要求你使用的torch版本與內(nèi)核構(gòu)建時所使用的最新torch版本相匹配。

針對英特爾CPU和英特爾XPU優(yōu)化性能的主分支安裝,使用如下命令進(jìn)行:

pip install autoawq[cpu]

下面代碼使用 AWQ 和 Transformers 庫,將 Mistral-7B-Instruct-v0.2 模型通過 AWQ 方法量化為 4 位精度,并保存量化后的模型和分詞器,實(shí)現(xiàn)模型壓縮的同時盡可能保留性能。

# 導(dǎo)入AWQ量化所需的模型類和Transformers的分詞器類
from awq import AutoAWQForCausalLM
from transformers import AutoTokenizer

# 原始模型的路徑(Hugging Face Hub上的Mistral-7B-Instruct-v0.2模型)
model_path = 'mistralai/Mistral-7B-Instruct-v0.2'
# 量化后模型的保存路徑
quant_path = 'mistral-instruct-v0.2-awq'
# 量化配置參數(shù):啟用零點(diǎn)(zero_point),分組大小128,權(quán)重量化為4位,版本為GEMM
quant_config = { "zero_point": True, "q_group_size": 128, "w_bit": 4, "version": "GEMM" }

# 從預(yù)訓(xùn)練模型路徑加載原始模型
model = AutoAWQForCausalLM.from_pretrained(model_path)
# 從預(yù)訓(xùn)練模型路徑加載對應(yīng)的分詞器,trust_remote_code=True允許加載模型相關(guān)的自定義代碼
tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)

# 對模型進(jìn)行量化,傳入分詞器和量化配置
model.quantize(tokenizer, quant_config=quant_config)

# 保存量化后的模型到指定路徑
model.save_quantized(quant_path)
# 保存分詞器到與量化模型相同的路徑
tokenizer.save_pretrained(quant_path)

# 打印提示信息,表明模型已量化并保存
print(f'Model is quantized and saved at "{quant_path}"')

GPTQ 生成式預(yù)訓(xùn)練 Transformer 量化

通過前面的介紹,我們發(fā)現(xiàn)對于 PTQ( 后訓(xùn)練量化)而言,將GPTQ置于量化誤差緩解階段(第二階段),能夠清晰地將其與AWQ(預(yù)量化變換)區(qū)分開來。AWQ主要解決量化前的預(yù)處理問題,它通過縮放操作來平滑數(shù)據(jù)中的離群值,使得數(shù)據(jù)分布更適合進(jìn)行量化。

而GPTQ則聚焦于量化之后(或伴隨量化過程)的精度修復(fù)問題。GPTQ,即生成式預(yù)訓(xùn)練Transformer量化(Generative Pre - trained Transformers Quantization),是后訓(xùn)練量化(PTQ)中量化誤差緩解(Quantization Error Mitigation)這一關(guān)鍵階段的代表性技術(shù)。

GPTQ功能定位

量化誤差緩解旨在應(yīng)用特定技術(shù)來補(bǔ)償量化過程中引入的誤差,以此提高模型的性能。在量化過程中,由于對模型參數(shù)進(jìn)行了離散化處理,不可避免地會引入誤差,這些誤差可能會影響模型的準(zhǔn)確性和性能。量化誤差緩解技術(shù)就是為了應(yīng)對這一問題而存在的。

GPTQ核心機(jī)制

GPTQ是一種僅對權(quán)重進(jìn)行量化的方法,它基于近似二階信息,采用一次性(one - shot)的權(quán)重量化方式。該方法構(gòu)建在OBQ(Optimal Brain Quantization)方法之上,利用Hessian矩陣來指導(dǎo)誤差補(bǔ)償。Hessian矩陣包含了函數(shù)的二階導(dǎo)數(shù)信息,通過利用Hessian矩陣,GPTQ能夠更準(zhǔn)確地解決量化引入的誤差以及最優(yōu)權(quán)重擾動問題,從而在量化過程中更好地保持模型的性能。

GPTQ 的核心包含了自補(bǔ)償(Self - compensation)機(jī)制,利用近似二階信息(Hessian矩陣)來指導(dǎo)補(bǔ)償過程。雖然 Hessian矩陣計算極為復(fù)雜,但我們可以通過一個簡化的2×2權(quán)重塊來清晰地演示其“逐列量化 - 計算誤差 - 補(bǔ)償”的流程。

數(shù)值演示:逐列補(bǔ)償機(jī)制

步驟1:量化第一列 (W?)

步驟2:對剩余權(quán)重 (W?) 進(jìn)行補(bǔ)償

步驟3:量化更新后的第二列 (W?')

總結(jié)

Hessian矩陣在自補(bǔ)償中的作用

由于在描述 GPTQ 進(jìn)行自補(bǔ)償?shù)臅r候,提到了Hessian矩陣,這里對其的作用稍微進(jìn)行解釋。我們可以把Hessian矩陣看作是模型里的一張“敏感度地圖”或者“誤差影響評估工具”。

我們將模型的性能用損失函數(shù) (L) 來衡量,把它想象成一個復(fù)雜地形的高度。而模型的權(quán)重 (W) 就如同在這個地形上所處的當(dāng)前位置。我們的目標(biāo)是通過移動 (W) 來到達(dá)地形的最低點(diǎn),也就是讓損失函數(shù)達(dá)到最小值。

量化過程就像是對模型權(quán)重進(jìn)行了一次微小且不可避免的推搡,這種推搡就是權(quán)重擾動 δ。這個擾動會使得模型性能下降,在“地形”上表現(xiàn)為引入了損失誤差?。

Hessian矩陣 (H) 描述的是這個“損失地形”的曲率,也就是損失函數(shù)的二階導(dǎo)數(shù)。在不同的方向上,曲率大小不同,對模型的影響也不同。

  • 曲率大的方向(敏感):當(dāng)某個方向上的曲率很大時,意味著Hessian矩陣在該方向上的值較大。在這種情況下,沿著這個方向?qū)?quán)重進(jìn)行微小的擾動 δ,就會導(dǎo)致巨大的損失誤差 ?。這些方向?qū)?yīng)的權(quán)重就是模型中最“顯著”或最“敏感”的權(quán)重。
  • 曲率小的方向(不敏感):如果某個方向上的曲率較小,說明量化引起的誤差對模型的影響不大。

通過Hessian矩陣,GPTQ可以了解到量化某個參數(shù)時,它會對最終結(jié)果造成多大的影響。這樣,在進(jìn)行量化操作時,GPTQ就能明確對于高敏感度的權(quán)重,需要給予更高優(yōu)先級的補(bǔ)償。

GPTQ 實(shí)現(xiàn)

最早實(shí)現(xiàn) GPTQ 的開源項(xiàng)目是 AutoGPTQ,后來該項(xiàng)目沒有繼續(xù)維護(hù)了,進(jìn)而開源團(tuán)隊轉(zhuǎn)戰(zhàn)GPT - QModel 。GPT - QModel是一款極具實(shí)用性且生產(chǎn)就緒的大型語言模型(LLM)壓縮與量化工具包。工具包通過與 HF Transformers、vLLM 和 SGLang 集成,實(shí)現(xiàn)了在 CPU 和 GPU 上的硬件加速推斷,能夠充分發(fā)揮不同硬件的計算優(yōu)勢,顯著提升推理效率。目前,GPT - QModel 支持多種量化方法,涵蓋 GPTQ、AWQ、QQQ、GPTAQ、EoRa、GAR 等,這些方法各有特點(diǎn),能滿足不同場景下對模型壓縮和量化的需求。

可以通過如下命令進(jìn)行安裝:

pip install -v gptqmodel --no-build-isolation 
uv pip install -v gptqmodel --no-build-isolation

如下代碼使用 datasets 和 gptqmodel 庫,將 Llama-3.2-1B-Instruct 模型通過 GPTQ 方法量化為 4 位精度。過程包括加載校準(zhǔn)數(shù)據(jù)集、配置量化參數(shù)、加載模型并執(zhí)行量化,最后保存量化后的模型,實(shí)現(xiàn)模型壓縮。

# 導(dǎo)入加載數(shù)據(jù)集的工具和GPTQ量化相關(guān)的類
from datasets import load_dataset
from gptqmodel import GPTQModel, QuantizeConfig

# 原始模型的ID(Hugging Face Hub上的Llama-3.2-1B-Instruct模型)
model_id = "meta-llama/Llama-3.2-1B-Instruct"
# 量化后模型的保存路徑
quant_path = "Llama-3.2-1B-Instruct-gptqmodel-4bit"

# 加載校準(zhǔn)數(shù)據(jù)集(用于量化過程中的參數(shù)校準(zhǔn)):
# 加載allenai/c4數(shù)據(jù)集中的en/c4-train.00001-of-01024.json.gz文件,
# 選取訓(xùn)練集的前1024條數(shù)據(jù),并提取其中的"text"字段
calibration_dataset = load_dataset(
    "allenai/c4",
    data_files="en/c4-train.00001-of-01024.json.gz",
    split="train"
  ).select(range(1024))["text"]

# 定義量化配置:權(quán)重量化為4位,分組大小為128
quant_config = QuantizeConfig(bits=4, group_size=128)

# 根據(jù)模型ID和量化配置加載模型
model = GPTQModel.load(model_id, quant_config)

# 對模型進(jìn)行量化:使用校準(zhǔn)數(shù)據(jù)集,設(shè)置批次大小為1(可根據(jù)GPU顯存調(diào)整batch_size以加速量化)
model.quantize(calibration_dataset, batch_size=1)

# 將量化后的模型保存到指定路徑
model.save(quant_path)

參考文獻(xiàn):

https://arxiv.org/pdf/2306.00978

https://arxiv.org/pdf/2210.17323

作者介紹

崔皓,51CTO社區(qū)編輯,資深架構(gòu)師,擁有18年的軟件開發(fā)和架構(gòu)經(jīng)驗(yàn),10年分布式架構(gòu)經(jīng)驗(yàn)。

責(zé)任編輯:龐桂玉 來源: 51CTO
相關(guān)推薦

2023-11-17 14:37:56

2023-11-27 09:00:00

GPTQ大型語言模型

2024-09-11 15:59:31

LLM.int8()大模型量化

2025-06-11 02:30:00

2024-04-07 14:28:48

邊緣計算LLM人工智能

2024-11-11 08:50:24

2025-08-07 01:44:00

2025-06-23 08:30:05

2024-12-23 08:03:13

2024-08-05 14:36:17

大型語言模型量化

2024-02-26 07:43:10

大語言模型LLM推理框架

2023-10-12 19:41:55

2024-04-16 14:57:51

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

2024-08-27 09:35:47

2023-10-10 09:45:35

自動駕駛技術(shù)

2025-02-25 10:21:15

2025-02-24 00:00:10

.NET線程池模型

2025-05-09 10:14:19

2025-04-28 00:55:00

2025-02-17 10:13:27

點(diǎn)贊
收藏

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

久久精品av麻豆的观看方式| 欧美大片网址| 怡红院av一区二区三区| 99在线国产| 91国产丝袜播放在线| 久久av网址| 日韩精品一区二区三区四区| 黄色影院一级片| 日本三级在线视频| 不卡av在线网| 国产日韩欧美成人| 亚洲精品午夜久久久久久久| 国产日产一区| 日韩一二三区视频| 精品免费国产一区二区| 宅男在线观看免费高清网站 | 日韩Av无码精品| 成人自拍视频网| 天天综合色天天综合| 亚洲自拍的二区三区| 五月激情六月婷婷| 国产在线一区观看| 国产成人91久久精品| 免费看一级一片| 日韩精品91| 日韩精品在线免费播放| 欧美国产日韩在线视频| 北岛玲heyzo一区二区| 一区二区三区四区在线免费观看| 日韩影院一区| 天堂在线中文字幕| 国内精品伊人久久久久av影院| 欧美一区二区三区免费观看| 青青草在线观看视频| 久久精品99久久无色码中文字幕| 亚洲精品视频免费| 久久久无码人妻精品无码| 成人黄色免费网站| 色狠狠一区二区三区香蕉| 妞干网在线观看视频| 亚洲区欧洲区| 亚洲精选视频在线| 在线观看国产一区| 日本综合在线| 国产精品亲子乱子伦xxxx裸| 清纯唯美一区二区三区| 日本一区高清| 91碰在线视频| 激情久久av| 乱精品一区字幕二区| 国产精品性做久久久久久| 91青草视频久久| 国产精品一区二区av白丝下载| 蜜臀久久99精品久久久久久9| 日韩av成人在线| 区一区二在线观看| 麻豆精品91| 国产精品第七影院| 亚洲精品国产欧美在线观看| 丝袜美腿高跟呻吟高潮一区| 国产第一区电影| 无码人妻精品一区二区蜜桃色欲| 久久久精品性| 国产精品久久久久久久午夜| 中文字幕 欧美激情| 日韩av一二三| 91精品国产自产在线| 97人妻人人澡人人爽人人精品| 极品少妇一区二区三区精品视频| 成人免费视频网| 午夜精品久久久久久久91蜜桃| 国产91精品欧美| 久久99欧美| av一区在线观看| **欧美大码日韩| 欧美午夜性视频| www.成人影院| 欧美日韩精品一区二区三区四区 | 五月天婷婷激情| 日韩精品乱码免费| 91精品国产综合久久久久久久久| 国产又粗又猛视频| 国产成人av一区二区三区在线| 国产精品麻豆免费版| 头脑特工队2在线播放| 国产日韩欧美激情| 操bbb操bbb| 中文字幕在线视频网站| 欧美日韩一区二区在线视频| 欧美一级大片免费看| 要久久爱电视剧全集完整观看| 中文字幕av一区中文字幕天堂| 污软件在线观看| 国产精品主播| 成人国产精品久久久| 国产 日韩 欧美 精品| 亚洲精品成人区在线观看| 日韩精品第一| 欧美成人艳星乳罩| 无码国产69精品久久久久同性| 91视频一区| 97精品国产97久久久久久免费 | 91亚色免费| 免费观看成年在线视频网站| 亚洲欧美区自拍先锋| 免费在线激情视频| 日韩不卡在线视频| 一区二区福利视频| 日本在线小视频| 黄色小说综合网站| 欧美激情论坛| 欧美xxxx免费虐| 欧美三级视频在线观看| 野战少妇38p| 天天射—综合中文网| 2019最新中文字幕| 国产高清第一页| 国产精品区一区二区三区| 大陆极品少妇内射aaaaa| 精品一区二区三区亚洲| 在线播放国产一区中文字幕剧情欧美 | 蜜桃a∨噜噜一区二区三区| 久久中文字幕视频| 国产精品露脸视频| 91一区二区三区在线观看| 好吊色视频988gao在线观看| 欧美a视频在线| 亚洲精品视频免费| 亚洲精品www久久久久久| 国产精品一卡二卡在线观看| 四虎一区二区| 欧美极品影院| 亚洲美女精品久久| 国产又大又黄视频| 91原创在线视频| 波多野结衣之无限发射| 亚洲精品在线a| 久久97久久97精品免视看| 在线中文字幕网站| 中文字幕巨乱亚洲| 天堂中文视频在线| 精品免费在线| 国产精品男女猛烈高潮激情| 麻豆app在线观看| 欧美性猛交xxxx免费看久久久| 无码成人精品区在线观看| 亚洲第一毛片| 国产在线一区二区三区欧美| 2019中文字幕在线电影免费 | av地址在线观看| 99久精品视频在线观看视频| 成人av色在线观看| 成人影院在线看| 日韩一区二区三免费高清| 丁香花五月激情| 国产成人h网站| 丝袜人妻一区二区三区| 欧美交a欧美精品喷水| 91爱爱小视频k| 欧美精品a∨在线观看不卡| 日韩欧美亚洲一二三区| 三上悠亚影音先锋| 奇米色一区二区| 在线观看亚洲视频啊啊啊啊| 成人网av.com/| 欧美日韩第一页| 天堂在线视频免费观看| 一本色道a无线码一区v| 鲁丝一区二区三区| 加勒比av一区二区| 日韩成人午夜影院| 粉嫩一区二区三区四区公司1| 91禁外国网站| 超碰国产在线| 日韩视频免费观看高清在线视频| 久久久久人妻一区精品色欧美| 成人精品一区二区三区中文字幕| 国产亚洲欧美在线视频| 精品无人区麻豆乱码久久久| 国产精自产拍久久久久久蜜| 天堂va在线| 亚洲另类欧美自拍| 国产一区二区小视频| 亚洲国产一区二区a毛片| 艳妇乳肉亭妇荡乳av| 日本人妖一区二区| www.18av.com| 国产精品一区二区99| 91久久精品视频| 久久男人天堂| 色妞色视频一区二区三区四区| 性一交一乱一精一晶| 欧美性生交大片免费| 男人在线观看视频| 成人av在线网| www.超碰97.com| 亚洲精品黄色| 亚洲在线播放电影| 欧美亚洲大陆| 亚洲中国色老太| 欧美精品高清| 久久久欧美一区二区| 成人在线二区| 亚洲激情视频在线观看| 96日本xxxxxⅹxxx17| 岛国av一区二区三区| 在线看的片片片免费| 久久久久国色av免费看影院| 在线a免费观看| 可以看av的网站久久看| 日本五级黄色片| 欧洲杯足球赛直播| 精品一区二区三区日本| 精品中文在线| 国产精品免费久久久久久| 高清在线视频不卡| 欧美大胆在线视频| 成年人视频网站在线| 日韩精品亚洲视频| 亚洲成a人片在线| 欧美日韩电影在线| 精品黑人一区二区三区| 亚洲免费看黄网站| 中文字幕精品亚洲| 久久精品视频在线免费观看| 欧美激情一区二区三区p站| 激情成人综合网| 久久久久久蜜桃一区二区| 欧美一级二区| 成人免费观看cn| 韩国一区二区三区在线观看| 手机成人av在线| 日韩欧美一区免费| 色综合666| 精品一区二区三| 色噜噜狠狠一区二区三区| 女同另类激情重口| 精品一区二区三区自拍图片区 | 亚洲成人av在线播放| 99精品免费观看| 6080国产精品一区二区| 国产一区二区小视频| 欧美人与禽zozo性伦| 中文字幕在线视频第一页| 欧美影院精品一区| 最近日韩免费视频| 欧美日韩久久一区二区| 国产91av在线播放| 在线欧美日韩国产| 乱子伦一区二区三区| 色综合久久天天| 精品视频一二三区| 欧美在线免费观看视频| 日韩精选在线观看| 欧美日韩一区二区在线视频| 91国在线视频| 欧美成人官网二区| 人妻无码中文字幕| 日韩精品免费在线视频观看| 亚洲日本中文字幕在线| 亚洲热线99精品视频| 国产视频精选在线| 精品国产一区二区三区四区在线观看| 欧洲不卡av| 久久久国产视频| 免费看电影在线| 欧美在线视频播放| 2019年精品视频自拍| 91精品国产综合久久香蕉| 精品国产乱码一区二区三区| 99热国产免费| 欧美调教网站| 亚洲国产一区二区三区在线播 | 日韩中文字幕视频网| 国产精品入口免费| 蜜臀91精品国产高清在线观看| 日韩欧美一区二区三区四区| 亚洲高清影视| 男女激情无遮挡| 麻豆freexxxx性91精品| 激情小说欧美色图| 久久―日本道色综合久久| 免费黄色激情视频| 亚洲高清视频在线| 在线观看你懂的网站| 精品国产精品网麻豆系列 | 久久亚洲私人国产精品va媚药| 一级特黄曰皮片视频| 亚洲黄一区二区三区| 久久99精品波多结衣一区| 欧美美女激情18p| 五月婷婷狠狠干| 日韩一区二区欧美| 精品人人视频| 成人福利网站在线观看| 日韩欧美ww| 992tv成人免费观看| 香蕉精品999视频一区二区 | 久久久久久人妻一区二区三区| 久久男女视频| 日本在线视频播放| 中文字幕精品—区二区四季| 国产精品美女毛片真酒店| 欧美色男人天堂| 日韩电影免费| 久久久免费观看| 亚洲国产aⅴ精品一区二区三区| 黄色99视频| 欧美日韩免费| 国产精欧美一区二区三区白种人| 91丨九色丨蝌蚪丨老版| 唐朝av高清盛宴| 欧美日韩国产首页在线观看| 四虎影视在线播放| 欧美激情小视频| 电影一区中文字幕| 亚洲啪啪av| 日韩制服丝袜av| 波多野结衣先锋影音| 一区二区三区四区亚洲| 岳乳丰满一区二区三区| 亚洲免费视频网站| 77thz桃花论族在线观看| 91久久偷偷做嫩草影院| 91综合在线| 天天色综合社区| 欧美国产精品v| 99精品人妻国产毛片| 日韩av在线免费观看一区| 久久大胆人体| 99久久精品无码一区二区毛片| 色999日韩| 国产3p在线播放| 欧美激情一区不卡| 中国女人真人一级毛片| 国产亚洲精品久久| 四虎4545www精品视频| 欧美一区二区视频17c| 奶水喷射视频一区| 西西444www无码大胆| 日韩欧美在线网址| 三级在线观看| 日本国产高清不卡| 丝袜av一区| 国产成人精品视频ⅴa片软件竹菊| 91在线观看视频| 国产精品第5页| 亚洲欧美制服第一页| 97久久香蕉国产线看观看| 欧美国产综合视频| 日韩制服丝袜先锋影音| 亚洲天堂精品一区| 欧美日韩国产一二三| www在线免费观看视频| 99超碰麻豆| 亚洲二区视频| 久久亚洲AV成人无码国产野外| 岛国av一区二区三区| 激情小说 在线视频| 国产精品爽爽ⅴa在线观看| 欧美3p视频| 超级砰砰砰97免费观看最新一期 | 久久影院中文字幕| 精品国产一区二区三区2021| www.激情网| 99久久婷婷国产精品综合| www.国产高清| 中文字幕在线观看日韩| 国产999精品在线观看| 男人添女人荫蒂免费视频| 91亚洲国产成人精品一区二三| 国产性生活视频| 久久久av亚洲男天堂| 国产成人精品亚洲线观看| 无码aⅴ精品一区二区三区浪潮 | 日本久久二区| 永久免费网站视频在线观看| 成人精品鲁一区一区二区| 最近免费中文字幕大全免费版视频| 色综久久综合桃花网| 视频一区日韩| 国产乱子夫妻xx黑人xyx真爽| 国产精品你懂的| 午夜老司机福利| 国产精品69久久| 欧美 日韩 国产 一区| 亚洲人人夜夜澡人人爽| 欧美日韩国产综合视频在线观看| 欧美寡妇性猛交xxx免费| 欧美日韩免费高清| 国产麻豆欧美日韩一区| 91精品国产高清一区二区三密臀| 俺去了亚洲欧美日韩| 日韩系列在线| 91在线第一页| 色欧美片视频在线观看在线视频| 中文字幕中文字幕在线十八区| 欧美日韩电影一区二区三区| 国产一区二区三区四区五区美女| 久久艹免费视频|