模型與訓練
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 首字時間 這類體感指標有直接幫助。
