🎓 レベル:標準 | 重要度:A(必須) 📎 前提:量子化方式(k-quantsとGPTQとAWQ) | 原理:推論の実務(機械学習)
要点(結論先出し)
- 量子化選びは**「サイズ(VRAMに載るか)」と「品質(perplexity悪化)」の天秤**。多くの場合 Q4_K_M 付近が実用上のスイートスポット(要最新確認)。
- サイズは
パラメータ数 x bpw / 8で見積もれる。8B Q4_K_M で約4.5GiB、ここにKVキャッシュと実行オーバーヘッドが乗る。 - 大きいモデルを強く量子化 vs 小さいモデルを軽く量子化は、しばしば前者が勝つ(同VRAMなら大モデルの低ビットが有利なことが多い・要最新確認)。
概念 ── 2軸で考える
- サイズ軸:bpwが下がるほどファイル/VRAMが小さい。載るか載らないかの線を引く。
- 品質軸:bpwが下がるほど **perplexity(言語モデルの当てにくさ指標)**が悪化。多くの実測で Q5/Q6はほぼ無劣化、Q4で軽微、Q3以下で顕在化という傾向(要最新確認)。
両軸はトレードオフ。**「VRAMに載る範囲で、最も高いbpw」**が基本方針です。
計算例 ── サイズと合計VRAM
対応lab vram_sizing.py の出力(8Bモデル):
FP16 bpw=16.0 -> 14.90 GiB
Q8_0 bpw= 8.5 -> 7.92 GiB
Q5_K_M bpw= 5.7 -> 5.31 GiB
Q4_K_M bpw= 4.8 -> 4.47 GiB
Q3_K_M bpw= 3.9 -> 3.63 GiB
合計VRAMは 重み + KVキャッシュ + オーバーヘッド。Q4_K_M・8B・8KコンテキストでKV約1.0GiB+オーバーヘッド約0.7GiBを足し、合計約6.2GiB。8GB GPUでも収まる計算です(数値は目安・要最新確認、計算根拠は VRAM所要の見積もり)。
仕組み ── 選定フロー
flowchart TD
V["手元のVRAM容量"] --> C["重み+KV+oh が収まる最大bpwを選ぶ"]
C --> Q{"品質は足りるか"}
Q -->|"足りる"| OK["確定(例 Q4_K_M)"]
Q -->|"不足"| UP["より大きいモデルの低ビットを試す"]
UP --> C
運用の勘所
- 8GB級GPU:7〜8B を Q4_K_M。コンテキストを伸ばすならKVを量子化 or 短く。
- 12〜16GB級:8B を Q5/Q6、または 13〜14B を Q4。
- 24GB級:30B級を Q4、または中型を高品質で。
- 数値の絶対値より、自分のVRAMから逆算する手順を身につける(→ VRAM所要の見積もり)。
なぜそうするか
「最高品質=FP16」を全部載せるのはローカルでは非現実的。載らなければ品質ゼロです。だから「載る範囲で最大bpw」。さらに、同じVRAM予算なら容量の大きいモデルを少し強めに量子化したほうが賢いことが多い——大モデルの低ビットは小モデルの高ビットに勝りやすいからです(要最新確認)。
⚠️ よくある落とし穴
- 重みサイズ=必要VRAMと誤解:KVキャッシュとオーバーヘッドを忘れて OOM になる → コンテキスト長とKVキャッシュ
- 品質を体感せず数字だけで決める:自分のタスク(コード/翻訳/対話)で実際に比較する。
- 常に最小量子化を選ぶ:Q2/Q3は「載せるための最後の手段」。まず Q4 から。
- ベンチ値を鵜呑み:perplexityはタスク品質の代理にすぎない。用途で評価。
対応lab
local-llm-study/labs/vram_sizing.py… bpw→サイズ→合計VRAMを計算実証(cp932安全)。
関連
- 見積もりの本体 → VRAM所要の見積もり
- メモリに収める工夫 → オフロードと量子化でメモリに収める
- 章の入口へ → 第2章 モデル形式と量子化 目次