iT邦幫忙

2026 iThome 鐵人賽

DAY 12
0
AI Engineering

128GB 統一記憶體的三十天:DGX Spark 地端 LLM 與生成式 AI 部署實戰系列 第 12

Day 12|量化格式解析:「4-bit」兩個字,古今多少事 ? 都付笑談中

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20260825/20141816OsEa8lSttm.png

從昨天那 19% 說起

Day 11 的同場加映,是提到近期一直很熱門的 Ollama 這款地端 AI 推論引擎平台,當時給了大家一個問題,兩款都叫 MXFP4 的 gpt-oss-120b,同一個引擎同一組旗標,decode 這個 AI 推論很重要的項目成績卻差了 19%。

這時去打開檔案才發現,其中一個模型檔案的注意力層是 BF16,另一模型的檔案是 q8_0。兩款檔案的名字都沒有騙人,但「量化格式」這四個字,有他自己的眉角,因此我想協助大家簡單地去理解量化版到底是甚麼意思?

看完這篇你會知道三件事,一款 AI 模型的量化版本常見格式(GGUF 家族、MXFP4、FP8、AWQ、NVFP4)各自是什麼? 一款量化模型檔案裡面其實是配方而不是單一數字,以及在 128GB 統一記憶體的機器上該怎麼選量化模型好呢? 針對更小 VRAM 顯示卡的量化模型怎樣選,我也有一些小心得可以分享給大家。

先建立一個直覺:量化在買什麼、賣什麼

模型權重原本以 16 位元浮點數(BF16)儲存,量化就是用更少的位元表示同一批數字,8 位元砍一半、4 位元砍四分之三。賣掉的是數值精度,買回來的有兩樣,也就是最重要的 記憶體空間(讓 VRAM 能放得下比原本可容納空間更大的大檔案模型)與速度

速度這一項在這台機器上特別值錢,複習 Day 2 的結論,decode 是記憶體頻寬受限的工作,每生成一個 token 都要把啟用權重完整讀一遍。權重從 16 位元變 4 位元,每個 token 要搬的位元組直接變四分之一,在頻寬固定 273GB/s 的前提下,量化就是 decode 的直接加速器。這也是為什麼 Spark 社群對量化格式的討論比獨顯社群更熱衷,GB10 的頻寬比它的普通 AI 算力要更珍貴。

那為什麼砍到 4 位元模型還能用?關鍵在於現代量化不是無腦四捨五入直接讓模型降智商,而是分組縮放,把權重切成小群組,每組各自記一個縮放係數,用少量額外空間保住數值範圍,和原先本人的智商就不會降太多。各家格式的差異,本質上就是「怎麼分組、怎麼縮放、哪些層捨不得砍」的各種大小配方差異,也因此效率、速度、品質,都有相當的不同。

主流模型格式家族圖鑑

https://ithelp.ithome.com.tw/upload/images/20260825/20141816knrGza2pGk.png

格式 位元數 主場引擎 特點
GGUF q8_0 8 llama.cpp 系 品質幾乎無損的保守選擇
GGUF q4_k_m 約 4.5 llama.cpp 系 社群最流行的平衡點
GGUF iq 系(imatrix) 2 到 4 llama.cpp 系 用校準資料決定哪裡該省,低位元的救星
MXFP4 4 跨引擎 microscaling 標準格式,Blackwell 硬體原生支援
FP8(e4m3) 8 vLLM 系 浮點量化,Hopper 之後硬體原生
AWQ 4 vLLM 系 校準式整數量化,保護活化敏感的權重
NVFP4 4 vLLM、TRT-LLM NVIDIA 為 Blackwell 推的新 4 位元浮點

我這邊挑幾個稍微簡單說明一下。

GGUF 的 k 系與 iq 系的差異是有沒有「讀過書」。 q4_k_m 用固定規則分組,iq 系(imatrix)先拿一份校準語料跑過模型,記下哪些權重對輸出影響大,量化時重點保護它們。低位元(3 位元以下)沒有 imatrix 幾乎不能用,ds4 那款專為 128GB 機器調的 2-bit 就是 imatrix 的功勞。這裡有個對繁中使用者的實務提醒,imatrix 的校準語料大多是英文,對中文任務的保護效果是未知數,這是社群量化檔很少被討論的盲點。

MXFP4 與 NVFP4 是「硬體認識的格式」。 傳統整數量化在推論時要先解壓回浮點數再運算,microscaling 格式則是 Blackwell 的 Tensor Core 直接支援的資料型別,省掉解壓這一手。gpt-oss 官方直接以 MXFP4 發布就是看上這件事,這也是 GB10 這類新架構的紅利。

FP8 不只量化權重,還管 KV cache。 Day 9 到 11 反覆出現的 kv-cache-dtype fp8 就是它,同一個技術用在兩個地方,權重的 FP8 是發布時決定的,KV 的 FP8 是你啟動引擎時決定的,兩者獨立。
https://ithelp.ithome.com.tw/upload/images/20260825/20141816djp0cbRJun.png

