ローカルLLMの世界に足を踏み入れると「Q4_K_M」「Q5_1」「IQ3_XXS」…呪文のような文字列が溢れてる。これ、全部量子化(Quantization)の方式を示すコードだ。
量子化ってのは簡単に言うと「モデルの重みを圧縮する」こと。32bitの数字を4bitや5bitに縮めて、メモリ使用量を減らす。当然精度は落ちるけど、その落ち方が量子化方式によって全然違う。
量子化方式の進化:
- Q4_0 / Q4_1 — 最も基本的な4bit量子化。精度の落ちが大きめ。
- Q5_0 / Q5_1 — 5bit量子化。4bitより明らかに精度が良い。サイズはやや増える。
- Q8_0 — 8bit量子化。FP32とほぼ遜色ない精度。メモリに余裕があればこれ一択。
- K-quant(Q4_K_Mなど) — 2023年後半に登場した改良版。重みの重要度に応じてビット数を変える。重要パラメータは多めに、重要でないパラメータは少なめに。賢い。
- I-quant(IQ3_XXSなど) — 2024年登場。さらにアグレッシブに圧縮する方式。3bit台でも意外と使える。
K-quantの命名規則:
Q4_K_M │ │ │ │ │ └─ サイズ: S=小, M=中, L=大 │ └─── K-quant方式 └────── ベースのビット数(4bit)
実際に試した感覚で言うと、Q5_K_Mがスイートスポット。Q4_K_Mとの差は体感できるけど、ファイルサイズの増加はそこそこ。Q8_0が理想だけどサイズが大きすぎてVRAMに収まらないことが多い。
あと盲点なのが量子化は非可逆ってこと。一度Q4にするとQ8の精度は戻らない。オリジナルのFP32モデルは必ず手元に残しておこう。