llama.cpp サーバーモード(ラマシーピーピーサーバーモード)
llama.cppに内蔵されたHTTPサーバー機能。単一バイナリで起動しOpenAI互換APIを提供する軽量LLMサービング手段で、OllamaやTGIの基盤技術としても使われる。
llama.cpp サーバーモードとは
llama.cppはGeo Georgiou(llama.cpp)が開発したC++製LLMランタイムで、その中に組み込まれたllama-serverコマンドがサーバーモードです。外部依存ゼロのシングルバイナリがHTTPサーバーとして起動し、OpenAI互換のREST APIとWebチャットUIを同時提供します。
OllamaやLocalAIはllama.cppをバックエンドエンジンとして内部利用しており、llama.cpp自体は多くのローカルLLMツールの「エンジン」に位置します。
ビルドと起動
# ソースからビルド(CMake使用)
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
cmake -B build -DLLAMA_METAL=ON # macOS Metal GPU
cmake --build build --config Release -j $(nproc)
# サーバー起動
./build/bin/llama-server \
-m /path/to/model.Q4_K_M.gguf \
-c 4096 \
-ngl 99 \
--port 8080 \
--host 0.0.0.0
主要オプション:
-m: モデルファイルパス(GGUF形式)-c: コンテキスト長(トークン数)-ngl: GPUオフロードレイヤー数(99=全層GPU)--threads: CPU推論スレッド数
提供エンドポイント
| エンドポイント | 説明 |
|---|---|
GET / | WebチャットUI(ブラウザから直接利用可) |
POST /completion | llama.cpp独自の補完API |
POST /v1/chat/completions | OpenAI互換チャットAPI |
GET /v1/models | モデル一覧 |
POST /v1/embeddings | Embedding生成 |
GET /health | ヘルスチェック |
Apple Silicon での活用
llama.cppはApple SiliconのMetal GPUを早期からサポートしており、M1〜M4チップの統合メモリを最大限に活かせます。
# M系Macでのビルド(Metal自動有効化)
cmake -B build -DGGML_METAL=ON
cmake --build build -j8
# 13B Q4_K_M を全層MetalGPUで実行
./build/bin/llama-server -m llama-3.1-13b.Q4_K_M.gguf -ngl 99
M2 Pro(16GB統合メモリ)で13Bモデルを~15 tok/sで処理でき、実用的な速度を発揮します。
Raspberry Pi / エッジデバイスでの運用
llama.cppのCPU推論はARM v8.2以降を最適化しており、Raspberry Pi 5(8GB RAM)でも1B〜3Bモデルを実用速度(3〜8 tok/s)で動かせます。
# Raspberry Pi向けビルド
cmake -B build -DGGML_NEON=ON
cmake --build build -j4
# 2B量子化モデルをCPUで実行
./build/bin/llama-server -m gemma-2b.Q4_K_M.gguf --threads 4 -c 2048
エッジゲートウェイ・工場内IoT機器・オフライン端末でのLLM推論に活用されています。
OllamaやLM Studioとの位置づけ
llama.cppサーバーモードは機能がシンプルで高度なGUI・モデル管理UIを持ちませんが、最軽量・最小依存という点で他ツールにない優位性があります。自動化スクリプト・コンテナ最小化・組み込みデバイスでの利用に最適です。
まとめ
llama.cppサーバーモードはローカルLLMエコシステムの根幹をなす技術です。依存ゼロのバイナリ一本でOpenAI互換APIを起動できる手軽さと、CPU〜Apple Silicon〜NVIDIA GPU全対応の幅広さが、多くのツールに採用される理由です。Raspberyy Piからデータセンターまで、同一コードで動作する汎用性は他に類を見ません。