llama.cppでGGUFを動かす方法|導入から実行まで

CHATGPT / AIChatGPTなどの生成AIを活用して運営・記事制作・更新を行っています。制作方針

llama.cppでGGUFモデルを動かす手順を、導入、モデル選択、固定リビジョンでのダウンロード、対話実行、API起動、ログ確認まで順番に解説します。2026年8月2日時点の公式情報に基づく机上調査です。

llama.cppの導入、GGUFの版とハッシュ確認、CLIとローカルAPI実行までの図解

先に結論

  • 最短で試すなら、llama.cppをRelease構成で用意し、llama-cli -hf リポジトリ:量子化を実行します。モデルを手元で管理したい場合は、GGUFを固定リビジョンで保存して-mへ渡します。
  • 最初は小型のInstruct/Chatモデル、4K程度のコンテキスト、-ngl auto -fit on -fa autoから始めると、モデル・メモリ・GPU設定を同時に増やさずに済みます。
  • 「起動した」だけで終わらせず、バイナリの版、認識device、GGUFのハッシュ、ロードログ、チャットテンプレートを記録すると、更新後の不具合を切り分けやすくなります。

おすすめ読者: GGUFを入手したものの実行方法が分からない人、llama.cppを初めてCLIから動かす人。

確認日時: 2026年8月2日 14:20(Asia/Tokyo)
固定した版: llama.cpp master HEAD 11924d4c17abc27383376a1ac6a24fa3e36c1c0c、例示モデル ggml-org/Qwen3.5-0.8B-GGUF revision 8fea6208
検証区分: 公式README、build/models/CLI資料、Hugging Face公式リポジトリを照合した机上調査です。掲載コマンドはBash/Zshとして構文を確認しましたが、ビルド、約563MBのモデル取得、推論、速度・品質測定は実施していません。
画像: アイキャッチはGGUFをローカル実行する流れを表した当サイトの要点図解で、実際の端末画面ではありません。

まず選ぶ:自動取得かローカルGGUFか

llama.cppでGGUFを動かす方法は、大きく2つあります。どちらも同じ推論機能を使いますが、再現性と手軽さが異なります。

方法向く場面利点確認点
-hf owner/repo:quantまず1回動かしたい選択したGGUFを取得してそのまま起動できる初回は通信が発生し、cacheへ保存される
-m /path/model.gguf版を固定して継続利用したいファイル名・保存場所・ハッシュを管理できる自分で正しいGGUFを選び、容量を確保する

本記事では両方を扱います。業務や比較検証では、モデルの更新で結果が変わらないよう、後者でリビジョンとSHA-256を固定する方法が安全です。

GGUFを選ぶ前に見る4項目

GGUFは単なる「軽量化済みモデル」という意味ではありません。公式のGGUF仕様では、tensorに加えてモデル構造やtokenizerなどのmetadataも格納できます。選択時は次の順で確認します。

  1. 用途: Baseではなく、会話に使うならInstruct/Chat版を選ぶ。
  2. 対応状況: モデルカードにllama.cppまたはGGUFでの利用方法があるかを確認する。
  3. 量子化とファイル容量: 搭載メモリいっぱいを使わず、KV cacheと実行buffer、OS用の余裕を残す。
  4. ライセンスと利用条件: GGUFの配布者だけでなく、元モデルのlicense、用途制限、gated repositoryの条件も読む。

必要容量を先に見積もる場合はローカルLLMに必要なVRAMの計算方法、Macの搭載メモリから候補を絞る場合はMacのメモリ別・動かせるローカルLLM一覧を参照してください。

手順1:llama.cppをRelease構成で用意する

公式READMEには、公式アプリ、Docker、release配布物、source buildの選択肢があります。ここでは版を記録しやすく、macOS/Linuxで流れを共通化できるsource buildを使います。Git、CMake、C/C++ compilerを事前に用意してください。

