quantization / pillar
GGUFの量子化とは?Q2〜Q8・K-quant・I-quantの違い
量子化(くあんたいか)とは、モデルの重みを少ない精度で保存し、ファイルサイズと実行時メモリを小さくする手法です。
GGUFでは Q4_K_M のような名前で表記されます。軽さと品質のバランスを理解するのが選び方の鍵です。
量子化の目的
モデルは本来、高精度(FP16/BF16 など)の重みを持っています。これを 4bit や 8bit 程度に減らすことで、 ファイルサイズと実行時メモリを大きく削減できます。メリットは「軽く・速く・載りやすく」、デメリットは「品質低下のリスク」です。 量子化はこのトレードオフを管理する技術です。
bits と bpw(bits-per-weight)
量子化の「bit数」は、1つの重みを表現するのに使うビット数の目安です。Q4 なら約4bit、Q8 なら約8bit です。
ただし実際には bpw(bits-per-weight) という平均値で考えます。blockごとのscale等や、
テンソルごとに異なる型を割り当てる方式では、名前の数字とモデル全体の実効bpwが一致しません。
| 表記例 | おおまかなbpw | 傾向 |
|---|---|---|
| Q2_K | 2-bit級 | 小さいが、タスク別の劣化を要確認。 |
| Q3_K | 3-bit級 | サイズ優先の候補。 |
| Q4_K_M | 4-bit級のmixed allocation | 比較候補。普遍的な既定ではない。 |
| IQ4_NL / IQ4_XS | 4-bit級のI-quant | 非線形/importance-aware。実装対応を確認。 |
| Q5_K_M / Q6_K | 5〜6-bit級 | 通常はファイルが大きくなる。 |
| Q8_0 | 8-bit級 | 大きい。FP16との同等性は保証しない。 |
| F16 / F32 | 16 / 32 | 高精度だが大きい。用途とruntimeで判断。 |
bpw は方式定義だけでなく、モデル内のtensor構成でも変わります。正確な比較には配布ファイルの実サイズとmetadataを使います。 「Q4なら必ず4bit」は不正確——K-quant は混合精度です。
legacy quants(Q2_0 等)
最も単純な方式は、テンソル全体を一律のビット数で量子化する legacy quant(例: Q4_0, Q5_0)です。
実装が単純で広く扱えます。K-quant/I-quantは別の割り当てや符号化を使いますが、
「同じ名前なら必ず上位互換」とせず、配布元の対応と自分のタスクで比較します。
K-quant(混合精度)
K-quant(例: Q4_K_M, Q5_K_M)では、suffixに応じて一部tensorへ
異なる量子化型を割り当てます。モデル全体を単一の「4bit block」と見る方式ではありません。
- _S / _M / _L は、llama.cppの表でtensorへの型割り当てが異なるvariantです。
- 「M」を「medium block size」と説明するのは不正確です。具体的な割り当ては現行quantize READMEで確認します。
詳細な内部構造(テンソルごとの配置)は llama.cpp の Tensor Encoding Schemes を参照。 ここでの重要点は「K-quantは単一ビットではなく混合精度」という点です。
I-quant(IQ系)
I-quant(例: IQ4_NL, IQ4_XS, IQ3_XXS)は、
importance matrixや非線形量子化を使う方式を含みます。K-quantとは符号化・割り当てが異なります。
ランタイムやツールによる対応状況にも注意が必要です。
imatrix(重要性行列)
imatrix は、量子化時に「どの重みが重要か」を評価するための情報です。これを使って量子化すると、
同じビット数でも品質を維持しやすくなる傾向があります。ファイル名に imatrix 等の表記が入ることがあります。
imatrix は「高品質量子化の目安」の一つですが、何をもって重要としたかは計算時のデータセットに依存します。 配布元がどう作ったかを過信せず、自分のタスクで試すのが確実です。
requantization(再量子化)の危険
すでに量子化された GGUF を、さらに別の精度に量子化し直す(requantization)と、 品質が追加で劣化することがあります。原則として、高い精度(FP16 等)から直接目的の精度に量子化するのが望ましいです。
--allow-requantize)が必要で、通常は推奨されません。
MoE と量子化
MoE(Mixture-of-Experts) モデルでは、活性化するパラメータ(active params)と全パラメータ(total params)が異なります。 量子化の「ファイルサイズ」は total params に依存しますが、推論時の計算量は active params に近づきます。 したがって「パラメータ数だけで量子化の軽さを決めつけない」よう注意が必要です。
品質の測り方
量子化の良し悪しは、主に次の2軸で評価されます。
| 軸 | 意味 | 注意 |
|---|---|---|
| perplexity | 言語モデルの予測精度の指標。低いほど良い傾向。 | タスク性能と完全には一致しない。 |
| downstream benchmark | 実タスク(QA・コード・推論等)のスコア。 | モデル・言語・タスクで変動。 |
| speed / size | 生成速度とファイルサイズ。 | ハードウェア依存。 |
単一モデル・単一タスクの結果を「すべてのモデルに当てはまる」と一般化してはいけません。 実務では、自分のタスクで試すのが最も確実です(チェッカーでまず選び、 実際に動かして判断)。
decision matrix(どれを選ぶか)
| 状況 | 第一候補 | 理由 |
|---|---|---|
| RAM/VRAM が厳しい | 配布一覧の小さい候補 | actual file sizeとestimateを先に確認。 |
| 同じモデルで迷う | Q4/Q5/IQ系を比較 | 同一revision・同じpromptで比べる。 |
| 品質優先・余裕あり | Q6_K / Q8_0も候補 | 大きさに見合う差があるか実測。 |
| 特定タスクで精度が必要 | 複数を比較 | 平均benchmarkだけでなく実タスクで確認。 |
適用外と限界
- 本ページの数値・表は一般的な目安。実測値ではありません。
- 品質差はモデル・タスク・量子化元・imatrix 有無で変動。単一論文の結果を一般化しない。
- MoE は active/total params が異なり、サイズと計算量が単純に比例しない。
- ランタイム(LM Studio / llama.cpp 等)のバージョンで挙動が変わることがある。
更新履歴:2026-08-31 K-quant suffixの誤説明を修正し、IQ4_NL/IQ4_XS、実効bpwと実ファイル比較、研究の非一般化を更新。
選び方ワークシート(ご自身で埋める)
迷ったときは、次の項目を埋めてから決めます。架空の数値は入れません。ご自身の環境の実測値を使ってください。
| 項目 | あなたの値 |
|---|---|
| モデル規模(B) | __ B |
| 空きRAM / VRAM | __ GB |
| 使うタスク | チャット / コード / 長文要約 等 |
| 最初の候補 | 配布元の4-bit以上から、空きメモリに収まる実ファイル |
| 比較候補 | 同一revisionの別量子化(Q5/IQ/Q6等) |
| 確認方法 | 実際に動かして出力品質をチェック |
よくある質問
Q4_K_M と Q5_K_M、どちらが良い?
一概には言えません。Q5_K_M は Q4_K_M より大きく・やや高精度な傾向がありますが、品質差はモデル・タスクで変動します。 詳細は Q4_K_MとQ5_K_Mの違い で比較しています。実ファイルが収まる候補同士を同一条件で比べます。
I-quant は K-quant より良い?
I-quantはimportance-aware/non-linearな方式を含みますが、同じ名前や公称bitだけでは比較できません。 ランタイム対応、実効サイズ、モデル・タスクによる差があり、「常にI-quantが優秀」ではありません。
Q8_0 なら元モデルと同じ?
Q8_0 は8-bit量子化で、FP16と同一ではありません。ファイルが大きくなる一方、タスクによっては小さい方式との差が限定的な場合もあります。 メモリに収まるかと、必要な品質差が出るかを別々に確認します。
imatrix 付きと付いていないの違いは?
imatrix 付きは、重要度に基づく高精度化の傾向があります。ただし「何をもって重要としたか」は計算時のデータに依存し、 自分のタスクで試すのが確実です。
用語の使い分け
| 用語 | 意味 | 注意 |
|---|---|---|
| bit | 1重みの表現ビット数の目安 | 実際はbpw(平均)で考える |
| bpw | bits-per-weight(平均ビット数) | K-quant は混合精度のため平均値 |
| quant type | Q4_K_M 等の方式名 | 方式ごとに配置・精度が異なる |
| imatrix | 重要度行列(量子化補助情報) | 品質向上の傾向、万能ではない |
| requantize | 量子化済みの再量子化 | 品質追加劣化の恐れ、推奨されない |
更新履歴:2026-07-18 追記(ワークシート・FAQ・失敗例・用語の使い分けを追加し、Pillar の文字数目標に接近)。