量化格式模型檔案是配方

回到 19% 之謎。用 gguf 工具把兩個「MXFP4」攤開看每一層的實際型別:

# llama.cpp 內建的檢視工具
./build/bin/llama-gguf-dump /mnt/models/gguf/<模型檔> | head -50

https://ithelp.ithome.com.tw/upload/images/20260825/20141816602EnuXXgX.png

所謂「一個 MXFP4 模型」,實際上是 FFN 層用 MXFP4、注意力層各自表述、embedding 與輸出層又是另一回事的混合配方。兩個量化者對「哪些層捨不得砍」的判斷不同,成品的名字卻一樣。這帶出本篇最重要的一個習慣:

下載量化檔不要只看檔名的位元數,花三十秒 dump 一下配方。 尤其當兩個同名模型檔案的大小差了好幾 GB 的時候,差的那幾 GB 就藏在配方裡。

實測速度階梯與品質階梯

這次的測試模型我改用市場上熱門的 Qwen3.8-27B,它不但新、實務上也是很能打的,地端在 Mac、PC 搭配 NVIDIA 顯卡都能夠跑它的量化版,也具備相當的代表性。最大的好處是其 27B 的尺寸讓 BF16 全精度也放得進 128GB,我們才有「無損基準」可以對照,這正是這台機器做量化評測的獨特優勢,如果是 VRAM 24GB 的卡連裁判都當不了。

速度階梯(llama-bench,方法論同 Day 8):

https://ithelp.ithome.com.tw/upload/images/20260826/20141816sSaxKWn1sK.png

量化 檔案大小 實際每權重位元 decode(t/s) 相對 BF16
BF16 54.66 GB 16.00 4.66 ± 0.00 1.00 倍
q8_0 29.12 GB 8.52 7.93 ± 0.01 1.70 倍
q4_k_m 17.77 GB 5.20 11.77 ± 0.00 2.52 倍
iq4_xs 15.57 GB 4.56 14.04 ± 0.01 3.01 倍

https://ithelp.ithome.com.tw/upload/images/20260826/20141816LFqZPyAtIo.png

量化 decode 加速 檔案大小比 折扣
q8_0 1.70 倍 1.88 倍 90.6%
q4_k_m 2.52 倍 3.08 倍 82.1%
iq4_xs 3.01 倍 3.51 倍 85.8%

位元愈低折扣愈重,因為解壓與縮放係數的固定成本佔比變大了。但 iq4_xs 反過來比 q4_k_m 效率更高,又小、又快、折扣還更少

量化只加速 decode,它不加速 prefill,而且可能拖慢 prefill。

量化 decode 對 BF16 prefill 對 BF16
q8_0 1.70 倍 0.90 倍
q4_k_m 2.52 倍 0.93 倍
iq4_xs 3.01 倍 1.04 倍

品質階梯(llama-perplexity,同一份測試語料):

量化 PPL(英文語料) 劣化 PPL(繁中語料) 劣化
BF16 6.9529 ± 0.0450 基準 11.1337 ± 0.1608 基準
q8_0 6.9569 ± 0.0450 +0.058% 11.1365 ± 0.1607 +0.025%
q4_k_m 6.9880 ± 0.0453 +0.505% 11.2275 ± 0.1624 +0.842%
iq4_xs 7.0138 ± 0.0455 +0.876% 11.3287 ± 0.1645 +1.751%

英文用 wikitext-2 的標準測試集(580 個 chunk),繁中是自產語料,把這個系列自己的舊文與草稿串起來,剝掉程式碼區塊與表格只留散文,共 147 個 chunk。用自己的文章有一個附帶好處,它不太可能出現在任何人的 imatrix 校準集裡。

繁中那一欄是本表的重點。前面說過 imatrix 的校準語料以英文為主,英文 PPL 幾乎無損不代表中文也是。實測的答案是:

8 位元那一級,兩種語言都真的無損,0.058% 與 0.025% 已經是雜訊等級。4 位元那一級,繁中付的代價是英文的 1.67 到 2.00 倍。 q4_k_m 英文掉 0.505%、繁中掉 0.842%;iq4_xs 英文掉 0.876%、繁中掉 1.751%,剛好翻倍。

https://ithelp.ithome.com.tw/upload/images/20260826/20141816NwKUYDVOO6.jpg

「換一份語料會不會翻掉」是一個可以省思的好問題,所以我把兩份語料各切成前後兩半,各自獨立算一次:

語料 q4_k_m 前半/後半 iq4_xs 前半/後半
英文(290 / 290 chunk) +0.471% / +0.538% +0.890% / +0.862%
繁中(73 / 74 chunk) +0.934% / +0.752% +1.669% / +1.833%

