解碼LLM量化:深入剖析最常見8位與4位核心算法

解碼LLM量化:深入剖析8位與4位核心算法

大型語言模型(LLM)的性能日益強大,但其龐大的體積和高昂的計算成本構成了部署的主要障礙。模型量化,作為一種將高精度浮點權重(如16位)映射到低位寬整數(如8位或4位)的技術,已成為應對這一挑戰的關鍵。它旨在不顯著犧牲模型性能的前提下,大幅壓縮模型大小、降低顯存占用并加速推理。

本文將系統性地剖析當前業界主流的8位與4-bit量化算法,重點闡述其核心思想、差異點及實踐中的關鍵注意事項。


一、 堅實的基礎:8位(INT8)量化

8位量化技術相對成熟,能夠在顯著降低資源消耗的同時,保持接近原始模型的性能。其主要挑戰在于如何有效處理權重和激活值中的“異常值”(Outliers)。

算法1:Absmax 量化 (Absolute Maximum Quantization)

Absmax量化是一種基礎且高效的對稱量化方案,也是許多框架中8位量化的起點。

  • 核心思想
    Absmax的核心在于找到權重張量中所有數值的絕對值最大值(absmax),并以此為基準進行線性縮放。它將原始的[-absmax, absmax]浮點數范圍,直接映射到[-127, 127]的8位有符號整數范圍內。這個absmax值與一個固定的整數范圍(127)共同定義了縮放因子(Scale),它是連接浮點世界和整數世界的橋梁。

  • 算法流程

    1. 尋找縮放基準: 對于給定的權重張量W,計算 s = absmax(W)
    2. 計算縮放因子: Scale = s / 127
    3. 量化: W_int8 = round(W / Scale)
    4. 反量化: 在計算時,通過 W_fp16 ≈ W_int8 * Scale 恢復浮點數值。
  • 關鍵挑戰
    Absmax的主要弱點在于對異常值的極端敏感性。若一個張量中絕大多數權重都分布在[-1, 1]區間,但存在一個值為20.0的異常值,那么absmax將為20.0。這會導致縮放因子變得極大,使得[-1, 1]區間內的所有權重都被量化到極少數幾個整數上(如-1, 0, 1),從而丟失了大量的精度信息。

算法2:SmoothQuant

SmoothQuant是一種更先進的量化感知(Quantization-Aware)算法,它精準地識別并解決了導致LLM量化性能下降的關鍵瓶頸——激活值中的異常值。

  • 核心思想
    SmoothQuant的核心在于,矩陣乘法 Y = X * W 的量化誤差同時來源于激活值X和權重W。其中,激活值的分布通常比權重更不規則,更容易出現大幅度的異常值。SmoothQuant提出,可以通過一個數學上等價的變換,將激活值的量化“難度”一部分“遷移”給權重。

  • 算法流程

    1. 等價變換: 引入一個可學習的平滑因子s,將矩陣乘法改寫為 Y = (X / s) * (s * W)
    2. 難度遷移: 通過優化選擇s,使得X' = X / s的數值分布變得更加平滑(異常值被抑制),而W' = s * W的分布雖然有所變化,但仍在易于量化的范圍內。
    3. 獨立量化: 對處理后、更容易量化的X'W'分別進行標準的8位Absmax量化。
  • 差異點與優勢

    特性AbsmaxSmoothQuant
    關注點僅關注權重張量本身。同時關注激活值和權重,識別出激活值是主要矛盾。
    處理方式被動接受權重分布,對異常值無能為力。主動干預,通過數學變換平滑激活值,優化整個計算流。
    性能表現在LLM中遇到激活值異常時,性能下降明顯。顯著提升了LLM的INT8量化性能,已成為高性能推理的標準。

二、 突破極限:4位(INT4)量化

4位量化能帶來極致的模型壓縮率,但精度挑戰也隨之劇增。簡單的線性映射在此幾乎完全失效,必須采用更復雜的、基于優化的算法。

算法1:GPTQ (Generative Pre-trained Transformer Quantizer)

GPTQ是早期在4位量化領域取得突破性成功的算法,其核心是把量化視為一個誤差最小化的優化問題。

  • 核心思想
    GPTQ的目標不是簡單地讓量化后的權重在數值上逼近原始權重,而是要找到一組4位整數權重W_int4,使得反量化后的權重W'與原始輸入X相乘的結果,與原始權重WX相乘的結果誤差最小。即 argmin || W*X - W'*X ||

  • 算法流程

    1. 逐層量化: 采用貪心策略,一次只處理模型中的一層,固定其他層不變。
    2. 逐列優化: 在單層權重矩陣內部,逐列進行量化。
    3. 誤差補償: 這是GPTQ的精髓。在量化完第i列后,會計算出產生的量化誤差。這個誤差將被添加到所有尚未被量化的后續列上。這樣,后續列的量化過程就會自動地去“補償”前面步驟中產生的誤差,從而實現全局最優。
    4. 校準數據: 該過程需要一個小的校準數據集來獲取代表性的激活值X,以便進行誤差計算和優化。
