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

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

發(fā)布于 2025-11-17 09:52
瀏覽
0收藏

作者 | 崔皓

審校 | 重樓

開篇

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

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

LLM推理優(yōu)化:AWQ 與 GPTQ 的模型壓縮策略與量化技術(shù)解析-AI.x社區(qū)

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

模型參數(shù)量化

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

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

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

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

LLM推理優(yōu)化:AWQ 與 GPTQ 的模型壓縮策略與量化技術(shù)解析-AI.x社區(qū)

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

LLM推理優(yōu)化:AWQ 與 GPTQ 的模型壓縮策略與量化技術(shù)解析-AI.x社區(qū)

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

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

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

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

后訓練量化

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

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

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

PTQ的兩大階段分解

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

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

LLM推理優(yōu)化:AWQ 與 GPTQ 的模型壓縮策略與量化技術(shù)解析-AI.x社區(qū)

預量化變換 (Pre - quantization Transformation)

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

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

量化誤差緩解 (Quantization Error Mitigation)

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

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

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

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

LLM推理優(yōu)化:AWQ 與 GPTQ 的模型壓縮策略與量化技術(shù)解析-AI.x社區(qū)

下面我們會針對這兩個算法進行討論。

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

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

鑒別顯著權(quán)重

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

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

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

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

LLM推理優(yōu)化:AWQ 與 GPTQ 的模型壓縮策略與量化技術(shù)解析-AI.x社區(qū)

隨機挑選

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

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

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

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

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

實驗評估結(jié)果

作者對上述三種方法進行了實驗,并將困惑度(PPL,值越小越好)作為評估指標。

放大(Scaling)

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

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

LLM推理優(yōu)化:AWQ 與 GPTQ 的模型壓縮策略與量化技術(shù)解析-AI.x社區(qū)

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

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

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

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

  • 圖(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)”在硬件上效率差,因為硬件難以高效處理不同精度的混合計算。

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

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

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

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

需要說明的是,量化時放大顯著權(quán)重(即乘較大縮放因子)可降低量化誤差;對于非顯著權(quán)重,乘以較小縮放因子,減少關(guān)注。這就是縮放(Scaling)方法,通過調(diào)整激活值與權(quán)重間的縮放因子,實現(xiàn)降低誤差和保證權(quán)重顯著特性的目的。上述說明,只是對縮放因子的結(jié)論,推導過程不在這里展開??梢圆榭慈缦抡撐模野焰溄臃诺浇Y(jié)尾。

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

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

步驟?

機制?

描述與來源?

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

基于激活值的感知

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

2.等效變換

數(shù)學等效縮放

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

3.確定縮放因子

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

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

4.保護與量化

放大顯著權(quán)重

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

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

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

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

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

AWQ 實現(xiàn)

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

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

可以使用如下命令對其進行安裝:

pip install autoawq

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

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

pip install autoawq[kernels]

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

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

pip install autoawq[cpu]

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

# 導入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ù):啟用零點(zero_point),分組大小128,權(quán)重量化為4位,版本為GEMM
quant_config = { "zero_point": True, "q_group_size": 128, "w_bit": 4, "version": "GEMM" }

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

# 對模型進行量化,傳入分詞器和量化配置
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 生成式預訓練 Transformer 量化

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

LLM推理優(yōu)化:AWQ 與 GPTQ 的模型壓縮策略與量化技術(shù)解析-AI.x社區(qū)

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

GPTQ功能定位

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

GPTQ核心機制

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

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

數(shù)值演示:逐列補償機制

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

LLM推理優(yōu)化:AWQ 與 GPTQ 的模型壓縮策略與量化技術(shù)解析-AI.x社區(qū)

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

LLM推理優(yōu)化:AWQ 與 GPTQ 的模型壓縮策略與量化技術(shù)解析-AI.x社區(qū)

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

LLM推理優(yōu)化:AWQ 與 GPTQ 的模型壓縮策略與量化技術(shù)解析-AI.x社區(qū)

總結(jié)

LLM推理優(yōu)化:AWQ 與 GPTQ 的模型壓縮策略與量化技術(shù)解析-AI.x社區(qū)

Hessian矩陣在自補償中的作用

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

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

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

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

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

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

GPTQ 實現(xiàn)

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

可以通過如下命令進行安裝:

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

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

# 導入加載數(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"

