0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

科学と神々株式会社アドベントカレンダー 2025

LLM量子化 Day 9: GGUF量子化レベルの選び方

謎めいた名前を解読する

GGUFの量子化レベルを見ると、Q4_K_MQ8_0といった暗号のような名前が並んでいます。今日は、この命名規則を解読し、自分のユースケースに合った選び方を学びましょう。

命名規則の基本

Q4_K_M
│ │ │
│ │ └── バリアント(S/M/L)
│ └──── タイプ(K = k-quant, 数字 = 標準)
└────── ビット数

ビット数(最初の数字)

  • 数が小さいほど圧縮率が高く、サイズが小さい
  • 数が大きいほど品質が高い

タイプ

  • 01: 標準量子化(シンプルな方式)
  • K: k-quant(賢い混合精度方式)

バリアント(K-quantのみ)

  • S: Small(サイズ重視)
  • M: Medium(バランス)
  • L: Large(品質重視)

標準量子化とK-quant:何が違うのか

標準量子化(Q4_0, Q4_1, Q8_0)

すべての重みに同じビット数を均等に割り当てます。

モデル全体 → 全員4ビット
└── 重要な層も、そうでない層も、同じ4ビット

シンプルで高速ですが、重要な部分も軽視されてしまいます。

K-quant(Q4_K_M, Q5_K_Mなど)

重みの重要度に応じて、異なるビット数を割り当てます。

モデル構造:
├── 入力埋め込み層  → 高精度(8ビット)← 入力を正確に理解するために重要
├── 中間層
│   ├── Attention  → 中精度(4-5ビット)
│   └── FFN        → 低精度(3-4ビット)← 冗長性が高い
└── 出力層          → 高精度(8ビット)← 出力品質に直結

これは、家の断熱材のようなものです。すべての壁に同じ厚さの断熱材を入れる代わりに、外気に接する壁は厚く、内壁は薄くする。合計使用量は同じでも、効果は大きく異なります。

各レベルの特性

8ビット系

レベル 説明 品質維持率 推奨用途
Q8_0 8ビット標準 99%+ 最高品質が必要な場合

事実上、品質低下を感じることはほぼありません。サイズは約半分になります。

6ビット系

レベル 説明 品質維持率 推奨用途
Q6_K 6ビットk-quant 98-99% 品質重視

Q8_0とQ4_K_Mの中間を狙いたいときに選びます。

5ビット系

レベル 説明 品質維持率 推奨用途
Q5_K_M 5ビットk-quant Medium 97-98% 品質とサイズのバランス
Q5_K_S 5ビットk-quant Small 96-97% やや品質重視
Q5_0/Q5_1 5ビット標準 95-96% k-quantが使えない場合

品質を妥協したくないが、Q8_0ほどのサイズは許容できない場合に選びます。

4ビット系(最も人気)

レベル 説明 品質維持率 推奨用途
Q4_K_M 4ビットk-quant Medium 95-96% 汎用的に推奨
Q4_K_S 4ビットk-quant Small 94-95% サイズ重視
Q4_0/Q4_1 4ビット標準 92-94% 最小の4ビット

Q4_K_Mが最も推奨される理由:

  • サイズ: FP16の約28%(7Bモデルで約4GB)
  • 品質: 体感では違いがわかりにくいレベル
  • 互換性: すべてのllama.cppバージョンでサポート
  • 速度: CPU推論でも実用的な速度

3ビット系

レベル 説明 品質維持率 推奨用途
Q3_K_L 3ビットk-quant Large 90-92% 品質重視の3ビット
Q3_K_M 3ビットk-quant Medium 88-90% 3ビットのバランス
Q3_K_S 3ビットk-quant Small 85-88% 極小サイズ

品質低下が目立ち始めます。メモリが非常に限られている場合のみ検討してください。

2ビット系

レベル 説明 品質維持率 推奨用途
Q2_K 2ビットk-quant 70-80% 実験用

品質低下が顕著です。「動けばいい」「実験的に試したい」場合のみ。

選び方の実践ガイド

ステップ1: 利用可能なメモリを確認

8GB RAM: Q4_K_M(7Bモデル)、Q3_K_M(13Bモデル)まで
16GB RAM: Q5_K_M(7Bモデル)、Q4_K_M(13Bモデル)まで
32GB RAM: Q8_0(7Bモデル)、Q5_K_M(13Bモデル)まで

目安として、モデルサイズの1.2〜1.5倍のRAMが必要です(KVキャッシュなどのため)。

ステップ2: 用途を考える

用途 推奨レベル 理由
コーディング支援 Q4_K_M以上 構文の正確さが重要
日常会話 Q4_K_M 十分な品質
創作・ストーリー Q3_K_M可 多少の不正確さは許容
翻訳・要約 Q5_K_M以上 正確さが重要
実験・テスト Q2_K可 動けばOK

ステップ3: 実際に試す

最終的には、自分のタスクで実際に試すのが一番です。

# まずQ4_K_Mで試す
llm-quantize quantize model gguf -q Q4_K_M

# 品質が不満なら上げる
llm-quantize quantize model gguf -q Q5_K_M

# サイズが大きすぎるなら下げる
llm-quantize quantize model gguf -q Q4_K_S

Q4_0とQ4_K_Mの実測比較

同じ「4ビット」でも、品質に大きな差があります:

Llama 2 7B での比較:

              Q4_0      Q4_K_M
サイズ        3.6GB     4.0GB
Perplexity    5.82      5.68
品質維持率    94.0%     96.2%
変換速度      速い      やや遅い

0.4GBの差で2%以上の品質向上。ほとんどの場合、Q4_K_Mを選ぶべきです。

Tips: 量子化レベル選択のコツ

迷ったらQ4_K_M

これが一番のアドバイスです。8割以上のユースケースでQ4_K_Mが最適解です。

品質が足りないと感じたら

Q4_K_M → Q5_K_M → Q6_K → Q8_0 と段階的に上げていきます。

メモリが足りないと感じたら

Q4_K_M → Q4_K_S → Q3_K_M と段階的に下げます。ただし、Q3以下に下げるよりも、より小さいモデルを選ぶ方が良い場合もあります(7B Q3_K_Mより、3B Q4_K_Mの方が良いこともある)。

_0と_1の違い

_1バリアント(Q4_1, Q5_1)は、ゼロポイントを追加で保存します。わずかにサイズが大きくなりますが、非対称な分布に対して精度が向上することがあります。現在はk-quantが主流なので、あまり気にする必要はありません。

次回予告

Day 10では「GGUFQuantizerの仕組み」として、llm-quantizeがどのようにGGUF量子化を実行しているか、内部の処理フローを解説します。


量子化レベルの選択は、「サイズ」と「品質」のトレードオフです。しかし、k-quantの登場により、そのトレードオフは大幅に改善されました。Q4_K_Mという選択肢があることを、ありがたく思いましょう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?