算法2:AWQ (Activation-aware Weight Quantization)

AWQ從一個完全不同的視角出發,它認為并非所有權重都同等重要,應該優先保護那些對模型輸出影響最大的權重。

  • 核心思想
    AWQ的觀察是,權重的重要性與其對應的激活值幅度高度相關。一個權重即使數值不大,但如果它總是與一個大幅度的激活值相乘,那么它對最終結果的貢獻就很大。因此,量化的核心應該是保留這些與顯著激活通道相關的權重的精度

  • 算法流程

    1. 識別重要激活: 使用校準數據集,分析并找到那些平均幅度較大的激活通道。
    2. 保護對應權重: 與這些重要激活通道相對應的權重被視為“顯著權重”。
    3. 選擇性縮放: 引入一個優化的縮放因子,僅對這些顯著權重進行縮放,降低其數值范圍,從而使其在量化時能被更精確地表示。為了維持數學等價性,對應的激活通道會被相應地放大。
    4. 量化: 對縮放后的權重張量進行4位量化。
  • 差異點與權衡:GPTQ vs. AWQ

    特性GPTQAWQ
    核心哲學誤差重建: 通過迭代補償,讓最終輸出的誤差最小化。顯著性保護: 保護與重要激活相關的權重,從源頭減少誤差。
    量化過程迭代優化,逐列求解,量化過程相對較慢。分析驅動,一次性縮放,量化過程非常快。
    校準數據用于計算和最小化輸出誤差。用于分析激活值分布,識別重要權重。
    性能表現精度非常高,長期以來是4位量化的黃金標準。精度與GPTQ相當,有時更優,且量化速度和推理性能有優勢。

三、 注意事項與總結

  1. 校準數據集的重要性: 對于GPTQ和AWQ這類高級算法,一個雖小但具有代表性的校準數據集是保證量化后模型性能的關鍵。
  2. 硬件與核函數: 量化的最終推理加速效果,高度依賴于底層硬件是否對低位寬整數運算(如INT4/INT8矩陣乘法)有高效的支持(Kernel)。
  3. 生態系統: bitsandbytes, auto-gptq, auto-awq等庫的出現,極大地簡化了這些復雜算法的應用,使其能夠被廣大開發者方便地集成和使用。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/96540.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/96540.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/96540.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

提問:溫度不改變 logits 與概率的排名,為何還會影響模型輸出?

你此前圍繞溫度的核心困惑始終是:“溫度不改變 logits 與概率的排名,為何還會影響模型輸出?” 以下總結將緊扣這一困惑,并重點補充核采樣(Top-p)在其中的作用,明確溫度與核采樣如何共同影響輸出…

【文獻閱讀】Lossless data compression by large models

1. 中華人工智能研究中心,鄭州。 2. 鵬程實驗室,深圳。 3. 上海數學與交叉學科研究所,上海。 4. 中國科學院計算技術研究所,北京。 5. 寧波人工智能產業研究所,寧波。 6. 滑鐵盧大學計算機科學學院,加拿大安…

注意力機制:捕獲長距離依賴關系的革命性技術

本文由「大千AI助手」原創發布,專注用真話講AI,回歸技術本質。拒絕神話或妖魔化。搜索「大千AI助手」關注我,一起撕掉過度包裝,學習真實的AI技術! ? 1. 注意力機制概述:為什么需要關注"長距離依賴&qu…

PHP如何使用JpGraph生成柱形圖?

PHP使用JpGraph庫生成各類統計圖形具有顯著優勢,該庫作為專業的PHP圖表生成工具,能夠高效創建包括折線圖、餅圖、散點圖在內的多種數據可視化圖形,其核心價值在于提供了豐富的圖形定制能力和簡潔的API接口。JpGraph通過純PHP實現,…

免費的端口映射工具 ChmlFrp

免費的端口映射工具 ChmlFrp 前言:之前我寫過一篇關于cloudflare tunnel的使用教程,ChmlFrp是一個類似的工具,也可以用來進行內網穿透 我的博客對應文章地址 1.注冊賬號 注冊地址 點擊這個鏈接前往官網注冊一個賬號,過程簡單&…

遙感領域解決方案丨涵蓋:高光譜、無人機多光譜、空天地數據識別與計算

一:AI智慧高光譜遙感實戰:手撕99個案例項目、全覆蓋技術鏈與應用場景一站式提升方案在遙感技術飛速發展的今天,高光譜數據以其獨特的光譜分辨率成為環境監測、精準農業、地質勘探等領域的核心數據源。然而,海量的波段數據、復雜的…

中科米堆CASAIM自動化三維測量設備測量汽車殼體直徑尺寸

隨著新能源汽車產業向輕量化與高集成度發展,殼體作為電池組和電驅系統的核心承載部件,其孔位加工精度直接影響裝配密封性及結構強度,傳統人工測量方式已難以滿足現代化生產需求。自動化三維測量設備的引入,為汽車殼體直徑尺寸測量…

