精品欧美一区二区三区在线观看 _久久久久国色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中文字幕| 久久精品视频导航| 蜜桃视频无码区在线观看| sm久久捆绑调教精品一区| 久久久国产午夜精品| 成人在线一区二区| 国产性一乱一性一伧一色| 日韩精品亚洲aⅴ在线影院| 在线日韩一区二区| 91传媒免费视频| 欧美女v视频| 久久91精品国产91久久小草| 久久久久久久久久久成人| 久久久久久久毛片| 欧美在线在线| 在线观看免费亚洲| 大陆av在线播放| 在线视频三区| 久久综合中文字幕| 91精品久久久久久久久久久久久久 | 午夜婷婷在线观看| 婷婷丁香综合| 国产一区二区三区在线观看视频 | 欧美激情一级精品国产| 中文字幕第24页| 婷婷成人综合| 精品美女在线观看| 国产精品一区二区小说| 亚洲少妇视频| 午夜在线成人av| 特级黄色录像片| 超碰免费在线| 久久久久久久久久久久久久久99| av资源站久久亚洲| 亚洲视频久久久| 老妇喷水一区二区三区| 久久久免费观看视频| 亚洲二区在线播放| 欧美艳星介绍134位艳星| 亚洲高清色综合| 男人添女人荫蒂国产| 日本成人一区二区| 欧美视频完全免费看| 成人黄色一区二区| 国产日韩电影| 欧美日韩国产丝袜另类| av高清在线免费观看| 午夜伦理在线视频| 一区二区三区在线视频观看58| 最新国产精品久久| 日本最黄一级片免费在线| 国产欧美日韩精品在线| 日本黄网免费一区二区精品| 日韩a在线观看| 91捆绑美女网站| 欧美精品国产精品久久久| 五月天婷婷激情网| 99久久精品情趣| 久久亚裔精品欧美| 免费人成在线观看网站| 久久久www成人免费无遮挡大片| 六月婷婷久久| 每日更新在线观看av| 久久青草欧美一区二区三区| 你懂的网址一区二区三区| 三级视频在线播放| 久久久av毛片精品| 一本一道久久a久久综合精品| 一级毛片视频在线| 亚洲欧美偷拍卡通变态| www.国产二区| 女厕盗摄一区二区三区| 色婷婷亚洲婷婷| 2025韩国理伦片在线观看| 亚洲三级在线| 日韩精品资源二区在线| 奇米777第四色| 精品在线91| 色噜噜狠狠狠综合曰曰曰| 无码人妻精品一区二区三区夜夜嗨| 欧美国内亚洲| 欧美在线视频一二三| 中文字幕日韩三级| 国产精品一级片在线观看| 国产精品一区二区三区免费观看| 飘雪影视在线观看免费观看 | 一区二区三区视频观看| 久久人妻无码aⅴ毛片a片app| 国产一区久久| 国产精品白嫩初高中害羞小美女 | 亚洲欧美精品一区| 日本黄色录像视频| 999亚洲国产精| 国产精品亚发布| 精品区在线观看| 久久久国产午夜精品| 在线观看污视频| 免费看av不卡| 日韩欧美一二三| 黄色正能量网站| 一区二区三区午夜视频| 日韩免费在线免费观看| 成人av一区二区三区在线观看 | 天天操夜夜操av| 一区二区三区高清视频在线观看| 国产日韩视频在线观看| 婷婷色在线视频| 亚洲人成电影网站色mp4| 欧美 国产 日本| 国产精品高清一区二区| 亚洲欧美国产精品| 久久免费小视频| 美国三级日本三级久久99 | 涩涩网站在线看| 亚洲理论电影片| 久久久久久久激情视频| 97免费观看视频| 国产色产综合色产在线视频| www.国产在线视频| 精品国产亚洲一区二区在线观看| 亚洲男女性事视频| 国产精品suv一区二区69| 久久99深爱久久99精品| 日本一区不卡| 国产免费不卡| 精品无人区太爽高潮在线播放| 欧美日韩亚洲国产另类| 理论片日本一区| 日本一区视频在线| 欧美办公室脚交xxxx| 精品欧美乱码久久久久久 | 无码人妻一区二区三区免费n鬼沢| 精品国产aⅴ| 日本精品久久久久影院| 日本高清视频在线| 亚洲成人av福利| 中文字幕第3页| 亚洲性视频h| 国产精品日韩高清| 欧美男男video| 精品久久久久久久久久久院品网 | 91视频8mav| 黄网站app在线观看| 欧美精品亚洲一区二区在线播放| 欧日韩不卡视频| 久久精品国产亚洲高清剧情介绍 | 久久精品电影| 美女黄毛**国产精品啪啪| 极品美鲍一区| 亚洲天堂男人天堂| 久久久999久久久| 国产精品久久免费看| 欧美成人福利在线观看| 97色伦图片97综合影院| 91亚洲精华国产精华| 日本一本在线免费福利| 精品国产伦一区二区三区观看方式| 九九热精品免费视频| 成人免费毛片a| 无码人妻丰满熟妇区96| 亚洲国产合集| 国产精品久久久久久久久久三级| porn亚洲| 欧美一级片在线| 精品在线视频免费观看| 91在线精品秘密一区二区| 妞干网在线免费视频| 日韩精品一区二区久久| 91老司机在线| av影片在线| 亚洲欧美日韩一区二区在线| 国产一卡二卡三卡| 亚洲欧美日韩国产一区二区三区| 免费观看污网站| 免费欧美日韩| 亚洲午夜激情| 亚洲一区二区三区中文字幕在线观看 | 精品国产乱码一区二区三区四区| av高清不卡| 日韩中文字幕精品| 成人午夜免费在线观看| 色哟哟国产精品免费观看| 免费91在线观看| 成人精品在线视频观看| 无人在线观看的免费高清视频| 99国产精品一区二区| 国产精品对白一区二区三区| 亚洲天堂av影院| 久久精品亚洲国产| 欧美日韩国产亚洲沙发| 91精品国产综合久久精品| 粉嫩aⅴ一区二区三区| 国产精品美女久久久久久久| 久草免费资源站| 欧美aaaaa成人免费观看视频| 成人区一区二区| 精品国产91乱码一区二区三区四区 | 欧美一区自拍| 成人网在线视频| 三妻四妾完整版在线观看电视剧| 日韩在线免费高清视频| 天天色棕合合合合合合合| 56国语精品自产拍在线观看| 特级西西444www大精品视频免费看| 亚洲色图在线播放| 中国黄色a级片| 国产伦精品一区二区三区在线观看 | 美女mm1313爽爽久久久蜜臀| 成人毛片一区二区| 欧美va天堂在线| 日韩欧美在线一区二区| 国产在线播放精品| 亚洲一区二区三区毛片| 日韩高清在线| 78m国产成人精品视频| www在线观看播放免费视频日本| 夜夜嗨av一区二区三区四区| 欧洲成人一区二区三区| 91精品国产入口| 亚洲av综合一区| 日韩欧美国产中文字幕| 久久国产免费观看| 亚洲三级在线免费观看| 成人一级片免费看| 久久天堂av综合合色蜜桃网| www.17c.com喷水少妇| 国产成人8x视频一区二区| 五月天视频在线观看| 免费亚洲电影在线| 少妇性l交大片| 久久99伊人| 高清在线观看免费| 激情综合久久| 野外做受又硬又粗又大视频√| 亚洲最大黄网| 日韩 欧美 自拍| 希岛爱理一区二区三区| 一区不卡字幕| 欧美激情成人| 中文字幕一区二区三区在线乱码| 日本电影一区二区| 日韩欧美手机在线| 精品一区二区三| 日韩理论片在线观看| 国产精品入口久久| 欧洲在线视频一区| 欧美一区2区| 亚洲精品乱码视频| 97精品国产福利一区二区三区| 在线观看欧美亚洲| 亚洲情侣在线| 青青视频免费在线| 伊人久久综合| 黄色动漫网站入口| 三级不卡在线观看| 日本激情视频在线| 另类小说视频一区二区| 男女视频在线观看网站| 国产乱妇无码大片在线观看| 极品白嫩少妇无套内谢| 成人av在线电影| 久久精品成人av| 国产精品污网站| 成年人一级黄色片| 亚洲国产精品一区二区www| 黄色片视频网站| 一本色道亚洲精品aⅴ| 日日噜噜噜噜人人爽亚洲精品| 色屁屁一区二区| 91高潮大合集爽到抽搐| 欧美一卡在线观看| 国产91免费看| 亚洲视频网站在线观看| 蜜桃av在线免费观看| 欧美激情精品久久久久久免费印度| 77thz桃花论族在线观看| 国产成人av网| 欧美一区一区| 欧美三日本三级少妇三99| 日韩欧美视频专区| 久久久久久久9| 日韩精品欧美精品| 一级黄色免费毛片| 91女神在线视频| 日本爱爱小视频| 天天色图综合网| 亚洲手机在线观看| 亚洲国产精品久久久久秋霞不卡| 国产女主播在线写真| 色综合天天综合网国产成人网| 韩国成人动漫| 99久热re在线精品视频| 国产99精品| 青草视频在线观看视频| 日韩精品国产欧美| 不许穿内裤随时挨c调教h苏绵 | 91成人福利视频| 日韩欧美黄色动漫| 国产伦精品一区二区三区免.费| 亚洲第一黄色网| 成人日韩欧美| 国产成人av网址| 欧美wwwwww| 男人j进女人j| 日韩电影在线看| 色天使在线视频| 一区二区三区四区激情| 天堂网一区二区| 亚洲精品国产免费| av在线免费网站| 国产剧情久久久久久| 九九热爱视频精品视频| 欧美一级片免费播放| 极品少妇一区二区| 日韩在线免费观看av| 亚洲国产一区二区三区| 国产免费不卡视频| 在线播放国产一区二区三区| 免费h视频在线观看| 国产高清自拍一区| 欧美影院一区| 中文字幕第66页| 国产精品久久久久久久久免费丝袜| 久久精品国产成人av| 亚洲精品在线观| 亚洲丝袜一区| 97人摸人人澡人人人超一碰| 国产精品毛片一区二区在线看| jizz欧美激情18| 久久精品综合网| 精品免费囯产一区二区三区| 欧美精品一区二区高清在线观看| 最新av在线播放| 亚洲综合在线小说| 亚洲精品99| 国内av免费观看| 亚洲色图欧洲色图婷婷| 91久久精品无码一区二区| 最近2019中文字幕大全第二页 | 色婷婷av一区| 欧美日本网站| 国产精品久久久久7777婷婷| 精品国产一区二区三区四区 | 国产一区二区三区免费播放| 狂野欧美性猛交| 91精品欧美一区二区三区综合在| 免费在线毛片网站| 亚洲精品欧美日韩专区| 综合一区在线| 国产sm在线观看| 亚洲成av人影院在线观看网| 三级在线观看网站| 3344国产精品免费看| 精品视频黄色| aaa一级黄色片| 一区二区三区成人在线视频| 国产成人手机在线| 2019av中文字幕| 激情五月色综合国产精品| 免费看国产黄色片| 一色桃子久久精品亚洲| 精品二区在线观看| 国外成人在线播放| 奇米色欧美一区二区三区| www.这里只有精品| 亚洲黄色性网站| 香蕉av一区二区三区| 日韩美女av在线免费观看| 日本一区二区三区视频| 深夜做爰性大片蜜桃| 午夜精品一区二区三区免费视频| 日韩偷拍自拍| 成人激情综合网| 亚洲精品黄色| 中文字幕免费在线看线人动作大片| 欧美精品在线观看一区二区| av伦理在线| 深田咏美在线x99av| 国产伦理精品不卡| 91精品国产高清一区二区三密臀| 视频一区视频二区国产精品| 午夜免费欧美电影| 人妻有码中文字幕| 亚洲色大成网站www久久九九| 天天舔天天干天天操| 成人国产精品免费视频| 在线电影一区| 亚洲激情图片网| 精品无人区太爽高潮在线播放| 24小时成人在线视频| 337p粉嫩大胆噜噜噜鲁| 18欧美亚洲精品| 免费在线高清av| 国产精品18毛片一区二区| 青青草成人在线观看| 日本少妇性生活|