blog

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モデル全体の概要や料金・他モデルとの比較については後述の関連記事を参照してください。

CPU上でローカル推論が動作するイメージ――クラウド不要でLLMを実行できるのがllama.cppの最大の特長
CPU上でローカル推論が動作するイメージ――クラウド不要でLLMを実行できるのがllama.cppの最大の特長

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は単なる「モデルローダー」ではなく、推論エンジン全体を内包しています。主要コンポーネントを処理フローとして示します。

GGUFファイル読込
(モデル重み+メタ情報)
量子化テンソル展開
(ggml_tensor構造体)
バックエンド選択
(CPU/CUDA/Metal等)
Attention計算
(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.cppは日本語ドキュメントの解析にも活用されている
ローカル環境での日本語テキスト処理イメージ――llama.cppは日本語ドキュメントの解析にも活用されている

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の基盤として、今後もっとも信頼できる選択肢の一つであり続けるでしょう。

関連記事

参考文献

    AIブログ購読

     
    クリスタルメソッドがお届けする
    AIブログの更新通知を受け取る

    Study about AI

    AIについて学ぶ

    • AI全般のイメージ

      AI社長の費用・料金相場|構築と運用のコスト【2026年版】

      監修 河合 継(クリスタルメソッド株式会社 代表取締役) マルチモーダルAI・感情推定・バーチャルヒューマンに関する複数の特許を発明したAI研究者。AIの研究開...

    • アバター・デジタルヒューマンのイメージ

      AI社長の作り方|AIアバター経営者を構築する手順【2026年版】

      監修 河合 継(クリスタルメソッド株式会社 代表取締役) マルチモーダルAI・感情推定・バーチャルヒューマンに関する複数の特許を発明したAI研究者。AIの研究開...

    • AI全般のイメージ

      AI社長の事例|導入企業の活用パターンを解説【2026年版】

      監修 河合 継(クリスタルメソッド株式会社 代表取締役) マルチモーダルAI・感情推定・バーチャルヒューマンに関する複数の特許を発明したAI研究者。AIの研究開...

    View more