Quantization(量化)
又稱:量化 · 模型量化 · 權重量化 · Q4 · Q8 · 4-bit
把模型權重從高精度數值換成低精度數值,用可接受的品質損失換取大幅縮小的體積和記憶體需求。
你會在什麼時候遇到它
你第一次想在本機跑模型、看到同一個模型有 Q8、Q6、Q4 好幾個檔案可下載時,就必須懂它 —— 否則只能憑檔名瞎猜。不懂量化,你會犯兩種對稱的錯:要嘛下載最大的版本塞爆記憶體,要嘛貪小下了最激進的版本,然後奇怪模型怎麼變笨了。
打個比方
像把照片存成 JPG:壓縮一點點,肉眼看不出差異,檔案小一半;再壓,還撐得住;壓過某個臨界點,畫面突然糊成一團。品質的下降不是線性的 —— 前面幾段幾乎無感,最後一段是跳崖。
最小範例
同一個模型的不同精度版本(示意,實際比例依模型而異):
FP16/BF16 基準大小 幾乎無損,伺服器端常用
8-bit(Q8) 約一半 多數任務與基準難以分辨
4-bit(Q4) 約四分之一 開始量得到品質下降,本機最常見
更激進 更小 風險陡增,除非別無選擇,別碰
注意兩件事:
· 縮小的是「每個權重佔的位元數」,不是刪掉權重
· 好的量化方案會把特別敏感的層留在較高精度位元數減半,檔案大小和記憶體佔用大約減半 —— 這部分是簡單的算術。但品質損失不成比例:適度量化常常幾乎無感,過度量化則可能在特定能力上突然崩壞,而且崩壞的順序不均勻(多步推理通常比閒聊先壞)。
最常搞錯的地方
- 以為量化只是「檔案變小、下載變快」。它真正解鎖的是「塞得進」:權重必須全部駐留在記憶體(顯示記憶體或統一記憶體)裡才能跑,量化常常就是「本機跑得動」和「根本跑不動」的分界線。副作用是搬運的資料變少,decode 速度還可能變快。
- 以為品質損失與壓縮程度成正比,可以線性外推:「Q8 幾乎無感」推不出「更激進的等級也只差一點」。越激進的量化,損失曲線越陡,而且不同能力崩壞的順序不一樣 —— 別人的實測心得只能參考,關鍵任務要用自己的評測集驗過。