模型與訓練

Quantization 量化是什麼?看懂 FP16、INT8、INT4 這串精度標示

Quantization(量化)是把模型參數的數字精度降低的技術,例如從 FP16 半精度浮點數換成 INT8 或 INT4 整數。位元數越少,能表示的數值範圍與細緻度越低,但模型體積、記憶體佔用與運算量也跟著下降。實務上換來的是更小的檔案、更快的推理與更低的顯存門檻,代價是損失一點精度。
Quantization 量化是什麼?看懂 FP16、INT8、INT4 這串精度標示:文章重點卡

Quantization 量化是什麼?看懂 FP16、INT8、INT4 這串精度標示

去下載本地模型的時候,你會看到同一個模型有好幾個版本,檔名後面掛著 FP16、INT8、Q4 這類標示,大小從幾十 GB 到幾 GB 都有。那串字就是量化精度。

看懂它,你才知道自己的電腦到底跑不跑得動,也才知道為什麼有人說「模型變小之後有點變笨」。

你將學到什麼

定義

把參數從高精度浮點數壓成低位元整數,換取體積與速度。

白話比喻

像把照片從無損檔轉成 JPG,檔案小很多,細節少一點。

怎麼讀標示

FP16 高精度、INT8 平衡、INT4 極省,數字就是每個參數用幾個位元。

跟誰容易搞混

量化是壓縮已訓練好的模型,不是重新訓練,跟微調是兩件事。

定義

Quantization 中文叫量化,是把模型參數的數字精細度降低的技術。原本用高精度浮點數存的權重,改用位元數更少的整數來近似表示。

精度標示講的就是這件事:每個參數用多少位元來表示數值。位元數越少,可表示的數值範圍與細緻度越低,模型體積與記憶體佔用也越小。

白話比喻

像把一張無損原檔轉成 JPG。檔案小很多,肉眼看幾乎一樣,但放大檢視就會發現細節被抹掉了一些。

壓得越狠,省得越多,失真也越明顯。量化要挑的就是這條線該畫在哪裡。

FP16、INT8、INT4 怎麼讀

精度位元數特性適用情境
FP16 半精度浮點數16 bit精度高、動態範圍大、訓練穩定,但佔記憶體最多訓練、高精度推理
INT8 8 位元整數8 bit記憶體減半、速度更快、硬體支援多,需要量化校準大多數推理與部署
INT4 4 位元整數4 bit極省記憶體、體積最小、速度最快,精度損失最大記憶體有限的裝置與本機部署

順序記起來就好:精度是 FP16 大於 INT8 大於 INT4,記憶體佔用也是同一個順序。要更省就往右走,要更準就往左走。

省下來的到底有多少

以一顆 70B 參數的模型為例,FP16 每個參數要 2 Bytes,整份大約 140 GB,一般顯示卡幾乎無法載入。換成 INT8 每個參數 1 Byte,大約 70 GB,省下一半。

再換成 INT4,每個參數只要 0.5 Byte,大約 35 GB,相對 FP16 省下約七成五。實際大小還會受模型結構與量化方法影響,這裡只是量級上的概念。

實際用例

量化最直接的價值,是把原本只能跑在資料中心的模型,搬進個人電腦、手機與邊緣裝置。這也是 SLM 微型語言模型 能真的在本機跑起來的關鍵配套。

另一個常被忽略的好處是速度。低精度代表資料搬運量變小,推理通常也會跟著變快,對 TTFT 首字時間 這類體感指標有直接幫助。

常見誤解最常見的誤解是把量化當成「模型變小版」,以為只是砍功能。實際上量化不動模型學到的內容,只改參數的表示方式,所以它跟微調完全是兩回事。另一個誤解是覺得量化一定要選最省的那一檔,但精度越低越需要好的量化方法與校準,硬選 INT4 有時反而得不償失。
本文源起本文內容出自酒Ann 的「AI 實戰陪跑班」課程教材,由酒Ann 編寫成彙編條目。想系統性搞懂 AI 名詞,歡迎追蹤 酒Ann 的 Facebook

延伸學習

把這篇文章分享給需要的人FacebookLINEThreadsX

常見問答

FP16、INT8、INT4 到底差在哪?
差在每個參數用幾個位元表示。FP16 用 16 位元,精度最高、佔記憶體最多;INT8 用 8 位元,是精度與效能折衷的主流選擇;INT4 用 4 位元,最省顯存,適合在本機或低資源裝置運行小模型。
量化之後模型會變笨嗎?
會有一點精度損失,但幅度取決於量化方法與任務。INT8 在多數推理任務上的下降很輕微,INT4 在複雜推理上比較明顯,簡單任務通常還是可用。
量化跟微調是同一件事嗎?
不是。微調是用新資料改變模型學到的內容,量化只是改變參數的儲存與計算精度,不會教模型新東西。