兩半各自算,繁中大於英文的結論都成立。

vLLM 那一側補一組對照,同一個 Qwen3.8-27B 的官方 FP8 版(Day 13 會再見到它),decode 7.92 t/s,與 GGUF q8_0 的 7.93 t/s 相比差 0.1%。兩個引擎、兩種完全不同的 8 位元格式、同一款模型、同一台機器,是落在同一個數字上。到了 8 位元這一級,決定單用戶 decode 速度的是每個 token 要搬多少位元組。

GB10 這類機器的量化模型選法

把今天的知識收斂成 128GB 統一記憶體上的三條決策原則。

第一,你有不量化的選擇權,先用非量化版當基準
70B 以下的模型 BF16 都放得下,正式採用任何量化檔之前,跟全精度版本並排跑幾個你自己的真實任務,量化的品質代價自己驗,不要只信英文基準,原因是我們有使用到繁體中文,這點和國際上的英文使用者和其他語言使用者是有差異的,合先敘明。

第二,日常主力選 q8_0 或 FP8
空間夠的時候,8 位元幾乎無損又比 BF16 快上一截,是品質與速度的甜蜜點。4 位元留給兩種情況,模型大到 8 位元放不下,或你確認過它的品質劣化在你的任務上是可接受的水準。

第三,越低位元越要挑量化者
8 位元隨便量都差不多,2 到 4 位元的品質幾乎取決於 imatrix 校準的功力,這就是模型官方或長期經營的量化者功力差異,下載完 dump 配方、驗 sha256,這是 Day 5 測試老規矩的量化版囉。

至於一般桌機用的 NVIDIA 顯示卡要選量化模型的話,關鍵不是顯卡越大就一定用越高量化,而是要看「模型大小 × KV Cache × 推論框架開銷」之後還剩多少 VRAM。

以一般 NVIDIA 顯卡來說,16GB、24GB、32GB 可以這樣選:

VRAM = 能跑多大的模型

量化位元數 = 願意犧牲多少模型品質來換空間

VRAM

├─ 16GB
│ ├─ 小模型:BF16 / Q8
│ └─ 中大型模型:Q4 / Q5

├─ 24GB
│ ├─ 小模型:BF16
│ ├─ 中型模型:Q6 / Q8
│ └─ 大模型:Q4 / Q5

├─ 32GB
│ ├─ 小~中型:BF16 / FP8 / Q8
│ ├─ 中大型:Q5 / Q6
│ └─ 超過容量:Q4

└─ 128GB Unified Memory
├─ ≤70B:BF16 優先當裁判
├─ 70B~120B:FP8 / Q8
└─ 更大型:Q4~Q6

明天預告

量化決定了權重的大小,明天處理這些幾十 GB 然後累積到幾百 GB 、上 TB 的檔案怎麼分類、分配與放置比較好,還有一些地端 AI 使用上的眉角。

我們 Day 13 見囉。

Day 1|為什麼 2026 年是地端 AI 部署元年:系列規劃與硬體總覽
Day 2|DGX Spark GB10 深度解析:128GB 統一記憶體到底解決了什麼問題
Day 3|網路與儲存規劃:10GbE 骨幹、雙 Spark 直連與 NFS 集中模型庫
Day 4|開箱之後:DGX OS 初始環境建置與 CUDA、Docker 生態確認
Day 5|NFS 模型庫實戰:下載工具、權限設計與版本管理
Day 6|llama.cpp、vLLM、TensorRT-LLM 、Ollama、DS4 與 Unsloth 的定位與取捨
Day 7|第一個模型上線:gpt-oss-120b 從模型庫到 API 的完整流程
Day 8|llama.cpp 實測:先定量尺與 SOP
Day 9|vLLM 實測:官方容器、同時處理吞吐曲線,與剛出爐的新模型 Ornith 1.5
Day 10|TensorRT-LLM 實測:我花了一個下午,跟它的預設值搏感情
Day 11|地端 AI 三大推論引擎綜合評測,同場加映神秘嘉賓
Day 12|量化格式解析:「4-bit」兩個字,古今多少事 ? 都付笑談中
Day 13|Perplexity 把整套 Agent 搬上 DGX Spark:地端元年的官方背書
Day 14|Qwen3.8-27B 與 Flash-Next 加碼實測:地端模型世代對決與落地評估
Day 15|Ornith 1.5 實測:為 AI agent 而生的 35B-A3B
Day 16|模型選型方法論:五個問題幫你跳脫排行榜迷失,找到適合自己任務用的 AI 模型


上一篇
Day 11|地端 AI 三大推論引擎綜合評測,同場加映神秘嘉賓
下一篇
Day 13|Perplexity Portable Computer 實測 DGX Spark :Harness 為什麼比換模型更重要?
系列文
128GB 統一記憶體的三十天:DGX Spark 地端 LLM 與生成式 AI 部署實戰16
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言