# 加載校準數(shù)據(jù)集(用于量化過程中的參數(shù)校準):
# 加載allenai/c4數(shù)據(jù)集中的en/c4-train.00001-of-01024.json.gz文件,
# 選取訓練集的前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)

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

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

參考文獻:

??https://arxiv.org/pdf/2306.00978??

??https://arxiv.org/pdf/2210.17323??

作者介紹

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

收藏
回復
舉報
回復
相關(guān)推薦
中文字幕一区二区三区欧美日韩| 日韩少妇视频| 免费观看一级特黄欧美大片| 久久精品色欧美aⅴ一区二区| 国产美女18xxxx免费视频| 成人区精品一区二区不卡| av网站免费线看精品| 国产成人+综合亚洲+天堂| 日本成人精品视频| 国产一区二区三区不卡av| 欧美天天综合网| 欧美狂野激情性xxxx在线观| 国产日韩精品在线看| 国产精品18久久久久久vr| 日韩美女视频免费看| 成年人二级毛片| 小嫩嫩12欧美| 日韩色在线观看| 国产黄色特级片| 久久免费电影| 国产精品久久久久久久久久免费看| 99在线看视频| 在线免费一级片| 免费在线亚洲| 欧美激情久久久久| 国产精品精品软件男同| 国产毛片一区二区三区| 精品美女一区二区| 小早川怜子一区二区三区| 中国色在线日|韩| 亚洲综合色区另类av| 日韩亚洲欧美精品| 亚洲欧洲综合在线| 丰满亚洲少妇av| 亚洲一区亚洲二区| 亚洲一区精品在线观看| 久久高清免费观看| 69久久夜色精品国产7777| 久久久久久蜜桃| 天天综合网91| 日韩亚洲综合在线| 一区二区精品免费| 亚洲涩涩av| 日韩精品小视频| 日韩av成人网| 久久久久毛片免费观看| 在线综合亚洲欧美在线视频| 韩国中文字幕av| 三级成人在线| 欧美最新大片在线看| 欧美a在线视频| 亚洲三级欧美| 欧美日韩一区二区三区| 日韩免费视频播放| 婷婷电影在线观看| 一本一本久久a久久精品综合麻豆| 国产二区视频在线| 波多野结衣在线高清| 亚洲午夜电影在线观看| 久久久久久免费看| 国产高清视频色在线www| 午夜精品久久久久久久99樱桃 | av中文字幕免费在线观看| 狠狠色丁香婷婷综合| 91九色视频导航| 国产av无码专区亚洲av| 国产精品1区2区| 成人18视频| 手机在线精品视频| 久久综合九色综合97_久久久| 久久久久久久有限公司| 免费黄色片在线观看| 国产调教视频一区| 亚洲日本欧美在线| av片在线观看永久免费| 亚洲va中文字幕| 国产在线观看福利| 99亚洲伊人久久精品影院| 欧美精品 国产精品| 亚洲欧洲日本精品| 午夜日韩影院| 日韩av在线免费观看一区| 人妻av一区二区| 久久99国产精一区二区三区| 久久精品久久久久电影| 欧美成人一二三区| 亚洲免费在线| 91精品视频网站| 五月婷婷综合久久| 欧美激情一二三区| 久久久成人精品一区二区三区| 七七成人影院| 在线免费亚洲电影| 国产又粗又猛又爽又黄| 神马午夜久久| 精品国产视频在线| 日韩精品成人在线| 久久精品国产一区二区三| 国产精品对白一区二区三区| 国产免费视频在线| 亚洲精品成a人| 国产成人久久777777| 九九99久久精品在免费线bt| 亚洲精选中文字幕| 免费在线观看一级片| 欧美一级二区| 99在线视频首页| 成人在线播放视频| 午夜精品在线看| 一区二区在线免费看| 麻豆精品少妇| 久国内精品在线| 黄色av一区二区| zzijzzij亚洲日本少妇熟睡| 欧美aaa在线观看| 电影网一区二区| 欧美刺激脚交jootjob| www.日本高清视频| 国产精品美女久久久| 99精品国产一区二区| 99免在线观看免费视频高清| 香蕉加勒比综合久久| 亚洲一区二区中文字幕在线观看| 久操精品在线| 91国在线精品国内播放| 99在线小视频| 日韩美女精品在线| 少妇黄色一级片| 亚洲精品中文字幕99999| 久久久久久久久综合| 99久久精品国产成人一区二区| 久久九九久久九九| 日日摸日日碰夜夜爽无码| www.久久久久爱免| 色偷偷av亚洲男人的天堂| 99超碰在线观看| 波多野结衣亚洲一区| 97久久国产亚洲精品超碰热| 国产精品igao视频网网址不卡日韩| 国产香蕉精品视频一区二区三区| xxxx.国产| 91视频.com| 黄色一级视频片| 韩国精品福利一区二区三区| 欧美精品一区二区三区国产精品| 国产又粗又猛视频| 最新高清无码专区| 污污的视频免费| 欧美xxxx中国| 成人网在线免费观看| 婷婷激情在线| 欧美福利视频导航| 成人在线观看小视频| 国产尤物一区二区在线| 99久久久无码国产精品性色戒| 亚洲福利影视| 久久高清视频免费| www.激情五月| 亚洲一区二区三区影院| 亚洲高清无码久久| 中文一区在线| 人禽交欧美网站免费| 亚洲精品国产嫩草在线观看| 亚洲最大在线视频| 一级黄在线观看| 亚洲精品ww久久久久久p站| 制服下的诱惑暮生| 伊人成人在线| 欧美亚洲另类在线一区二区三区| 国产亚洲一区二区手机在线观看| 色777狠狠综合秋免鲁丝| 国产又色又爽又黄又免费| 亚洲欧美电影院| 亚洲成人精品在线播放| 日韩视频三区| 神马影院我不卡| 亚洲日本中文| 国内精品模特av私拍在线观看| 亚洲 欧美 自拍偷拍| 91福利区一区二区三区| 国产精品视频一区二区在线观看| 大桥未久av一区二区三区中文| 少妇高潮喷水在线观看| 欧美日韩有码| 99免费在线观看视频| 男人的天堂免费在线视频| 中文亚洲视频在线| 亚洲精品视频专区| 在线观看日韩精品| 午夜少妇久久久久久久久| 99久久精品国产一区二区三区| 久久精品一区二| 欧美破处大片在线视频| 青青草国产精品| 欧洲大片精品免费永久看nba| 91tv亚洲精品香蕉国产一区7ujn| sese在线视频| 亚洲国产成人久久综合一区| 中文字幕+乱码+中文字幕明步| 亚洲最色的网站| 一级黄色录像毛片| 成人一二三区视频| 亚洲福利精品视频| 亚洲高清久久| 欧洲xxxxx| 亚洲最好看的视频| 91在线视频免费| 欧美大片免费观看网址| 久久久久久69| 午夜视频在线| 亚洲欧美日韩视频一区| 一二三四区在线| 色综合天天性综合| 日本中文字幕网| 亚洲靠逼com| 少妇视频在线播放| 91女人视频在线观看| 不卡的一区二区| 蜜臀av性久久久久蜜臀aⅴ流畅| 国产 日韩 亚洲 欧美| 91成人免费| 三区精品视频观看| 天天做夜夜做人人爱精品| 99久久久久国产精品免费| 开心久久婷婷综合中文字幕| 日本亚洲欧美三级| 成人三级高清视频在线看| 欧美成aaa人片免费看| yourporn在线观看视频| 亚洲欧洲激情在线| 无码精品视频一区二区三区 | jvid福利在线一区二区| 久久香蕉综合色| 激情av综合| 国产经品一区二区| 伊人久久亚洲| 亚洲在线免费观看| a一区二区三区亚洲| 成人免费黄色网| 亚洲精品自拍| 成人黄色免费在线观看| 亚洲人体在线| 亚洲自拍偷拍色图| 国产精品美女久久久久人| 国产主播在线一区| 色婷婷成人网| 91久久久久久久久| 国产日韩中文在线中文字幕| 成人写真视频福利网| 国产一区二区三区黄网站| 成人av.网址在线网站| 先锋影音网一区二区| 国产欧美亚洲视频| 亚洲香蕉久久| 51国产成人精品午夜福中文下载| 国产免费av国片精品草莓男男| 成人做爰www免费看视频网站| 中文字幕成人| 91最新在线免费观看| 日韩免费精品| 国产精品亚洲综合| 欧美午夜寂寞| 日本不卡二区| 99国产**精品****| 99久热在线精品视频| 黄色av一区| 99精品在线免费视频| 久久亚洲图片| 色噜噜狠狠一区二区| 狠狠色综合色综合网络| 日韩精品xxx| 91老师国产黑色丝袜在线| 欧美 日韩 成人| 亚洲男同1069视频| 五月天婷婷丁香| 日本精品一级二级| 国产精品视频一区二区三区,| 欧美videos大乳护士334| 四虎永久在线精品免费网址| 亚洲人精品午夜在线观看| 在线免费av电影| 久久久久久久亚洲精品| 亚洲最大成人| 亚洲综合在线做性| 日韩欧美在线精品| 亚洲精品国产精品久久| 在线精品小视频| 欧美日韩在线视频一区二区三区| 免费在线欧美视频| 9.1在线观看免费| 国产欧美日韩在线看| 青青草在线观看视频| 欧美性生活大片免费观看网址| 一级片免费观看视频| 亚洲激情在线观看视频免费| yourporn在线观看中文站| 欧美精品久久久久久久久久| 香蕉成人影院| 国产精品久久波多野结衣| 国产一区二区三区四区| 国产美女作爱全过程免费视频| 久久资源在线| 中文字幕在线国产| 国产精品视频在线看| 久久9999久久免费精品国产| 欧美性猛片aaaaaaa做受| 高清乱码毛片入口| 日韩亚洲欧美中文高清在线| 小草在线视频免费播放| 91手机视频在线观看| 九色精品国产蝌蚪| 僵尸世界大战2 在线播放| 日韩av在线播放中文字幕| 亚洲中文字幕无码一区| 中文字幕一区在线| 无码人妻一区二区三区线| 欧美成人激情免费网| 欧美性猛交xxx乱大交3蜜桃| 欧美中文字幕视频| 欧美高清hd| 亚洲图片都市激情| 久久国产88| 妖精视频一区二区| 亚洲乱码中文字幕| 在线观看黄色国产| 亚洲欧美精品中文字幕在线| 啪啪免费视频一区| 99精品在线直播| 99久久.com| 狠狠躁狠狠躁视频专区| 久久这里都是精品| 美日韩一二三区| 亚洲国产一区二区三区在线观看 | 97视频在线观看免费高清完整版在线观看| 国产原创一区| 青青成人在线| 日日噜噜夜夜狠狠视频欧美人| 中文在线永久免费观看| 午夜视频久久久久久| 亚洲精品无amm毛片| 欧美极品少妇xxxxⅹ免费视频| 久久久久久久久成人| 久久久无码中文字幕久...| 国产曰批免费观看久久久| www.4hu95.com四虎| 欧美自拍丝袜亚洲| 久久久久久久久亚洲精品| 国产91精品久久久久| 台湾亚洲精品一区二区tv| 99精品人妻少妇一区二区| av电影在线观看一区| 欧美一区二区三区四| 亚洲偷欧美偷国内偷| 亚洲电影有码| 国产高清精品软男同| 国产福利一区在线| 国产亚洲精品久久777777| 亚洲高清在线观看| 一二三四视频在线中文| 日韩免费av一区二区三区| 美女脱光内衣内裤视频久久网站 | 亚洲综合清纯丝袜自拍| 国产成人三级在线观看视频| 午夜剧场成人观在线视频免费观看| 欧美尿孔扩张虐视频| 久久久久人妻精品一区三寸| 国产欧美一区二区精品性色超碰| 亚洲一区中文字幕在线| 久久综合久久美利坚合众国| 日韩在线亚洲| 成年人视频观看| 国产三级精品视频| 91麻豆视频在线观看| 久久久噜噜噜久久中文字免| 蜜桃成人av| 91av视频免费观看| 亚洲一区二区欧美日韩| 国产有码在线| 91精品国产综合久久久久久丝袜| 99精品福利视频| av免费播放网站| 欧美大片免费久久精品三p| 不卡福利视频| 国产免费一区二区三区四在线播放| 成人av午夜电影| 一级一级黄色片| 欧美激情图片区| 精品国产一区二区三区久久久樱花| 亚洲 国产 图片| 黄色精品一区二区| av在线免费播放网站| 国产精品二区在线观看| 免费欧美在线| 麻豆精品一区二区三区视频| 亚洲欧美国产精品久久久久久久| 国产亚洲精彩久久| 视频一区视频二区视频| 国产成人午夜精品影院观看视频| 国产亚洲欧美久久久久| 国产亚洲欧美日韩美女|