C/C++ で書かれた LLM(大規模言語モデル)の推論エンジン。LLaMA, Mistral, Qwen, Phi, Gemma など 70以上のモデルアーキテクチャに対応し、CPU・GPU を問わず幅広いハードウェア上で LLM を実行できる。独自フォーマット GGUF でモデルを管理し、1.5〜8bit の多段階量子化に対応している。OpenAI互換の REST API サーバーも同梱されており、ローカル環境で ChatGPT ライクなサービスを構築できる。
| 観点 | llama.cpp | PyTorch / HuggingFace Transformers | vLLM / TGI (サーバー型) |
|---|---|---|---|
| 依存関係 | ほぼゼロ(C/C++のみ) | Python + CUDA + 大量ライブラリ | Python + CUDA 必須 |
| 最小動作環境 | CPU のみの PC やスマホでも可 | GPU (VRAM 大) がほぼ必須 | サーバーグレード GPU 前提 |
| 量子化 | 1.5〜8bit を標準搭載、CLI 一発 | 外部ツール (GPTQ 等) が必要 | 限定的 |
| セットアップ | cmake → build → 実行 (3ステップ) | 仮想環境構築 + pip 大量インストール | Docker + GPU ドライバ設定 |
| 対応プラットフォーム | Windows/macOS/Linux/Android/iOS/WASM | 主に Linux + CUDA | Linux + CUDA |
| GPU加速 | CUDA, Metal, Vulkan, HIP 等を選択可 | CUDA 中心 | CUDA 中心 |
一言で言えば:Python 環境や高価な GPU がなくても、手元の PC・スマホで LLM を動かせる唯一の現実的な選択肢。7B パラメータモデルを 4bit 量子化すれば、RAM 4〜6GB 程度で推論できる。
① モデル入手 ─→ ② (必要なら)変換 ─→ ③ ビルド ─→ ④ 実行
① モデルを入手する
② GGUF 形式に変換・量子化する(GGUF 形式なら不要)
python convert_hf_to_gguf.py ./my-model/ # HF → GGUF 変換
./build/bin/llama-quantize model.gguf model-Q4_K_M.gguf Q4_K_M # 量子化
③ ビルドする
cmake -B build # 構成(GPU使用時は -DGGML_CUDA=ON 等を追加)
cmake --build build --config Release
④ 推論を実行する(用途に合わせて選択)
| 用途 | コマンド例 |
|---|---|
| 対話チャット | ./build/bin/llama-cli -m model-Q4_K_M.gguf |
| API サーバー | ./build/bin/llama-server -m model-Q4_K_M.gguf --port 8080 |
| プログラム組込 | libllama の C API (llama.h) をリンクして自作アプリに統合 |
API サーバーは OpenAI 互換のため、既存の ChatGPT 向けクライアントやライブラリをそのまま localhost:8080 に向けるだけで利用できる。Python, Go, Rust, Node.js など 20以上の言語バインディングも公開されている。