blog
AIブログ
llama.cpp とは?ローカル実行の使い方・導入【2026年版】
監修
河合 継(クリスタルメソッド株式会社 代表取締役)
AI・ディープラーニングに関する特許16件の発明者。国立がん研究センターとの共同研究や、テレビ番組でのAI解説実績を持つAI研究者として、AIの研究開発を主導している。
運営会社について | 編集方針
llama.cppとは何か――ローカルLLM推論を可能にするC++エンジン
llama.cppは、Meta社のLlamaモデルをはじめとする大規模言語モデル(LLM)を、GPUクラスタや高額なクラウドAPIなしに手元のマシンで動かすためのC++製推論エンジンです。2023年初頭にGeorgi Gerganov氏がオープンソースで公開して以来、量子化・CPU推論・マルチプラットフォーム対応の三拍子が評価され、ローカルLLM活用のデファクトスタンダードになっています。
弊社(クリスタルメソッド)では複数のLLMを実務検証するなかで、llama.cppをAPIコスト削減・プライバシー確保・レスポンス速度安定化の観点から継続利用しています。本記事では、llama.cppの仕組み・特徴・量子化形式・実運用のポイントをできる限り具体的に解説します。Llamaモデル全体の概要や料金・他モデルとの比較については後述の関連記事を参照してください。

