GGUFとは?量子化モデルフォーマットの仕組みとGPTQ・AWQとの違い・採用判断を解説【2026年版】
GGUF(GPT-Generated Unified Format)は、llama.cpp が策定したローカルLLM向けのモデルフォーマットです。量子化した重みと、トークナイザやチャットテンプレートといったメタデータを1つのファイルにまとめて格納します。同じ .gguf ファイルが Ollama・LM Studio・llama.cpp・KoboldCpp で共通に読み込めるため、自社サーバーやオンプレ環境でLLMを動かすときの事実上の共通形式です。この記事では、GGUFの単一ファイル構造、Q4_K_M のような量子化タイプの読み方、GPTQ・AWQ・HQQとの違い、safetensors からの変換手順、そして企業が採用すべき条件と見送るべき場面までを、実装者の判断基準に落として解説します。
目次
まとめ:GGUFはローカルLLM実行の共通形式で量子化タイプ選定が要点
GGUFは「量子化アルゴリズム」ではなく、量子化済みの重みと実行に必要な情報を1ファイルに束ねた「コンテナ形式」です。ここを取り違えると、GPTQやAWQと同じ土俵で比べてしまい選定を誤ります。GPTQ・AWQがGPU推論向けの量子化手法であるのに対し、GGUFはCPUとGPUの両方でllama.cpp系エンジンから読み込める配布形式であり、両者は競合ではなく役割が異なります。
実務で決め手になるのは量子化タイプの選び方です。汎用用途の初期値は Q4_K_M(4ビット・バランス型)で、精度を詰めたい業務は Q5_K_M や Q6_K、検証用に軽く動かすなら Q3_K_M を使い分けます。VRAMや必要精度が読めないうちからサイズの小さい量子化に飛びつくと、日本語の指示追従が崩れて出力品質が落ちがちです。企業導入では、機密データを外に出せない・推論コストを削減したい要件があるときにGGUF+自社実行が効き、逆に精度を最優先で大規模並列が要る用途ではvLLM系のGPU量子化を選ぶ、という損益分岐で判断します。
GGUFの定義と単一ファイル構造|llama.cppが策定したモデル形式
GGUFは、llama.cpp が2023年8月に導入したバイナリ形式で、それ以前の GGML 形式を置き換えたものです。フォーマットのバージョンは v3系(2026年時点)が使われています。名称の由来は GPT-Generated Unified Format で、GPT系に限らず幅広いアーキテクチャのモデルを1つの規格で扱うことを狙った設計です。
量子化重みとメタデータを1ファイルに束ねる格納方式とその中身
GGUFファイルの中身は、大きく「テンソル(量子化された重み本体)」と「キー・バリュー形式のメタデータ」に分かれます。メタデータ側には、モデルアーキテクチャ名、コンテキスト長、トークナイザの語彙、そして推論時に前後へ差し込むチャットテンプレートまでが含まれます。safetensors のように重みだけを持つ形式では、トークナイザ設定や生成テンプレートを別ファイルで揃える必要がありました。GGUFは実行に要る情報を同梱するため、.gguf を1つ配置すればエンジン側が追加設定なしでロードできます。
mmapによる高速ロードとGPUへの部分オフロードのメモリ制御
GGUFはメモリマップ(mmap)に対応し、ファイル全体をメモリへ読み込まずに必要な領域だけを参照します。数GB規模のモデルでも起動が速く、複数プロセスが同じファイルを共有し、メモリ消費を抑えられる点も利点です。GPUを併用する場合は、llama.cpp の --n-gpu-layers で「何層ぶんの重みをVRAMへ載せるか」を指定し、載りきらない層はCPU側のRAMに残す部分オフロードができます。VRAM 8GBのGPUで7B級モデルを動かす、といった構成が現実的になるのはこの仕組みによります。
GGUF量子化タイプの命名規則と精度・サイズ・速度のトレードオフ
GGUFを扱ううえで最初に読めるようになるべきは、Q4_K_M のような量子化タイプの記号です。この記号がビット数と品質のトレードオフを表しており、選定の起点になります。
Q4_K_Mの記号が示すビット幅とK-quantの品質バランス
記号は「Q(量子化ビット幅)+K(K-quant方式)+サイズ区分(S・M・L)」で読みます。Q4_K_M なら「4ビット・K-quant・Medium(バランス型)」です。K-quant は、層ごとに重要度へ応じてビット配分を変える方式で、旧来の Q4_0 のような一律量子化(legacy quants)より同じビット幅で品質が高くなります。さらにビット幅を下げた IQ系(I-quant、例:IQ3_XS)は、キャリブレーションデータを用いてより低ビットで精度を保つ系統です。実務での初期選択は次のように整理できます。
| 量子化タイプ | ビット幅目安 | サイズ(7B概算) | 用途の目安 |
|---|---|---|---|
| Q8_0 | 8bit | 約7.2GB | 精度をほぼ落とさず検証したい基準用 |
| Q6_K | 6bit | 約5.5GB | 品質重視・余裕あるVRAM向け |
| Q5_K_M | 5bit | 約4.8GB | 精度と容量の折衷(業務の実運用) |
| Q4_K_M | 4bit | 約4.1GB | 汎用の初期値(費用対効果の中心) |
| Q3_K_M | 3bit | 約3.3GB | 軽量検証・低スペック機の試し動作 |
サイズは 7B(70億パラメータ)級での概算で、モデルによって前後します。数値は目安であり、実機のVRAMと日本語タスクの精度で最終判断します。
4ビットを下回ると品質が崩れる境界と量子化タイプ検証の実手順
ビット幅を下げるほどファイルは小さく推論は速くなりますが、品質は単調に落ちるわけではなく、ある閾値を越えると急に破綻します。経験則として、4ビット(Q4_K_M)までは実用域を保ちやすく、3ビットを下回ると日本語の助詞や固有名詞の扱い、指示の取りこぼしが目立ち始めます。見極めの手順はシンプルです。まず Q4_K_M で自社の代表タスクを10〜20件流し、出力を目視で評価します。品質が足りなければ Q5_K_M・Q6_K へ上げ、VRAMが逼迫する場合は層オフロードで逃がす方針です。逆に速度が足りない場合でも、いきなり Q3 まで落とさず、まずコンテキスト長やバッチ設定を削るほうが品質を守れます。
GGUFとGPTQ・AWQ・HQQの違いと実行エンジン別の使い分け
GGUFを「GPTQやAWQの対抗馬」と誤解すると選定を外します。GGUFは配布・実行のためのファイル形式で、GPTQ・AWQ・HQQは重みを圧縮する量子化アルゴリズムです。層が違うため、正しくは「どの実行エンジンに載せるか」で分岐します。
GGUFの形式とGPTQ・AWQのアルゴリズムという層の違い
GPTQ と AWQ は、GPU推論を前提にした量子化アルゴリズムです。いずれも safetensors 形式で配布され、Transformers・vLLM・TGI といったGPU向けエンジンから読み込みます。AWQ は活性化の分布を見て重要な重みを保護する方式、GPTQ は誤差を逐次補正しながら量子化する方式で、どちらもGPUでの高速並列推論に向く手法です。HQQ(Half-Quadratic Quantization)は、キャリブレーション用データセットを必要とせず短時間で量子化できる手法で、対象モデルを素早く圧縮したい場面で使われます。一方GGUFは、これらと同じ「アルゴリズム」の欄に並ぶものではなく、llama.cpp が内部に持つ量子化(K-quant等)で圧縮した重みを、CPUとGPUの両対応の実行形式として1ファイルに包んだものです。量子化そのものの手法比較(PTQ/QAT・GPTQ/AWQ/HQQ)や採用判断は、LLM量子化とは何か・仕組みと企業の採用判断で概念ハブとして整理しています。
| 名称 | 種別 | 主な実行エンジン | 想定ハード | 向く場面 |
|---|---|---|---|---|
| GGUF | ファイル形式 | llama.cpp/Ollama | CPU+一部GPU | オンプレ実行・GPUが小さい環境 |
| GPTQ | 量子化アルゴリズム | vLLM/Transformers | GPU前提 | GPUでの高速・並列推論 |
| AWQ | 量子化アルゴリズム | vLLM/Transformers | GPU前提 | 精度を保った4bit GPU推論 |
| HQQ | 量子化アルゴリズム | Transformers | GPU前提 | キャリブレーション不要で素早く圧縮 |
CPU実行かGPU並列かで決まる実行エンジンと形式の選定分岐
選定は用途で言い切れます。GPUを潤沢に確保でき、多数の同時リクエストを高スループットでさばく構成なら、AWQ や GPTQ の重みを vLLM に載せる形が向いています。対して、GPUが小さい・無い、あるいは1台のサーバーや端末で少数の推論を回すなら、GGUF+llama.cpp/Ollama が扱いやすく、CPUオフロードで動かせる柔軟さが強みです。小規模モデルを組み合わせる設計では、SLM(小規模言語モデル)の仕組みとLLMとの違いを押さえると、量子化とモデルサイズのどちらでVRAMを削るかを判断しやすくなります。推論そのものの高速化はフォーマットとは別軸で、KVキャッシュによるLLM推論の高速化の仕組みと併せて設計すると、量子化とキャッシュ管理の両面からメモリと速度を詰められます。
safetensorsからGGUFへの変換・量子化の実装手順とツール選定
配布されているモデルの多くは Hugging Face 上に safetensors 形式で置かれています。これをGGUF化する流れは、変換と量子化の2段階です。Hugging Faceからのモデル取得の基本を前提に、実装手順を追います。
convert_hf_to_gguf.pyとllama-quantizeによる2段階変換
手順は次の順で進めます。まず高精度のGGUFへ変換し、そこから目的のビット幅へ量子化します。
- Hugging Face から対象モデル(safetensors とトークナイザ一式)を取得する。
- llama.cpp 付属の
convert_hf_to_gguf.pyで F16 もしくは BF16 の GGUF に変換する。 llama-quantizeに F16 GGUF と出力パス、量子化タイプ(例:Q4_K_M)を渡して量子化する。llama-cliまたは Ollama にロードし、代表タスクで品質と速度を確認する。
すでにコミュニティが量子化済みのGGUFを配布しているモデルも多く、その場合は変換を省いてダウンロードだけで済みます。ただし配布物はチャットテンプレートの埋め込みがモデルごとに異なるため、指示追従がおかしいときはメタデータのテンプレートをまず疑います。
ファインチューニング済みモデルをGGUFへ変換し実行する連携
自社データで追加学習したモデルをローカル実行に載せる場合も、出力をGGUFへ変換する流れは同じです。ファインチューニングの仕組みとRAGとの使い分けを経て作ったモデルは、学習フレームワーク側からGGUF書き出しに対応していることがあります。たとえば Unslothによる高速ファインチューニングは、学習後にそのままGGUFへ書き出す機能を備えており、変換の手数を削減できる点が利点です。実運用へ載せる前段としては、ローカルLLMの構築手順とOllamaでの動かし方を押さえておくと、GGUFの配置から起動までを一連で組めます。
企業がGGUFの採用を判断すべき条件と見送るべき場面の損益分岐
ここは競合記事が踏み込まない、導入判断の章です。GGUFは万能ではありません。要件によっては採用し、別の要件では見送るべきで、その分岐を条件付きで示します。
オンプレ運用・コスト削減・機密要件でGGUFの採用が効く条件
GGUF+ローカル実行が明確に効くのは、次の条件がそろう場合です。第一に、社外にデータを出せない機密要件があり、クラウドAPIへプロンプトを送れないケース。第二に、推論の従量課金を避けて運用費を削減したいケース。第三に、小〜中規模モデル(7B〜14B級)で足りるタスクで、GPUが小さいか手元のサーバーで完結させたいケースです。日本語業務での実装例としては、日本語特化のLlama-3-ELYZA-JP-8BをOllamaで動かす構成のように、量子化済みGGUFを社内サーバーへ置いて問い合わせ対応や文書整形に回す形が現実的です。自社データに合わせた生成AIエンジンの設計・実装から社内基盤への組み込みまでを外部に相談したい場合は、生成AIエンジン開発の受託で、要件に見合ったモデルサイズと量子化タイプの選定を含めて設計できます。
高精度・大規模並列の推論が要る場面でGGUFを見送る判断の軸
逆に、GGUFを見送るべき場面もはっきりしています。多数のユーザーからの同時リクエストを高スループットでさばく必要があるなら、CPUオフロード前提のllama.cpp構成はスループットで頭打ちになり、vLLM+GPU量子化(AWQ/GPTQ)に分のある領域です。また、量子化そのものが許容できないほど精度がシビアなタスク――たとえば厳密な数値計算や長文の法務・医療ドキュメント精読――では、4bit量子化で落ちる精度が業務リスクへ直結します。この場合はフル精度またはFP16での推論を選び、コストはGPU確保で吸収する判断になります。「GGUFにすれば安く速くなる」と一律に決めず、同時実行数と許容精度の2軸で線を引くのが失敗しない進め方です。
GGUFの導入と運用でよくある質問|変換・量子化タイプ・商用利用
実装や選定の現場で繰り返し出る疑問を、判断に使える粒度でまとめます。
GGUFとGGMLは何が違いますか?
GGMLはllama.cpp初期のモデル形式で、GGUFはその後継として2023年8月に導入されました。GGMLはメタデータの拡張性が乏しく、新しいアーキテクチャや設定を追加しづらい課題がありました。GGUFはキー・バリュー形式のメタデータで拡張性を確保し、トークナイザやテンプレートまで同梱します。現在の配布はGGUFが標準で、GGMLは非対応のエンジンが増えているため、新規に選ぶ理由はありません。
どの量子化タイプを最初に選べばよいですか?
用途が定まっていなければ Q4_K_M から始めます。4ビット・バランス型で、サイズと品質の折り合いが取りやすい初期値です。代表タスクを流して品質が足りなければ Q5_K_M・Q6_K へ上げ、VRAMが厳しければ層オフロードで調整します。最初から Q3以下へ落とすと品質評価の基準が崩れるため避けます。
GGUFのモデルは商用利用できますか?
可否はGGUFという形式ではなく、元モデルのライセンスで決まります。GGUFは配布形式にすぎないため、Llama系・Qwen系・Gemma系など、変換前のモデルが定める利用規約(商用可否・再配布条件・利用者数の上限など)をそのまま引き継ぎます。導入前に元モデルのライセンス原文を確認し、社内利用と外部提供で条件が変わる点まで押さえてください。
CPUだけでGGUFモデルは実用的に動きますか?
7B級のQ4_K_MであればCPUのみでも動作しますが、生成速度は毎秒数トークン程度に留まることが多く、対話用途では待ち時間が体感されます。少数の非同期バッチ処理(夜間の文書要約など)ならCPUのみで運用でき、対話応答を求めるならGPUへ一部層をオフロードして速度を確保するのが現実解です。必要スペックの目安は動かすモデルサイズと量子化タイプで変わります。
GGUFとGPTQ・AWQはどちらを選ぶべきですか?
実行環境で決めます。GPUが小さい・無い、または1台で少数の推論を回すならGGUF+llama.cpp/Ollamaです。潤沢なGPUで多数の同時リクエストを高スループットにさばくならAWQ/GPTQ+vLLMが向きます。両者はフォーマットとアルゴリズムで層が異なるため、優劣ではなく用途で振り分けるのが正しい選び方です。
関連記事
- LLMとは?大規模言語モデルの仕組みと企業導入の判断基準:GGUFで動かす対象そのものであるLLMの全体像を押さえる入り口です。
- ローカルLLMとは?必要スペックとOllamaでの構築手順:GGUFを配置して実際に動かすまでの環境構築を具体的に解説します。
- KVキャッシュとは?LLM推論を高速化する仕組み:量子化と別軸で推論のメモリと速度を詰める手法です。
- SLMとは?小規模言語モデルとLLMの違い:量子化とモデルサイズのどちらでVRAMを削るかを判断する材料になります。
- Unslothとは?高速ファインチューニングの仕組み:学習済みモデルをGGUFへ書き出す連携の入り口です。