GGUF(ジージーユーエフ)
llama.cppが採用するLLM量子化ファイル形式。K-quant方式でQ2〜Q8の多段階量子化に対応し、CPU/GPU混在推論を可能にするローカルLLM実行の事実上の標準フォーマット。
概要
GGUF(GPT-Generated Unified Format)は、llama.cppプロジェクトが採用するLLM量子化ファイル形式です。旧GGML形式の後継として2023年に登場し、メタデータ(トークナイザ・ハイパーパラメータ)を単一ファイルに内包するため配布・利用が容易です。K-quant方式によりQ2_K〜Q8_0まで多段階の量子化に対応し、品質と容量・速度をきめ細かく選べます。CPU/GPUの混在推論(オフロード)に対応し、Ollama・LM Studio・text-generation-webuiなどローカルLLM実行環境の事実上の標準フォーマットとなっています。
主な特徴・仕組み
- K-quant: ブロック単位で重要度に応じビット配分(Q4_K_M等)
- 多段階量子化: Q2_K(約2.6bit)〜Q8_0(8bit)まで選択可能
- 単一ファイル: 重み+メタデータ+トークナイザを内包
- CPU/GPUオフロード: レイヤー単位でVRAMとRAMに分散
- imatrix対応: 重要度行列で低ビット時の品質を改善
- 後方互換: llama.cppの幅広いモデルアーキテクチャに対応
スペック比較表
| 量子化 | 実効bit | 7B容量 | 品質劣化 | 用途 |
|---|---|---|---|---|
| Q8_0 | 8.0 | 約7.2GB | ほぼ無し | 高品質 |
| Q5_K_M | 約5.5 | 約4.8GB | 軽微 | バランス |
| Q4_K_M | 約4.8 | 約4.1GB | 小 | 標準推奨 |
| Q2_K | 約2.6 | 約2.8GB | 大 | 容量最小 |
具体例・対応製品
Llama 3.1 8BやQwen2.5、Gemma 2などの主要モデルがGGUF形式で配布されます。Q4_K_Mは品質と容量のバランスが良く最も一般的で、VRAM 8GBクラスのGPUでも7B〜13Bモデルが動作します。Ollama(ollama pull)やLM Studioが内部でGGUFを利用しています。
自作PCでの選び方・注意点
VRAM容量に合わせて量子化レベルを選びます。RTX 4060(8GB)なら7BのQ5_K_Mや13BのQ4_K_Mが目安です。GPUに載りきらないレイヤーはCPU/RAMにオフロードできますが速度が落ちます。Q2_Kなど極端な低ビットは品質劣化が大きいため、可能ならQ4_K_M以上を推奨します。
関連用語との違い
GPTQやAWQがGPU向けの後処理量子化(主に4bit固定)であるのに対し、GGUFはCPU/GPU混在を前提に多段階量子化とオフロードに最適化されています。BitsAndBytesがPyTorch実行時の動的量子化なのに対し、GGUFは事前変換した静的ファイル形式である点が異なります。
よくある質問(FAQ)
Q1: Q4_K_MのKとMは何ですか? A: KはK-quant方式、Mは中サイズ(S/M/Lの中)を意味します。同じ4bitでもブロック構成で品質と容量が変わります。
Q2: GGMLとの違いは? A: GGUFはGGMLの後継で、メタデータ内包・拡張性・新アーキテクチャ対応が改善されています。GGMLは非推奨です。
Q3: GPUがなくても使えますか? A: 使えます。GGUFはCPU推論に最適化されており、RAMが十分あれば量子化モデルをCPUのみで動かせます。
まとめ
- llama.cpp標準のLLM量子化ファイル形式
- K-quantで多段階量子化、CPU/GPU混在推論に対応
- Q4_K_Mが品質と容量のバランスで標準的な選択