git clone https://github.com/ggml-org/llama.cpp.git
cd llama.cpp
git checkout --detach 11924d4c17abc27383376a1ac6a24fa3e36c1c0c

cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release -j

Apple Siliconでは公式build資料上、Metalが既定で有効です。NVIDIA GPUを使うLinux/Windows環境は、対応するCUDA toolkitを確認したうえで構成時に-DGGML_CUDA=ONを付けます。CPUだけで確認する段階なら追加backend指定は不要です。backend別の選択はllama.cpp GPUバックエンド比較で整理しています。

Windowsのmulti-config generatorでは実行ファイルがbuild/bin/Release/配下になる場合があります。以降の./build/bin/llama-cliは、手元の生成先へ読み替えてください。公式release archiveを使う場合も、展開したllama-cliへのpathだけが変わります。

手順2:版とdeviceを先に確認する

モデルを読み込む前なら確認は短時間で終わります。

./build/bin/llama-cli --version
./build/bin/llama-cli --list-devices
./build/bin/llama-cli --help

記録するのはcommit/build番号と、--list-devicesに表示されたbackend・device名です。GPUを使うつもりなのに一覧へ現れなければ、実行optionではなくbuild設定へ戻ります。llama.cppは更新頻度が高いため、記事と異なるSHAが出ること自体は異常ではありません。ただし、エラーを相談するときは「最新版」と書かず、表示された版を添えます。

手順3A:Hugging Faceから直接取得して動かす

2026年8月2日の公式READMEに掲載されている小型repositoryを、量子化まで明示して起動する例です。

./build/bin/llama-cli \
  -hf ggml-org/Qwen3.5-0.8B-GGUF:Q4_0 \
  -c 4096 \
  -n 256 \
  -ngl auto \
  -fit on \
  -fa auto \
  -cnv
  • -hfはGGUF repositoryと量子化を選び、初回にdownloadします。量子化を省略するとQ4_K_M、存在しなければ別fileへfallbackする規則なので、再現性が必要なら:Q4_0のように明示します。
  • -c 4096は開始点です。モデルが持つ最大contextを使い切る指定ではありません。
  • -ngl autoはGPU layer数、-fit onは未指定の値をdevice memoryへ収める調整、-fa autoはFlash Attentionの可否を自動判定します。
  • -cnvはconversation modeです。GGUFに対応chat templateがない場合、期待する会話形式にならないためモデルカードと起動警告を確認します。

tokenを必要とするgated repositoryでは、tokenをコマンド履歴へ直書きせずHF_TOKEN環境変数またはHugging Face CLIの認証機能を使います。

手順3B:GGUFを固定リビジョンで保存して動かす

Hugging Face公式CLIを利用する例です。--revisionを付けると、後日repositoryのmainが変わっても同じsnapshotを取得できます。

mkdir -p models/qwen35-08b

hf download \
  ggml-org/Qwen3.5-0.8B-GGUF \
  Qwen3.5-0.8B-Q4_0.gguf \
  --revision 8fea620810c4afa23dd6443f999a48574c1611a3 \
  --local-dir models/qwen35-08b

2026年7月17日確認時の対象fileは563,036,064 byte、LFS SHA-256は次の値です。download後にどちらかのcommandで照合します。

# macOS
shasum -a 256 models/qwen35-08b/Qwen3.5-0.8B-Q4_0.gguf

# Linux
sha256sum models/qwen35-08b/Qwen3.5-0.8B-Q4_0.gguf
57d1997790d1744fba5b40a7317df71ea5e2acee28c47e78f0cce39c0703f8cf

一致したら、絶対pathを変数へ入れて実行します。

MODEL_GGUF="$PWD/models/qwen35-08b/Qwen3.5-0.8B-Q4_0.gguf"

./build/bin/llama-cli \
  -m "$MODEL_GGUF" \
  -c 4096 \
  -n 256 \
  -ngl auto \
  -fit on \
  -fa auto \
  -cnv

