ブログに戻る

vLLMはGGUFを動かせるか? 答えはイエス、ただしGPUのみ

2026年9月23日

先週、読者からこんな質問が届いた。GPUなしマシンのvLLMでGGUFファイルが動かないのはなぜか、と。同じファイルはOllamaでは問題なく動くのに。先に短い答えを: はい、vLLMはGGUFを動かせます — 公式プラグイン経由で、GPU上のみ。 プラグイン名はvllm-gguf-plugin、構文はrepo:quant_type。CPUで試した瞬間、サポート対象ハードウェアの表の外に出ます。以下はすべてvLLM公式ドキュメントとvllm-project/vllmリポジトリの記録(2023年2月から9万2千スター超)に基づくもので、私のベンチ機の話ではありません。

GGUFモデルをvLLMでサーブするには?

手順は二つ。プラグインを入れ、vLLMをモデルに向ける。GGUFサポートはもうvLLM本体には住んでいません。ドキュメントは「vllm-gguf-pluginへ移行した」と明記しており、単なるpip install vllmでは足りません:

uv pip install vllm-gguf-plugin

# Hugging Faceから直接、repo_id:quant_type形式で:
vllm serve unsloth/Qwen3-0.6B-GGUF:Q4_K_M 
  --tokenizer Qwen/Qwen3-0.6B

# ダウンロード済みのローカルファイルなら:
vllm serve ./Qwen3-0.6B-Q4_K_M.gguf 
  --tokenizer Qwen/Qwen3-0.6B

--tokenizerフラグは飾りではありません。公式ドキュメントはベースモデルのトークナイザーを使うよう推奨しています。GGUFからのトークナイザー変換は「時間がかかり不安定、特に語彙の大きなモデルで」そう起きるからです。これを省くのは、一行のフラグを長くて気難しい起動と交換するようなものです。

GPU2枚で1モデル: --tensor-parallel-size 2を付ければ同じGGUFを両カードに分割できます。テンソル並列はGGUFでも他の形式と同じく機能します。

なぜvLLMはCPUでGGUFを拒るのか?

ここが意外な部分です。GGUFの評判はCPUファースト — llama.cppがラップトップやRaspberry Piで名を築いた、まさにその形式です。ところがvLLM内では立場が逆になります。公式ハードウェア互換表でのGGUFはこうです:

ハードウェアvLLMでのGGUF
NVIDIA Volta / Turing / Ampere / Ada / Hopper対応
AMD GPU対応
Intel GPU非対応
x86 CPU非対応
Arm CPU非対応

出典: vLLM量子化ドキュメント。理由はアーキテクチャにあります。vLLMのGGUF経路はブロックを、バッチサーブ向けに作られたGPUカーネルへ非量子化します。背後にCPUカーネルはありません。vLLMはサーブ用エンジンであって、ラップトップのおもちゃではないからです。GPUのないマシンではどのフラグも救いになりません — llama.cppを使いましょう。

何が壊れるか: 限界の正直なリスト

同じドキュメントページには、そのまま引用する価値のある警告が載っています: 「vLLMにおけるGGUFサポートは高度に実験的で、最適化が不十分です」。具体的には:

  • 量子化の対応範囲はllama.cppより狭い。 誰もがダウンロードするK-quant(Q4_K_Mなど)は動きますが、エキゾチックなスキームはそうとも限らない。形式のリファレンス実装はllama.cppのままです。
  • アーキテクチャ対応は後を追う形。 新しいモデルファミリーはまずllama.cppに着地し、プラグインが後から続きます。
  • mmap方式の遅延読み込みはない。 llama.cppはファイルをメモリにマップしますが、vLLMは通常のチェックポイントと同じく読み込みます。
  • まずはメモリフットプリントの機能。 ドキュメントはGGUFをVRAM使用量を抑える手段として位置づけ、スループットの賭けとはしていません。

これらは隠されていません。すべて公式GGUFページの最初の段落にあります — ほとんどの実験的機能より正直です。

GGUFにはvLLMとllama.cpp、どちらが勝つか?

同じファイルを読む、別々の道具です:

vLLM + GGUFllama.cpp
CPU推論不可可、第一級
同時ユーザーcontinuous batching、そのために作られた限定的
量子化の対応範囲部分集合、実験的リファレンス
セットアップvLLM + プラグインバイナリ1つ
向いている場面1枚のGPUで多くのユーザー1ユーザー、どんなハードでも

1枚のGPUでチームにモデルをサーブするなら、vLLM + GGUFでlocal-LLM世界が共有する同じQ4_K_Mファイルを再利用できます。選択肢の詳細はGGUF量子化ガイドへ。エンジン全体の比較はllama.cpp vs OllamaGGUFモデルをローカルで動かす方法をどうぞ。

一行のルール: 同じファイル、正反対の本能 — llama.cppはGGUFを「その形式」として扱い、vLLMは「選択肢の一つ」として扱う。

FAQ

vLLMはGGUFモデルを動かせますか?

はい。vllm-gguf-pluginをインストールし、repo:quant_type構文でserveします — ただしGPU上のみ。vLLMのCPU経路はGGUFをカバーしません。

vLLMはCPUでGGUFを動かせますか?

いいえ。公式のハードウェア互換表はGGUFをx86・Arm CPUで非対応と明記しています — CPU経路はllama.cppかOllamaのままです。

GGUFのサーブはvLLMとllama.cppのどちら?

1枚のGPUで多数の同時ユーザーに応えるならvLLM。GPUのないマシンや、量子化の対応範囲の広さを取るならllama.cppです。

— mrsaynothing

— mrsaynothing

AI・Linux・セルフホスティングの実地メモ。

次のハウツーをメールで受け取る

投稿ごとに1通。直して先へ進む。

self-hosted · 第三者なし · ワンクリックで購読解除

これは何?

デスクトップの128kコンテキストは嘘だ。KVキャッシュが食い潰した。

記事を楽しんでいただけましたか?私の本業はこのような構築です。 採用のご相談