08.21總結

圓方樹 引入 我們注意到,樹結構相比普通圖具有諸多優良特性。若能將在無向圖上求解的問題轉化為樹結構問題,往往能大幅簡化求解過程。圓方樹正是實現這一轉化的有效工具。 定義 我們稱原圖中的點為"圓點"。通過引入方點并調整邊的關系&#xf…

亞馬遜廣告優化新邏輯:從人工苦力到AI智能的進化之路

"為什么我的廣告花費越來越高,轉化卻越來越差?""如何在海量關鍵詞中找到真正能帶來轉化的黃金詞?""為什么手動調整出價總是跟不上流量變化的速度?""怎樣才能避免因庫存問題導致的廣告權重暴跌…

【51單片機】【protues仿真】基于51單片機水位監測系統

目錄 一、主要功能 二、使用步驟 三、硬件資源 四、軟件設計 五、實驗現象 一、主要功能 1、數碼管顯示當前水位值 2、按鍵設置水位上下限閾值 3、當水位低于下限,啟動蜂鳴器警報并抽水至水位上限停止抽水 4、電機模擬水泵,蜂鳴器,指示…

白名單過濾的文件上傳如何bypass:boot2root靶機之fristileaks

靶機提示 base64解碼提取圖片 文件上傳之apache多后綴名解析漏洞 linpeas dirtycow提權 靶機下載 通過網盤分享的文件:FristiLeaks_1.3.ova 鏈接: https://pan.baidu.com/s/1ZWznp8egNGwnQqwh1gkSZg?pwdwwvp 提取碼: wwvp --來自百度網盤超級會員v8的分享主…

Centos 8 管理防火墻

firewall-cmd 檢查與安裝 在 CentOS 8 上安裝和啟用 firewalld(提供 firewall-cmd 工具)的步驟如下:1. 檢查 **firewalld** 是否已安裝 在安裝前,先檢查系統中是否已安裝: sudo firewall-cmd --version如果返回版本號&…

使用PPT進行科研繪圖過程中常用的快捷鍵

PPT科研繪圖常用快捷鍵速查表功能類別快捷鍵功能描述基礎操作與選擇Ctrl A全選幻燈片上的所有對象。Ctrl D快速復制選中的對象,并自動保持等間距排列。Shift Click多選多個對象。Ctrl G將選中的多個對象組合成一個整體。Ctrl Shift G取消組合。Ctrl 拖動復制…

`strchr` 字符串查找函數

1) 函數的概念與用途 strchr 是 C 標準庫中的一個基礎但極其重要的字符串處理函數,它的名字來源于"string chracter"(字符串字符)。這個函數的功能非常明確:在字符串中查找特定字符的第一次出現位置。 可以將 strchr 想…

Redis 678

Redis 8 是當前的最新穩定版(截至 2024 年中),它在 Redis 7 的基礎上帶來了更多重要改進。我們來對這三個主要版本進行一次全面的功能和性能對比。 核心演進脈絡 Redis 6 (2020):多線程時代的開創者。解決了網絡 I/O 瓶頸&#xf…

【大白話解析】 OpenZeppelin 的 Address 庫:Solidity安全地址交互工具箱?(附源代碼)

?? 一、這個文件是干嘛的?—— Address.sol 是個“工具箱” 你可以把這個 Address.sol文件理解為一個 ??“工具箱”??,里面裝了一堆??專門用來安全地跟別的地址(賬戶或合約)打交道的工具函數??。 在區塊鏈世界里,地址(address)可以是: ??外部賬戶(EOA)…

漫談《數字圖像處理》之測不準原理

在數字圖像處理中,提到的 “測不準原理” ,和量子力學里由海森堡提出的 “不確定性原理” (Heisenberg uncertainty principle,也叫海森堡測不準原理)有一定的類比關系,但本質上并不是同一個概念。以下為詳…

Linux服務測試

一、環境準備確認 確保 4 臺主機(APPSRV、STORAGESRV、ROUTERSRV、CLIENT )網絡連接正常,虛擬機網卡模式按要求設置(APPSRV、STORAGESRV 為 NAT 模式;ROUTERSRV 為雙網卡,NAT 僅主機模式;CLIE…

2.Shell腳本修煉手冊---創建第一個 Shell 腳本

2. 創建第一個 Shell 腳本 文章目錄2. 創建第一個 Shell 腳本2.1 什么是 Shell 腳本?2.1.1 腳本開頭:告訴系統用什么程序執行2.1.2 腳本注釋:給人看的 “說明書”2.1.3 bash 與 sh 的區別2.2 如何執行 Shell 腳本?方法 1&#xff…

Day22 順序表與鏈表的實現及應用(含字典功能與操作對比)

day22 順序表與鏈表的實現及應用(含字典功能與操作對比) 使用順序表實現查字典功能 支持連續查詢單詞,輸入 #quit 退出程序。數據格式示例如下: a\0 indef art one\r\n word mean [---buf--->] [---i--…