別のdirectoryから実行するなら、$PWDがllama.cpp repositoryを指しているか確認します。相対pathの間違いを避けるには、最初から/absolute/path/to/model.ggufを指定する方が確実です。

起動ログで成功を判断する

画面に入力欄が出ても、意図した構成で動いたとは限りません。次を確認します。

ログで見るもの判断
model architecture・parameter・quantization選んだGGUFと一致しているか
context sizeとKV cache想定外に大きなcontextを確保していないか
backend・device・offloaded layersGPU対応buildが実際に使われたか
chat templateInstructモデルの会話形式が認識されたか
prompt eval/eval timings入力処理と生成を分けて記録できるか

出力が遅い場合は、すぐにoptionを大量追加せず、llama.cppが遅い原因と高速化設定の順番でbaselineを取ります。ロード時に止まる、metadata error、split file不足などの場合はGGUFモデルが読み込めないときの対処法へ進んでください。

APIで使う場合はlocalhostから始める

CLIで1回正常生成できた後に、同じGGUFをllama-serverへ渡します。

MODEL_GGUF="$PWD/models/qwen35-08b/Qwen3.5-0.8B-Q4_0.gguf"

./build/bin/llama-server \
  -m "$MODEL_GGUF" \
  --host 127.0.0.1 \
  --port 8080 \
  -c 4096 \
  -ngl auto \
  -fit on \
  -fa auto

別terminalからOpenAI互換endpointを確認します。

curl --silent --show-error \
  http://127.0.0.1:8080/v1/chat/completions \
  -H 'Content-Type: application/json' \
  --data-binary '{
    "model": "local",
    "messages": [{"role": "user", "content": "日本語で短く自己紹介してください。"}],
    "max_tokens": 128,
    "stream": false
  }'

127.0.0.1は同じPCからだけ接続する開始設定です。Internetへ公開する場合は認証、TLS、rate limit、logの機密情報対策が別途必要です。llama-server本番運用ガイドを先に確認してください。複数requestの処理はllama-serverの連続バッチング設定で扱います。

初回に多い失敗と戻る場所

症状最初の確認次の対応
No such file-mのpath、空白をquoteしたか絶対pathとls -lhで存在確認
unknown argument--versionと手元の--help古い記事のoptionをそのまま使わない
GPUが使われない--list-devicesMetal/CUDA等を有効にしてRelease buildし直す
load中にmemory errorfile size、context、空きRAM/VRAM-cを下げるか小さい量子化・modelへ変更
文字列が会話らしくないInstruct版か、chat template警告対応モデルカードとtemplateを確認
downloadできないrepository名、revision、gated条件認証・空き容量・通信を確認

設定名を詳しく調べるときはllama.cpp主要パラメータ一覧、用途別の完成形はllama.cppコマンド例10選が早見表になります。

FAQ

.bin.safetensorsをそのまま読める?

本記事の-mで指定するのはGGUFです。公式models資料では、他形式からの変換にrepository内のconvert_*.pyを使う経路が案内されています。配布済みGGUFがあるなら、初回は自分で変換せず対応fileを選ぶ方が切り分けやすくなります。

Q4_K_Mを常に選べばよい?

常にではありません。repositoryに存在する量子化、backendの対応、搭載メモリ、品質要件で決まります。-hfの既定選択に任せず、モデルカードとfile一覧を見て量子化名を明示してください。

Ollamaの方が簡単では?

モデル管理と標準的なAPIを短時間で整えたいなら有力です。一方、GGUF file、build、backend、KV cache、batchなどを直接比較したい場合はllama.cppが適します。判断基準はOllamaとllama.cppはどちらがおすすめ?で比較しています。

まとめ

llama.cppでGGUFを動かす最短ルートは、Release build、版とdeviceの確認、小型Instructモデル、4K context、自動offloadから始めることです。継続利用ではモデルrevisionとhashを固定し、起動logを残します。動かなければ「file」「版」「memory」「backend」「chat template」の順に切り分けると、設定を闇雲に増やさず原因へ近づけます。

参考資料