llama.cppが解決する問題
LLMは通常、数十億〜数千億パラメータを持ち、FP16(16ビット浮動小数点)で保存すると70Bモデルで約140GBものVRAMを要します。これはA100を2〜3枚積んだサーバーでなければ動かない規模です。llama.cppはこの問題を量子化(Quantization)によって解決します。重みを4〜8ビット整数に圧縮することで、70BモデルをVRAM 40GB以下、8BモデルをRAM 8GBのラップトップで動かすことが現実的になりました。
さらに重要なのは、量子化と並行してCPU推論を高速化するカーネル実装を提供している点です。GPUがなくてもAVX2/AVX-512/NEON等のSIMD命令を活用し、ゲーミングPCやM1/M2/M3/M4 MacBook Proでも実用的なトークン生成速度(数token/秒〜数十token/秒)を達成できます。
主な課題と解決策の整理
| 課題 | 従来の状況 | llama.cppによる解決 |
|---|---|---|
| VRAMの不足 | 70BモデルにA100×2〜3枚必要 | Q4量子化で約35GB→コンシューマGPUで動作 |
| GPU非所持 | CPU推論は非現実的な速度 | SIMD最適化でCPU推論を実用化 |
| APIコスト・レイテンシ | クラウドAPI依存でコスト増・遅延あり | 完全ローカルで固定コスト・低レイテンシ |
| プライバシーリスク | 入力データが外部サーバーに送信 | オンプレ動作でデータが外部に出ない |
| OSの多様性 | Linux限定のフレームワークが多い | Linux/macOS/Windows全対応 |
llama.cppのアーキテクチャと処理フロー
llama.cppは単なる「モデルローダー」ではなく、推論エンジン全体を内包しています。主要コンポーネントを処理フローとして示します。
(モデル重み+メタ情報)
(ggml_tensor構造体)
(CPU/CUDA/Metal等)
(KVキャッシュ管理)
(temperature/top-p等)
(デトークナイズ)
ggmlライブラリ
llama.cppの基盤となるのが同じくGerganov氏が開発したggml(Georgi Gerganov Machine Learning)ライブラリです。ggmlはテンソル演算をC言語で実装したミニマルなMLライブラリで、外部依存ゼロ(Python不要・PyTorch不要)でビルドできます。量子化テンソルの演算カーネルもggmlに組み込まれており、CPUのキャッシュライン効率を意識した設計になっています。
GGUFフォーマット
モデルの重みはGGUF(GGML Universal File)形式で配布されます。旧来のGGML/GGJTフォーマットからGGUFへ移行(2023年8月〜)したことで、モデルのメタデータ(語彙・コンテキスト長・量子化情報)が単一ファイルに統合され、バージョン互換性が大幅に向上しました。現在Hugging Face上に数千以上のGGUFファイルが公開されており、llama.cppが事実上の配布フォーマット標準になっています。
バックエンドの種類
llama.cppはビルド時のオプションで複数の計算バックエンドを選択できます。
- CPU(デフォルト):AVX/AVX2/AVX-512/NEON対応。Apple M系チップではAMX命令も活用。
- CUDA(NVIDIA GPU):
-DGGML_CUDA=ONでビルド。VRAM内に収まるレイヤーをGPUにオフロードし、残りをCPUで処理するハイブリッドも可能。 - Metal(Apple Silicon):
-DGGML_METAL=ON。M1/M2/M3/M4の統合GPU(Neural Engine経由ではないがGPUコア)を活用。M3 Max・M4 Maxなどで非常に高速。 - Vulkan / OpenCL:AMD GPUやIntel Arc向け。
- RPC(Remote Procedure Call):複数マシンにモデルを分散させる実験的機能。
量子化フォーマットの種類と選び方
llama.cppを使う際に最も重要な判断の一つが量子化レベルの選択です。精度・速度・メモリ使用量のトレードオフを理解して選ぶ必要があります。
| 量子化タイプ | ビット数 | 8B時のファイルサイズ目安 | 品質劣化 | 推奨用途 |
|---|---|---|---|---|
| F16 | 16bit | 約16GB | なし(基準) | 評価・精度最優先 |
| Q8_0 | 8bit | 約8.5GB | 極小 | 高品質かつメモリ余裕あり |
| Q6_K | 6bit | 約6.1GB | ほぼなし | バランス型・おすすめ上位 |
| Q5_K_M | 5bit | 約5.3GB | 微小 | 8GBRAMマシンでの8B運用 |
| Q4_K_M | 4bit | 約4.6GB | 小〜中 | 最もよく使われるデフォルト候補 |
| Q4_0 | 4bit | 約4.3GB | 中 | Q4_K_Mより旧形式・非推奨 |
| Q3_K_M | 3bit | 約3.5GB | 中〜やや大 | 4GB RAM環境での妥協点 |
| Q2_K | 2bit | 約2.7GB | 大 | メモリ極限時のみ |
| IQ4_XS | 4bit(imatrix) | 約4.2GB | Q4_K_Mより小 | imatrix量子化で高精度維持 |
「_K」サフィックスはk-quants(k量子化)を示し、重要度の高いレイヤーに高精度を割り当てる手法です。「_M」「_L」はそのバリアント(Medium/Large)で品質がわずかに異なります。弊社では日本語タスクにおいてQ5_K_MとQ4_K_Mの比較検証を行いましたが、要約・翻訳・コード補完いずれも体感品質は大差なく、VRAMやRAMの制約に応じてQ4_K_Mを採用するケースが多いです。
なおimatrix(importance matrix)量子化は、代表的なプロンプトデータで重みの重要度行列を計算してから量子化するため、同じビット数でも従来手法より精度劣化が小さくなります。IQ系(IQ4_XS等)がこれに該当します。
インストールと基本的な使い方
llama.cppのセットアップ手順は別記事「Llamaの導入・セットアップ」で詳しく解説しています。ここでは推論実行に関わる重要なオプションと実運用で頻出するパターンに絞って説明します。
ビルドの概要
CMakeを使ったビルドが標準です。CPU専用なら依存ライブラリゼロで、CUDA有効化はフラグ一つで切り替えられます。
git clone https://github.com/ggerganov/llama.cpp cd llama.cpp cmake -B build # CPU専用 cmake -B build -DGGML_CUDA=ON # CUDA有効化 cmake --build build --config Release -j$(nproc)
コマンドラインから推論を実行する
ビルド後は./build/bin/llama-cliコマンドで対話・バッチ推論が可能です。主要オプションを押さえておきましょう。以下の例では現行実用モデルであるLlama 3.3 8BのGGUF版を想定しています。
./build/bin/llama-cli \ -m ./models/Llama-3.3-8B-Instruct-Q4_K_M.gguf \ -p "日本語でこんにちはと言ってください" \ -n 256 \ # 生成トークン数の上限 --temp 0.7 \ # temperature(0=確定的、1=ランダム) --top-p 0.9 \ # nucleus sampling --ctx-size 4096 \ # コンテキストウィンドウ長 --threads 8 \ # CPU推論スレッド数 --n-gpu-layers 35 # GPUにオフロードするレイヤー数(CUDA/Metal)
–n-gpu-layersによるハイブリッド推論
--n-gpu-layersはllama.cppの実運用で最も重要なパラメータの一つです。モデル全体のレイヤー数のうち、GPU VRAMに載せる枚数を指定します。VRAMが不足する場合はこの値を下げることでRAMとVRAMを組み合わせた推論が可能になり、VRAMが少ない環境でも大モデルを動かせます。ただし頻繁なCPU↔GPU転送はボトルネックになるため、VRAM全量をモデルに使える設定(全レイヤーオフロード)が理想です。
OpenAI互換サーバー(llama-server)の活用
llama.cppにはllama-server(旧称: server)という組み込みHTTPサーバーが同梱されており、OpenAI互換のREST APIエンドポイントを提供します。これにより、既存のOpenAI SDKやLangChain・LlamaIndex等のフレームワークをほぼそのままローカルLLMで使用できます。
./build/bin/llama-server \ -m ./models/Llama-3.3-8B-Instruct-Q4_K_M.gguf \ --host 0.0.0.0 --port 8080 \ --ctx-size 8192 \ --n-gpu-layers 35 \ --parallel 4 # 並列リクエスト数
サーバー起動後はhttp://localhost:8080/v1/chat/completionsにOpenAI形式でリクエストを送るだけです。PythonのOpenAIクライアントならbase_url="http://localhost:8080/v1"とapi_key="none"を指定するだけで切り替えられます。
llama-serverの主要エンドポイント
| エンドポイント | 用途 |
|---|---|
| /v1/chat/completions | チャット形式の推論(OpenAI互換) |
| /v1/completions | テキスト補完(OpenAI互換) |
| /v1/embeddings | テキストエンベディング生成 |
| /health | サーバー稼働確認 |
| /metrics | Prometheus形式のパフォーマンス指標 |
| /tokenize | テキストのトークン化確認 |
弊社では社内向けのRAGシステムにllama-serverを組み込み、LangChainのChatOpenAIクラスからローカルモデルへ接続する構成を採用しています。APIキーが不要でデータが外部に出ないため、機密性の高い社内文書処理に適した構成として機能しています。
実運用で直面する技術的な課題と対処法
コンテキストウィンドウとKVキャッシュのメモリ管理
コンテキスト長(--ctx-size)を増やすとKVキャッシュのメモリ使用量が線形に増加します。Llama 3.3 8BをQ4_K_Mで動かしながらctx-sizeを32Kにすると、KVキャッシュだけで追加4〜8GBを消費します。長文処理が不要な場面では4096〜8192に抑えるのが現実的です。
また--cache-type-kと--cache-type-vオプションでKVキャッシュ自体をq8_0やq4_0に量子化(KVキャッシュ量子化)することで、品質をほぼ維持しながらメモリを削減できます。これはコンテキスト長が長い用途(議事録処理・長文要約等)で特に有効です。
プロンプトテンプレートとチャット形式
InstructモデルはモデルごとにSystem/User/Assistantの区切り文字(チャットテンプレート)が異なります。llama-cliでは--chat-templateオプションやjinja2形式のテンプレートファイルを指定できますが、GGUFファイルにメタデータとしてテンプレートが組み込まれているモデルでは自動適用されます。テンプレートのズレは出力品質に直結するため、Hugging Faceのモデルカードでtokenizer_config.jsonのchat_template欄を確認する習慣が重要です。
日本語トークン効率の問題
Llama系のトークナイザーは英語最適化で設計されており、日本語は1文字が複数トークンに分割されることが多いです。現行のLlama 4世代(Scout/Maverick)は最大10Mトークンの超長コンテキストを謳いますが、日本語テキストでは実質的な処理量は英語の3〜5分の1程度と考えると適切です。日本語特化モデル(Swallow・LLM-JP等のGGUF版)ではこの効率が改善されていますが、llama.cppでの動作確認が必要です。
速度の目安(参考値)
| 環境 | モデル | 生成速度目安 |
|---|---|---|
| Apple M3 Max(Metal) | Llama 3.3 8B Q4_K_M | 60〜80 token/秒 |
| RTX 4090(CUDA) | Llama 3.3 70B Q4_K_M | 30〜45 token/秒 |
| CPU(Core i9-13900K) | Llama 3.3 8B Q4_K_M | 10〜20 token/秒 |
| CPU(Core i7-12700) | Llama 3.3 8B Q4_K_M | 5〜12 token/秒 |
※ 環境・コンテキスト長・バッチサイズにより大幅に変動します。参考値としてご利用ください。
llama.cppを使ったエコシステムとラッパーツール
llama.cppの普及とともに、これを内部エンジンとして利用するツールが数多く生まれています。
- Ollama:llama.cppベースのLLMサーバー管理ツール。
ollama run llama3.3一発でモデルの自動ダウンロードと起動が完結する。llama-serverより手軽だがカスタマイズ性は低い。 - LM Studio:GUIベースのllama.cppフロントエンド。ノーコードでモデルのダウンロード・実行・OpenAI互換サーバー起動が可能。プロトタイプ検証に便利。
- Jan:デスクトップアプリ形式のローカルLLMクライアント。llama.cppエンジン内蔵。
- llama-cpp-python:llama.cppのPythonバインディング。OpenAI互換サーバー機能も内包。
pip install llama-cpp-pythonでインストール可能。 - LangChain / LlamaIndex:llama-cpp-pythonまたはllama-serverを経由してllama.cppと連携可能。RAGパイプラインへの組み込みに使用。

