見出し画像

量子化とは何か。Q4_K_Mの意味とGGUFファイルの読み方

70Bモデルが24GBのGPUに載るのは量子化のおかげです。「Q4_K_M」という呪文の意味と、GGUFファイルの選び方を10分で整理します。

量子化=数値の精度を落としてサイズを縮める

LLMは大量の「重み」という数値でできています。元は16bit(半精度)で保存されますが、この精度を4bitなどに落とすのが量子化です。16bit→4bitなら、理論上サイズは1/4になります(実測では一部の重要な層を高精度で残すため、約1/3〜1/4に落ち着きます)。

圧縮(zip等)との違いは、展開せずにそのまま動くことです。量子化されたモデルは、その小さいサイズのまま推論できます。だから「大きいモデルを小さいGPUで動かす」が成立します。

Q4_K_Mの読み方

Ollamaやllama.cppで見かける「Q4_K_M」は、3つの部分に分解できます。

  • Q4: 量子化のビット数(4bit)

  • K: K-quant(2〜6bitの高品質な量子化方式)

  • M: サイズ変種(S=Small / M=Medium / L=Large)。同じ4bitでもMはSより少し大きく高品質

量子化レベルとサイズ・品質の関係は、llama.cppの公式検証(参考)で数値が公開されています(7Bモデルの例)。


表1: 量子化 / サイズ / 品質劣化(perplexity増)


ポイントは劣化の非線形性です。Q4以上では品質劣化はごくわずかなのに、Q3以下で急に悪化します。だから多くの配布モデルでQ4_K_Mが「推奨・デフォルト」とされています(bartowskiのモデルカードもQ4_K_Mを "recommended" と明記)。

何が劣化して、何が劣化しないか

量子化の影響はタスクによって違います。

  • 劣化しやすい: 微妙なニュアンスの表現、長い推論の一貫性

  • 劣化しにくい: 分類・要約・tool calling(関数呼び出し)。特にtool callingは量子化の影響が小さいとされます(詳細は『ローカルLLMのtool calling』で扱います)

実務手順はシンプルです。「まずQ4_K_M。品質に不満ならQ5/Q6に上げる。VRAMに載らないならQ4_K_S」。この3択で大半のケースは決まります。

GGUFファイルの選び方

Hugging Faceでモデルを探すと、同じモデルに大量の量子化版が並びます。選び方のコツは2つです。

  • 信頼できる配布者を選ぶ: bartowski、unsloth、mradermacher などが量子化の定番配布者です。品質の安定した量子化を出しています

  • K-quantとI-quant(IQ)の違い: 通常はK-quant(Q4_K_M等)で十分です。Q4未満まで小さくしたいときはI-quant(IQ系)がサイズあたりの性能で有利ですが、少し遅くなります。Unsloth Dynamic 2.0のように、層ごとに量子化を最適化して低ビット帯の品質を上げる新しい方式も出ています

Ollamaならタグで量子化を指定できます(例: ollama run qwen3:32b-instruct-q4_K_M)。

VRAMとの突き合わせ

最後に、選んだ量子化で「自分のGPUに載るか」を確認します。おおまかには「モデルのパラメータ数 × 量子化のビット数 ÷ 8」がファイルサイズの目安で、これにKVキャッシュ等の余裕を足したものが必要VRAMです。具体的な早見表は『ローカルLLM必要VRAM早見表』にまとめています。フォーマット全体(GGUF以外にMLX/AWQ等)の使い分けは『量子化フォーマットの選び方』で整理します。

まとめ

  • 量子化は数値の精度を落としてサイズを縮める技術。16bit→4bitで理論1/4、実測約1/3〜1/4。展開せずそのまま動く

  • Q4_K_M = 4bit / K-quant / Mediumサイズ。Q4以上は劣化わずか、Q3以下で急悪化するのでQ4_K_Mが定番

  • 劣化しやすいのはニュアンス・長い推論、しにくいのは分類・要約・tool calling

  • 手順は「まずQ4_K_M→不満ならQ5/Q6→載らないならQ4_K_S」。配布者はbartowski/unsloth/mradermacher

主な参考資料: llama.cpp 量子化検証 (PR #1684)bartowski Llama-3.1-8B GGUF (Hugging Face)Unsloth Dynamic 2.0 GGUFs

TodoONadaでは、ローカルLLMの導入・モデル選定を支援しています。お問い合わせはこちら

いいなと思ったら応援しよう!