Windowsでllama.cppのローカルモデルを使う
このページでは、llama.cppを使ってローカルLLMを起動し、OpenAI互換APIとしてClaw Codeから利用する方法を説明します。
目標は次の流れです。
llama.cppを導入する。- NVIDIA GPUを使う場合はCUDAをインストールする。
- Pythonをインストールする。
hfをインストールし、Hugging FaceからGGUFモデルをダウンロードする。llama-server.exeをローカルで起動する。- Claw Codeの
OPENAI_BASE_URLをローカルサーバーに向けて起動する。
Note
ローカルモデルは有料APIクレジットなしで使えますが、CPU、RAM、できれば高性能なGPUと大容量のVRAMが必要です。大きいモデルほど遅くなり、必要メモリも増えます。
Warning
小さいローカルモデルは、コーディングエージェント用途では十分に動作しないことがあります。出力崩壊を起こす、エージェント的な作業でターミナルを適切に使えない、存在しないコマンド・ファイル・API・実行結果をハルシネーションする、といった問題が起こり得ます。可能であれば、用途に対して十分なサイズのInstruct系またはCoder系モデルを使ってください。
推奨フォルダ構成
このページでは、次のフォルダ構成を例にします。
%USERPROFILE%\Documents\local-ai\
├── llama.cpp\
│ └── llama-server.exe
└── models\
└── devstral-small-2507-q4km\
└── model.gguf
まず、作業用フォルダを作成します。
New-Item -ItemType Directory -Force "$env:USERPROFILE\Documents\local-ai"
Set-Location "$env:USERPROFILE\Documents\local-ai"
1. llama.cppを導入する
Windowsでllama.cppを導入する方法は、大きく分けて2つあります。
方法A: ビルド済みリリースをダウンロードする
初心者にはこの方法が簡単です。
- llama.cppのリリースページを開きます。
- 自分の環境に合うWindows用のアーカイブをダウンロードします。
- CPUのみで使う場合は、
llama-server.exeを含むWindows用アーカイブを選びます。llama-(ランダム文字列)-bin-win-cpu-x64.zipのようなファイル名です。 - NVIDIA GPUで推論する場合は、CUDA対応のWindows用アーカイブを選び、対応するCUDAランタイムを入れます。
cudart-llama-bin-win-cuda-12.4-x64.zip、cudart-llama-bin-win-cuda-13.1-x64.zip、llama-(ランダム文字列)-bin-win-cuda-12.4-x64.zip、llama-(ランダム文字列)-bin-win-cuda-13.1-x64.zipのようなファイル名です。 - NVIDIA以外のGPUバックエンドを使う場合は、
llama.cppのWindowsビルドにはVulkan、SYCL、HIPもあります。
- CPUのみで使う場合は、
- ダウンロードしたアーカイブを展開します。
-
展開したフォルダを次の場所にコピーまたは移動します。
-
cudart-llama-bin-win-cuda-<version>-x64.zipをダウンロードし、DLLファイルをllama-server.exeの隣にあるllama.cppフォルダへ展開します。 -
llama-server.exeが存在することを確認します。
Trueと表示されれば、実行ファイルを利用できます。
方法B: ソースコードからビルドする
特定のビルドオプションが必要な場合や、ビルド済みバイナリが合わない場合はこちらを使います。
必要なツールをインストールします。
winget install Git.Git --source winget
winget install Kitware.CMake --source winget
winget install Microsoft.VisualStudio.2022.BuildTools --source winget
インストール後、Windows Terminalを再起動してください。
次にllama.cppをクローンしてビルドします。
Set-Location "$env:USERPROFILE\Documents\local-ai"
git clone https://github.com/ggml-org/llama.cpp.git
Set-Location .\llama.cpp
cmake -B build
cmake --build build --config Release
ビルド後、llama-server.exeを探します。実際の場所はビルド設定によって変わることがありますが、bin\Release配下などに生成されることが多いです。
2. NVIDIA GPUを使う場合はCUDAをインストールする
NVIDIA GPU対応のllama.cppビルドを使う場合は、GPUドライバーに加えてCUDAランタイムまたはCUDA Toolkitが必要です。Vulkan、SYCL、HIPのビルドを使う場合はCUDAは不要で、対応するバックエンドのアーカイブを使います。
まず、利用できるCUDAのバージョンを確認します。
CUDA 13をインストールする場合
CUDA 13系でよい場合は、次のコマンドでインストールできます。
Warning
winget install Nvidia.CUDAを実行すると、wingetで公開されている最新のCUDAがインストールされます。現在はCUDA 13.2がインストールされる場合があります。CUDA 12系が必要な場合は、このコマンドをそのまま実行せず、次の手順でバージョンを指定してください。
CUDA 12をインストールする場合
CUDA 12対応のllama.cppアーカイブを使う場合は、winget show Nvidia.CUDA --versionsで表示されたCUDA 12系のバージョンを指定してインストールします。
インストール後、Windows Terminalを再起動してから確認します。
Tip
ビルド済みアーカイブのファイル名にcuda-12.4やcuda-13.1のような表記がある場合は、できるだけ近いCUDAメジャーバージョンを使ってください。CUDA 12用のアーカイブにはCUDA 12系、CUDA 13用のアーカイブにはCUDA 13系を合わせるとトラブルを減らせます。
3. Pythonをインストールする
hfはPythonパッケージとして配布されているため、huggingface_hubをインストールする前にPythonを導入します。
wingetでPythonをインストールします。
インストール後、Windows Terminalを閉じて開き直します。その後、Pythonとpipが使えることを確認します。
pythonが見つからない場合は、もう一度Windows Terminalを再起動してください。それでも見つからない場合は、PythonがPathに追加されているか確認してください。
4. hfをインストールする
hfはPythonパッケージのhuggingface_hubに含まれています。
コマンドが使えるか確認します。
hfが見つからない場合は、Windows Terminalを閉じて開き直してから再度試してください。それでも見つからない場合は、PythonのScriptsフォルダがPathに追加されているか確認してください。
5. 必要に応じてHugging Faceへログインする
モデルによっては、ダウンロード前にライセンス同意やログインが必要です。
- Hugging Faceのアカウントを作成、またはログインします。
- モデルページで利用条件への同意が必要な場合は、ブラウザ上で同意します。
- Hugging Faceでアクセストークンを作成します。
- PowerShellでログインします。
プロンプトが表示されたら、アクセストークンを貼り付けます。
Warning
Hugging Faceのトークンを、公開リポジトリ、スクリーンショット、共有ログなどに貼り付けないでください。
6. GGUFモデルを選ぶ
llama.cppで使う場合は、GGUF形式のモデルを選びます。
モデル選定時は、次の点を確認します。
- 形式: ファイル名が
.ggufで終わるものを選びます。 - Instruction tuning: Claw Code用途では
InstructまたはCoder系のモデルが向いています。 - 量子化: ローカル用途では
Q4_K_Mがバランスのよい選択肢です。量子化の数字が小さいほど、使用メモリが少なくなります。Q8はメモリを多く使用し、Q4はメモリが少なくなります。 - メモリ: 大きいモデルほど多くのRAMまたはVRAMが必要です。モデルのサイズは、27B、35B、500Mなどの表記になっています。
2026/04時点では、実在するGGUFリポジトリだけを書き、しかも選ぶ量子化がVRAM帯に収まるものだけを載せます。モデルカードにある実際のファイルサイズを見て、対象VRAMに少し余裕があるものを選んでください。
今回の調査結果では、Devstral-Small-2507、Qwen3-Coder-30B-A3B-Instruct、Qwen2.5-Coder-14B-Instruct、Qwen2.5-Coder-7B-Instruct、そして長文効率を重視する場合のDeepSeek-Coder-V2-Lite-Instructが、実運用での有力候補です。
VRAM別のおすすめは次のとおりです。
| VRAM | モデル | GGUF量子化 | 使いどころ | 備考 |
|---|---|---|---|---|
| 32 GB | mistralai/Devstral-Small-2507_gguf |
Q5_K_M |
128k native / 約90k程度まで現実的 | レポートの最有力。エージェント用途の本命です。 |
| 32 GB | unsloth/Qwen3-Coder-30B-A3B-Instruct-GGUF |
Q4_K_M |
262k native / 100k超級も狙いやすい | 長文とツール利用を重視するなら強い候補です。 |
| 24 GB | mistralai/Devstral-Small-2507_gguf |
Q4_K_M |
128k native / 余裕を残しやすい | もっとも堅い選択です。 |
| 24 GB | unsloth/Qwen3-Coder-30B-A3B-Instruct-GGUF |
Q4_K_M |
262k native / 3万token超級 | MoE系の最新候補として有力です。 |
| 16 GB | Qwen/Qwen2.5-Coder-14B-Instruct-GGUF |
Q4_K_M |
フル32,768 tokens / 実用24k-30k程度 | 密なコーダーで、16 GB帯の安全策です。 |
| 16 GB | DeepSeek-Coder-V2-Lite-Instruct |
Q4_K_M または Q6_K |
長文効率重視 / GGUFでは実装差あり | VRAMの単純比較よりも長文効率を優先する場合に候補です。 |
| 12 GB | Qwen/Qwen2.5-Coder-7B-Instruct-GGUF |
Q4_K_M |
フル32,768 tokens | 12 GB帯で最も無難です。 |
| 12 GB | DeepSeek-Coder-V2-Lite-Instruct |
Q4_K_M |
長文効率重視 / GGUFでは実装差あり | 長文資料やリポジトリ作業向きの代替候補です。 |
| 8 GB | Qwen/Qwen2.5-Coder-7B-Instruct-GGUF |
Q4_K_M |
フル32,768 tokens | 8 GB帯の安全策です。 |
llama.cppはVRAMに収まらないモデルをRAMへ逃がして動かすこともできますが、このガイドの主な例では扱いません。速度が落ち、VRAM帯ごとの比較もしづらくなるためです。
Hugging Faceでは、たとえば次のようなキーワードで探します。
Devstral-Small-2507 GGUFQwen3-Coder-30B-A3B-Instruct GGUFDeepSeek-Coder-V2-Lite-Instruct GGUFQwen2.5-Coder-14B-Instruct GGUFQwen2.5-Coder-7B-Instruct GGUFQwen2.5-Coder-32B-Instruct GGUF
最初の動作確認では、Qwen2.5-Coder-7B-Instruct-GGUFのQ4_K_M量子化がいちばん安全で扱いやすいです。Claw Codeの出力が崩れる、存在しないコマンドを作る、ターミナル作業を進められないといった場合は、Qwen2.5-Coder-14B-Instruct-GGUFかDevstral-Small-2507へ上げてください。
7. hfでモデルをダウンロードする
モデル保存用フォルダを作成します。
New-Item -ItemType Directory -Force "$env:USERPROFILE\Documents\local-ai\models"
Set-Location "$env:USERPROFILE\Documents\local-ai\models"
特定のGGUFファイルをダウンロードします。
置き換える値は次のとおりです。
REPOSITORY_NAME: Hugging Faceのリポジトリ名。例:owner/model-repositoryFILE_NAME.gguf: ダウンロードしたいGGUFファイル名MODEL_FOLDER: ローカル保存先フォルダ名
例:
hf download mistralai/Devstral-Small-2507_gguf Devstral-Small-2507-Q4_K_M.gguf --local-dir .\devstral-small-2507-q4km
ダウンロード後、ファイルが存在することを確認します。
扱いやすいように、モデルファイル名をmodel.ggufへ変更しておくこともできます。
8. llama-server.exeを起動する
llama.cppのフォルダへ移動します。
サーバーを起動します。
.\llama-server.exe `
-m "$env:USERPROFILE\Documents\local-ai\models\devstral-small-2507-q4km\model.gguf" `
--host 127.0.0.1 `
--port 8000 `
--alias devstral-small-2507-q4km-local `
-c 8192
各オプションの意味は次のとおりです。
-m: GGUFモデルファイルのパス--host 127.0.0.1: 自分のPCからのみ接続を受け付ける--port 8000: 8000番ポートでサーバーを公開する--alias: OpenAI互換クライアントから使うモデル名-c 8192: コンテキストサイズ
ローカルモデルを使っている間は、このPowerShellウィンドウを開いたままにします。
Tip
メモリ不足になる場合は、より小さいモデルを使う、Q4_K_MやQ3_K_Mなど軽い量子化を選ぶ、または-c 4096のようにコンテキストサイズを下げてください。
9. ローカルのOpenAI互換エンドポイントをテストする
別のPowerShellウィンドウを開いて、次を実行します。
Invoke-RestMethod `
-Uri "http://127.0.0.1:8000/v1/chat/completions" `
-Method Post `
-ContentType "application/json" `
-Body '{"model":"devstral-small-2507-q4km-local","messages":[{"role":"user","content":"Say hello in one sentence."}]}'
正常に動作していれば、ローカルモデルからの応答が返ります。
10. Claw Codeからllama-server.exeへ接続する
Claw Codeを起動するPowerShellウィンドウで、OpenAI互換API用の環境変数を設定します。
もしまだ Claw Code の rust ディレクトリにいない場合は、先に移動してください。例:
または親フォルダにいる場合は相対パスで移動できます。
その後、llama-server.exe起動時に指定したモデルエイリアスを使ってClaw Codeを起動します。プロバイダー名はAPIの種別特定に使われるので、モデル名にはopenai/を付与します。
Debugビルドの場合:
Releaseビルドの場合:
すでにclaw.exeへPathを通している場合は、次のように実行できます。
トラブルシューティング
llama-server.exeが見つからない
展開先またはビルド先を確認します。
見つかったllama-server.exeがあるフォルダへ移動して実行してください。
ダウンロードしたcudart-llama-bin-win-cuda-<version>-x64.zipに含まれるCUDAランタイムのDLLファイルが、llama-server.exeと同じllama.cppフォルダに展開されていることも確認してください。
CUDAを入れたのにGPUが使われない
次を確認してください。
- NVIDIAドライバーがインストールされている。
- CUDA対応の
llama.cppアーカイブを使っている。CPU専用、Vulkan、SYCL、HIPのビルドではありません。 - CUDA 12用アーカイブにはCUDA 12系、CUDA 13用アーカイブにはCUDA 13系を使っている。
- Windows Terminalを再起動してから
nvcc --versionを確認している。
CUDAビルドが起動直後に落ちる場合は、cudart-llama-bin-win-cuda-<version>-x64.zipのDLLをllama.cppフォルダへ展開したかも再確認してください。
モデルが遅すぎる
次を試してください。
- より小さいモデルを使う。
- より軽い量子化のモデルを使う。
-c 4096のようにコンテキストサイズを下げる。- 対応GPUがある場合は、GPU対応のllama.cppビルドを使う。
Claw Codeから接続できない
llama-server.exeが起動したままになっているか、OPENAI_BASE_URLに/v1が含まれているか確認します。
期待する値:
誤って外部公開しない
通常のローカル利用では、--host 127.0.0.1のままにしてください。
--host 0.0.0.0を使うと外部の端末から接続できる可能性があります。セキュリティ上の意味を理解し、ファイアウォール設定を行える場合以外は使わないでください。