Llamaモデル自体の概要・料金・比較は関連記事で
本記事はllama.cppエンジンの技術仕様と実運用に特化して解説しました。Llamaモデルそのものの概要・アーキテクチャ変遷についてはLlamaとは何か(概要・解説記事)をご参照ください。Meta LlamaはChatGPTのような月額サブスクリプション製品ではなく、重みを無料でダウンロードできる「オープンウェイト」モデルです。利用コストの考え方やLlama Community Licenseの詳細についてはLlama料金・ライセンス解説で、他のオープンモデル(Mistral・Qwen・Gemma等)との性能・用途比較についてはLlama比較記事で詳しく扱っています。セットアップの具体的な手順はLlama導入・セットアップガイドを参照してください。
まとめ
llama.cppは、高価なGPUクラスタやクラウドAPIへの依存を解消し、手元のハードウェアでLLM推論を可能にするC++エンジンです。要点を整理します。
- GGUF形式の量子化モデルを利用し、RAM 8GBのラップトップから業務用サーバーまで幅広い環境で動作する
- 量子化レベルはQ4_K_Mが最もバランスがよく、精度重視ならQ5_K_M〜Q6_K、メモリ優先ならQ3_K_Mを選ぶ
- CUDAやMetalバックエンドに対応し、GPUとCPUのハイブリッド推論も可能
- llama-serverのOpenAI互換APIにより、既存のLLMアプリケーションをほぼ変更なしにローカル実行へ移行できる
- 日本語処理ではトークン効率に注意し、コンテキスト長と量子化の設定を用途に合わせてチューニングすることが重要
ローカルLLM活用のコストとプライバシーの課題を同時に解決できるllama.cppは、社内RAGシステムや機密データ処理を含む業務AIの基盤として、今後もっとも信頼できる選択肢の一つであり続けるでしょう。
関連記事
参考文献
Study about AI
AIについて学ぶ
-
AI社長の費用・料金相場|構築と運用のコスト【2026年版】
監修 河合 継(クリスタルメソッド株式会社 代表取締役) マルチモーダルAI・感情推定・バーチャルヒューマンに関する複数の特許を発明したAI研究者。AIの研究開...
-
AI社長の作り方|AIアバター経営者を構築する手順【2026年版】
監修 河合 継(クリスタルメソッド株式会社 代表取締役) マルチモーダルAI・感情推定・バーチャルヒューマンに関する複数の特許を発明したAI研究者。AIの研究開...
-
AI社長の事例|導入企業の活用パターンを解説【2026年版】
監修 河合 継(クリスタルメソッド株式会社 代表取締役) マルチモーダルAI・感情推定・バーチャルヒューマンに関する複数の特許を発明したAI研究者。AIの研究開...