AI・機械学習
中級

llama.cpp 推論エンジン(ラマシーピーピー スイロンエンジン)

Georgi Gerganovが開発したC/C++製LLM推論ライブラリ。GGUF形式の量子化モデルを4ビット以下で実行し、CPU単体でもLlama/Mistral/Gemma等を動作させる。Metal/CUDA/Vulkan/OpenCL等のバックエンドに対応しローカルLLM普及の事実上の標準インフラ。

0 回閲覧
0 いいね
2026/6/1 更新
関連タグ
llama.cpp
GGUF
量子化
ローカルLLM
C++
CPU推論
Metal
CUDA

llama.cpp 推論エンジンとは

llama.cppは、ブルガリア人エンジニアGiorgi Gerganov(Georgi Gerganov)が2023年3月に公開したC/C++製のLLM推論ライブラリです。依存ライブラリをゼロに抑えた設計で、コンパイル後すぐに動作します。GGUFフォーマットの量子化モデルと組み合わせることで、一般消費者向けハードウェアでLlama 3.1・Mistral・Qwen・Gemmaなどの大規模言語モデルをローカル実行できる点が最大の特徴です。

主な特徴

  • マルチバックエンド対応: CPU(AVX2/AVX-512)、Metal(Apple Silicon)、CUDA(NVIDIA)、ROCm(AMD)、Vulkan、OpenCL、SYCL/Level Zero(Intel)をサポート
  • GGUF量子化: Q2_K〜Q8_0まで8段階の精度。Q4_K_Mが品質・速度バランスの推奨値
  • Flash Attention内蔵: Scaled Dot-Product Attention最適化でKV Cacheメモリ40%削減
  • Speculative Decoding: 小型ドラフトモデル(例: Llama 3.2 1B)で仮トークン列を生成し大型モデルで検証、最大2倍の速度向上
  • OpenAI互換APIサーバー: llama-serverコマンドで/v1/chat/completionsエンドポイントを即起動

他推論エンジンとの比較

エンジン対象HW主言語GGUF対応GPU必須特徴
llama.cppCPU+GPUC++✅ネイティブ❌ゼロ依存・ローカル向け
vLLMGPUPython❌✅PagedAttention・高スループット
SGLangGPUPython❌✅Radix Attention・バッチ処理
MLC-LLMGPU/CPUC++/Python✅変換後△TVM最適化・モバイル対応
LMDeployGPUPython/C++❌✅TurboMind・商用品質

量子化形式と性能(Llama 3.1 70B、RTX 4090 24GB)

フォーマットサイズ品質損失速度(tok/s)VRAM
Q2_K26GB大6528GB※
Q4_K_M43GB小5044GB※
Q5_K_M52GB最小4253GB※
Q8_074GB極小3575GB※
F16140GBなし20141GB※

※モデルによってはCPU-GPU分割ロード可能(--n-gpu-layersで調整)

具体的な使用例

インストールとサーバー起動

# ビルド(CUDA対応)
git clone https://github.com/ggerganov/llama.cpp
cmake -B build -DGGML_CUDA=ON
cmake --build build --config Release -j$(nproc)

# モデルダウンロード(Hugging Face)
huggingface-cli download bartowski/Qwen2.5-72B-Instruct-GGUF \
  --include "*.Q4_K_M.gguf" --local-dir ./models

# API サーバー起動
./build/bin/llama-server \
  --model ./models/Qwen2.5-72B-Instruct-Q4_K_M.gguf \
  --n-gpu-layers 80 \
  --ctx-size 8192 \
  --port 8080

Apple Silicon(M3 Max 128GB)での実行

cmake -B build -DGGML_METAL=ON
# Llama 3.1 70B Q4_K_M(43GB)をMetalで全層オフロード
./build/bin/llama-server \
  --model llama-3.1-70b-instruct-q4_k_m.gguf \
  --n-gpu-layers 999 \
  --metal-offload all
# 実測: 約28 tok/s(M3 Max 128GB)

主要なフロントエンドツール

  • LM Studio: GUIでGGUFモデルを管理・実行(Windows/macOS/Linux)
  • Ollama: Dockerライクなモデル管理CLI(ollama run qwen2.5:72b)
  • Jan: オフライン対応デスクトップアプリ
  • GPT4All: エンタープライズ向けローカルLLMプラットフォーム
  • Open WebUI: Webブラウザ対応チャットUI(llama-server/Ollama両対応)

vLLMとの使い分け

llama.cppはローカル・CPU・単一ユーザー向けに最適化されており、vLLMは高同時接続・GPU専用・本番サービング向けです。開発PC・エッジデバイス・オフライン環境ではllama.cpp、クラウドAPI基盤ではvLLMが適切です。

FAQ

Q1: CPUだけで70Bモデルは動きますか? A: 可能です。RAM 64GB以上あればQ4_K_M量子化70Bを実行できます。速度はCore i9-14900Kで約5〜8 tok/sです。

Q2: GGUFとGGMLの違いは? A: GGMLは旧フォーマット、GGUFは2023年8月に導入した後継。メタデータ(トークナイザー・アーキテクチャ情報)をファイル内に埋め込んでおり後方互換性が高いです。

Q3: ROCm(AMD GPU)でも動きますか? A: -DGGML_HIPBLAS=ONでビルドするとRX 7900 XTX等で動作します。CUDA比で5〜15%遅い傾向があります。

Q4: コンテキスト長はどのくらいまで対応しますか? A: Llama 3.1は128Kトークン対応ですが、VRAM/RAM制限があります。--ctx-size 32768等で調整します。

まとめ

llama.cppはローカルLLM推論の事実上の標準インフラであり、GGUF量子化・マルチバックエンド・OpenAI互換APIを単一バイナリで提供します。GPU不要でも動作し、LM Studio・Ollamaのバックエンドとして数百万台規模で稼働しています。本番サービングにはvLLMが優位ですが、開発・実験・エッジ推論のファーストチョイスはllama.cppです。

この記事について
カテゴリーAI・機械学習
難易度中級
作成日2026/6/1