blog
AIブログ
llama-serverの使い方|ローカルLLMをOpenAI互換APIとして動かす実践ガイド

llama-serverとは何か:llama.cppが提供するローカル推論サーバーの構造
llama-serverは、llama.cppプロジェクトが提供するHTTPベースのLLM推論サーバーである。かつてはserverという名称だったが、llama.cppのリファクタリングを経て現在はllama-serverという独立したバイナリとして配布されている。
最大の特徴はOpenAI互換のREST APIエンドポイントを標準で備える点だ。既存のOpenAI SDKやLangChainなどのツールチェーンは、接続先のベースURLを差し替えるだけでそのまま動作する。モデルはGGUF形式の量子化ファイルをローカルに置いて読み込む設計であり、外部サービスへの依存が一切ない。MetaのLlamaモデル群はオープンウェイトでllama.comやHugging Faceから無償取得できるため、推論コストを自社インフラのコストのみに抑えられる点が運用上のメリットになる。
アーキテクチャを俯瞰すると、以下の処理パイプラインで動作する。
並列リクエストの管理には「スロット(slot)」という概念が用いられる。--parallelオプションで指定したスロット数が同時処理の上限となり、超過したリクエストはキューに積まれる。スロット数はKVキャッシュのVRAM消費に直結するため、リソース計画の中心に置くべき設計上のトレードオフだ。
ディープラーニングや機械学習の基礎については ディープラーニング解説 および 機械学習入門 もあわせて参照されたい。
llama-serverのビルドと環境別セットアップ
llama-serverはllama.cppのビルドによって生成される。Qiitaの構築事例(llama-serverでローカルLLMサーバーを構築する、2025年)やCLIとサーバーによるllama.cppクイックスタートでも示されているように、環境ごとのビルドフラグを把握することが安定稼働の前提となる。
macOS(Apple Silicon)
git clone https://github.com/ggerganov/llama.cpp cd llama.cpp cmake -B build -DLLAMA_METAL=ON cmake --build build --config Release -j$(sysctl -n hw.logicalcpu) # 生成バイナリ: build/bin/llama-server
Apple SiliconではMetalバックエンドが有効になり、統合GPUへのオフロードが機能する。CPU処理のみと比較してトークン生成速度が大幅に改善する傾向がある。
Linux(CUDA環境)
git clone https://github.com/ggerganov/llama.cpp cd llama.cpp cmake -B build -DGGML_CUDA=ON cmake --build build --config Release -j$(nproc)
CUDAビルドにはCUDA Toolkit 11.8以上が必要だ。複数GPU環境では--tensor-splitオプションでレイヤーを分割配置できる。
Docker(ビルド環境を汚さない場合)
# CPU版 docker run --rm -p 8080:8080 \ -v /path/to/models:/models \ ghcr.io/ggerganov/llama.cpp:server \ -m /models/your-model.gguf --host 0.0.0.0 --port 8080 # CUDA版(GPU搭載ホスト向け) docker run --rm --gpus all -p 8080:8080 \ -v /path/to/models:/models \ ghcr.io/ggerganov/llama.cpp:server-cuda \ -m /models/your-model.gguf --host 0.0.0.0 --port 8080 -ngl 99
公式Dockerイメージ(GitHub Container Registry: ghcr.io)を使うとビルド環境の整備を省略できる。CI/CDパイプラインへの組み込みにも適している。
なお、Rost Glukhov氏のクイックスタートガイドでは、最新のllama.cppビルドでHugging Faceから直接ダウンロードしてローカルキャッシュに保持するワークフローも紹介されており、実験フェーズでのモデル取得の手間を減らせる。
llama-serverの主要オプションとOpenAI互換エンドポイント
起動コマンドの最小構成から示す。以下はローカル実行で広く使われているLlama 3.3-8B InstructのGGUF量子化版を例として使用している。
./llama-server \ -m ./models/Llama-3.3-8B-Instruct-Q4_K_M.gguf \ --host 0.0.0.0 \ --port 8080 \ -ngl 33 \ -c 4096
| オプション | 意味 | 推奨値・留意点 |
|---|---|---|
-m / --model |
GGUFモデルファイルのパス | 必須。絶対パス推奨 |
-ngl / --n-gpu-layers |
GPUオフロードするレイヤー数 | VRAMに収まる最大値。全層なら999でも可 |
-c / --ctx-size |
コンテキストウィンドウ長(トークン数) | 大きいほどVRAM消費増。2048〜8192が現実的 |
--parallel / -np |
同時処理スロット数 | デフォルト1。スロット数×コンテキスト長分のKVキャッシュを消費する |
--host |
バインドIPアドレス | 外部公開は0.0.0.0、ローカルのみは127.0.0.1 |
--port |
リッスンポート | デフォルト8080 |
--api-key |
Bearer認証用APIキー | 外部公開時は必ず設定。未設定だと誰でもアクセス可能になる |
-t / --threads |
CPUスレッド数 | 物理コア数を上限の目安にする |
--flash-attn / -fa |
Flash Attention有効化 | 長コンテキスト時のVRAM削減と速度改善に有効 |
--chat-template |
チャットテンプレートの明示指定 | GGUFメタデータから自動検出されることが多いが、不整合時は明示する |
--ubatch-size |
マイクロバッチサイズ | スループット重視なら512〜1024を試す |
--no-webui |
組み込みWebUIの無効化 | 本番APIサーバーではUIを閉じることを検討 |
--metrics |
Prometheusメトリクス有効化 | /metricsエンドポイントを公開する |
OpenAI互換エンドポイント一覧
llama-serverが提供する主要エンドポイントは以下の通りだ。OpenAI SDKのベースURLをhttp://localhost:8080/v1に差し替えるだけで、ほとんどのクライアントコードがそのまま動作する。
| エンドポイント | メソッド | 機能 |
|---|---|---|
/v1/chat/completions |
POST | チャット形式の推論。SSEストリーミング対応 |
/v1/completions |
POST | テキスト補完(レガシー形式) |
/v1/embeddings |
POST | テキスト埋め込みベクトルの生成 |
/v1/models |
GET | ロード中のモデル情報一覧 |
/health |
GET | サーバー稼働状態・スロット状況確認 |
/metrics |
GET | Prometheusフォーマットのメトリクス(--metricsフラグ必要) |
/slots |
GET | スロット状態の詳細(KVキャッシュ使用率など) |
Python SDKからの接続例
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:8080/v1",
api_key="your-api-key-if-set" # --api-key設定時のみ必要
)
response = client.chat.completions.create(
model="local-model", # サーバー側ではモデル名を検証しないため任意の文字列でよい
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "量子コンピュータを一言で説明して"}
],
stream=True
)
for chunk in response:
print(chunk.choices[0].delta.content or "", end="", flush=True)

GGUFモデルの選択と量子化レベルの判断基準
llama-serverで扱うモデルはGGUF形式が前提だ。Hugging Face上のBartowski氏リポジトリなど信頼できるソースから量子化済みファイルを取得するのが一般的な手順となる。モデルの世代選択については、2026年6月時点でのMetaの現行最新世代はLlama 4(2025年4月発表)であり、MoE(Mixture-of-Experts)アーキテクチャとネイティブマルチモーダルを採用した初の世代だ(出典:Meta AI Blog, 2025)。テキスト専用の実用モデルとしてはLlama 3.3(70B / 8B)が引き続き有力な選択肢であり、マルチモーダル用途にはLlama 4 Scout / MaverickのGGUFが利用できる。
Llama 4 ScoutはMoE構造で17Bアクティブ・16エキスパート、単一NVIDIA H100 GPUで動作するとされる。LLaMA-MoE研究(JST J-Global: LLaMA-MoE: Building Mixture-of-Experts from LLaMA)でも指摘されているように、MoEモデルの実効パラメータ数はデンスモデルと異なる解釈が必要であり、GGUFのサイズと性能の関係が従来モデルとは異なる場合がある点に留意が必要だ。
| 量子化タイプ | bits/weight(目安) | 8Bモデルの目安サイズ | 品質・用途 |
|---|---|---|---|
| Q2_K | 約2.6 | 〜3 GB | 品質劣化が大きい。VRAMが極端に少ない場合のみ |
| Q4_K_M | 約4.8 | 〜5 GB | 品質・速度・サイズのバランスが最良。実務用途の第一選択肢 |
| Q5_K_M | 約5.7 | 〜6 GB | Q4_K_Mより高精度。VRAM余裕があれば選択肢に入る |
| Q8_0 | 約8.5 | 〜9 GB | FP16に近い品質。VRAMが十分な検証・ベースライン計測向け |
| F16 | 16 | 〜16 GB | 量子化なし。ベースライン測定・ファインチューン後推論など |
VRAM容量が限られる環境では、Q4_K_Mを選択した上で--flash-attnを有効にし、KVキャッシュの量子化(--cache-type-k q8_0)を組み合わせる構成が実用的だ。コンテキスト長を必要以上に大きく取らないことも、KVキャッシュのVRAM消費を抑える上で重要になる。
マルチモーダル・テキスト処理の技術背景については マルチモーダルAI解説、自然言語処理の基礎については BERTとNLPガイド、テキストマイニングについては テキストマイニング解説 も参考にされたい。
ローカルLLMの導入やRAG構築をご検討の方は、AI開発会社クリスタルメソッドの無料相談をご利用ください。
本番環境でのllama-server運用:systemd・リバースプロキシ・チューニング
systemdによるサービス化
サーバーの自動起動と障害時の再起動管理にはsystemdユニットファイルが最も手軽だ。
# /etc/systemd/system/llama-server.service
[Unit]
Description=llama-server LLM inference API
After=network.target
[Service]
Type=simple
User=llama
ExecStart=/opt/llama.cpp/build/bin/llama-server \
-m /opt/models/Llama-3.3-8B-Instruct-Q4_K_M.gguf \
--host 127.0.0.1 --port 8080 \
-ngl 33 -c 4096 --parallel 4 \
--api-key ${LLAMA_API_KEY}
EnvironmentFile=/etc/llama-server.env
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target
APIキーは環境変数ファイル(/etc/llama-server.env)に分離してパーミッションを絞ることを推奨する。ユニットファイルにベタ書きするとジャーナルログに露出するリスクがある。
nginxによるリバースプロキシとTLS終端
llama-server自体はHTTPのみを提供するため、外部公開にはリバースプロキシによるTLS終端が必要だ。SSEストリーミングを正常に動作させるにはproxy_buffering offが不可欠であり、この設定を欠いたままにするとクライアント側でトークンが一括送信される挙動となる。
server {
listen 443 ssl;
server_name your.domain.com;
ssl_certificate /etc/letsencrypt/live/your.domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/your.domain.com/privkey.pem;
location /v1/ {
proxy_pass http://127.0.0.1:8080;
proxy_read_timeout 300s;
proxy_buffering off; # SSEストリーミングに必須
proxy_set_header Connection '';
proxy_http_version 1.1;
}
}
パフォーマンスチューニングの判断基準
--parallelを増やす-cは必要最小限に設定--ubatch-sizeを512〜1024に
--parallel 1で単一集中- 全レイヤーをGPUに乗せる(
-ngl 999) --flash-attnを有効化
- Q4_K_M以下の量子化を選ぶ
- KVキャッシュ量子化(
--cache-type-k q8_0) --no-mmapは原則避ける
セキュリティ上の留意点
- 外部公開時は必ず
--api-keyを設定する。未設定のまま0.0.0.0でバインドすると、ネットワーク上の誰でもモデルを使用できる状態になる。 - llama-serverのポートをファイアウォールで直接外部に晒さず、nginxなどのリバースプロキシ経由にする。
- プロンプトインジェクション対策はアプリケーション層で実装が必要だ。llama-server自体は入力のサニタイズを行わない。
- モデルファイルの取得元は公式リポジトリ(llama.com・Hugging Face公式)または信頼性の確認できるソースに限定する。悪意のあるGGUFファイルが存在しうる点は継続的に注意が必要だ。
- Llamaの利用にあたっては、MetaのLlama Community License(制限条項付きのオープンライセンス)を確認すること。月間アクティブユーザーが極めて多い事業者には追加の許諾要件がある(出典:llama.com)。
llama-serverとOllama・vLLMとの技術的な位置づけの違い
ローカルLLM推論サーバーの選択肢として、Ollama・vLLM・LM Studioが挙げられることが多い(出典:自作.com, 2026)。各ツールの技術的な特性を整理する。
| ツール | 技術的強み | 向いているケース | 主な制約 |
|---|---|---|---|
| llama-server | 軽量・依存最小・オプションが細かく制御可能・/metrics・WebUI内蔵 |
サーバー組み込み・カスタム構成・ローリソース環境・CI/CD組み込み | モデル管理UIなし・セットアップに知識が必要 |
| Ollama | セットアップが極めて簡単・モデル管理コマンドが整備されている(内部でllama.cppを使用) | 開発者の個人環境・素早いプロトタイプ | 低レベルオプションの直接制御に制限がある |
| vLLM | PagedAttentionによる高スループット・高並列サービング | GPU多数のデータセンター・高並列リクエスト処理 | Python依存・リソース要件が高い・GGUFを直接扱わない |
| LM Studio | GUIで操作・モデルダウンロードが容易 | 非エンジニアの試用・デモ環境 | サーバー用途の柔軟なカスタマイズは限定的 |
Ollamaはllama.cppをラップしているため、KVキャッシュの詳細な制御や/metricsエンドポイントの直接利用、--flash-attnなどのパラメータを細かく調整したい用途では、llama-serverを直接使う方が実装上の自由度が高い。
強化学習やスパースモデリングの観点でLLMの技術背景をさらに掘り下げたい場合は、強化学習解説およびスパースモデリング解説も参照されたい。
よくあるエラーと対処法
| 症状 | 原因 | 対処法 |
|---|---|---|
| CUDA out of memory | VRAMが不足している | -nglを減らす・-cを小さくする・より低量子化のモデルを選ぶ |
| 応答に文字化け・不正な記号が混入 | チャットテンプレートの不一致 | --chat-templateでllama3・chatml・mistralなどを明示指定 |
| ストリームが一括でまとめて届く | プロキシのバッファリングが有効 | nginx設定にproxy_buffering off;を追加 |
| モデル読み込みが極端に遅い | mmapが無効またはストレージがHDD | モデルをSSDに移動。--no-mmapフラグを外す |
| 401 Unauthorized | APIキーの不一致またはヘッダー欠落 | リクエストヘッダにAuthorization: Bearer <key>を付与 |
| 生成が途中で停止する | コンテキスト長の上限超過 | -cを増やす。または--ctx-size 0でモデルのmax値を自動適用 |
| WebUIにアクセスできない | --no-webuiフラグが付いている、またはバインドIP制限 |
フラグを外す。--host 0.0.0.0またはローカルIPで確認 |

http://localhost:8080で起動確認やプロンプト実験が行えるllama-serverを使ったバーチャルヒューマン推論基盤への応用
弊社クリスタルメソッド株式会社が開発するバーチャルヒューマン/AIアバターソリューション「DeepAI」では、実在の人物の容姿・表情・声・振る舞いをデジタル空間で再現する。リップシンク・表情生成・音声合成・対話AIを組み合わせたこのシステムでは、対話推論の低レイテンシ化が体験品質に直接影響する。llama-serverは依存関係が最小限でオンプレミス環境への組み込みが容易であり、かつOpenAI互換エンドポイントにより既存の対話制御ロジックをそのまま流用できる。こうしたローカル推論サーバーは、クラウドAPIの遅延や可用性リスクを回避したい用途での選択肢として検討に値する。
生成AIの基盤技術に関心がある場合は GAN(生成的敵対ネットワーク)解説 もあわせて参照されたい。
AIの業務活用・導入をご検討の方へ
クリスタルメソッドは、各種LLM・ローカルAI・RAG・AIアバターを活用した業務へのAI導入を支援しています。「自社の業務でどう使えるか」をまずはお気軽にご相談ください。
参考文献
- Meta AI Blog – Llama 4 herd公式発表(Scout/Maverick/Behemoth・オープンウェイト): https://ai.meta.com/blog/llama-4-multimodal-intelligence/(2026-06-08確認)
- llama.com – Llama 4現行モデル・ダウンロード提供: https://www.llama.com/(2026-06-08確認)
- llama.com – Llama 4 Scout/Maverickyモデル詳細: https://www.llama.com/models/llama-4/(2026-06-08確認)
- Meta Llama API公式ドキュメント – モデルID一覧: https://llama.developer.meta.com/docs/models/(2026-06-08確認)
- JST J-Global – LLaMA-MoE: Building Mixture-of-Experts from LLaMA: https://jglobal.jst.go.jp/en/detail?JGLOBAL_ID=202402215552356883
- JST J-Global – Forbidden Facts: An Investigation of Competing Objectives in Llama: https://jglobal.jst.go.jp/en/detail?JGLOBAL_ID=202402218818851779
- JST J-Global – Llama-Polya: Instruction Tuning for Large Language Models: http://jglobal.jst.go.jp/en/public/202602217050007262
- CLIとサーバーによるllama.cppクイックスタート(Rost Glukhov): https://www.glukhov.org/ja/llm-hosting/llama-cpp/
- llama-serverでローカルLLMサーバーを構築する(Qiita): https://qiita.com/00b012deb7c8/items/75074e5fb9e630cdf14a
- 2026年のローカルLLM事情を整理してみた(DevelopersIO): https://dev.classmethod.jp/articles/local-llm-guide-2026/
- Ollama vs llama.cpp vs LM Studio 2026比較(自作.com): https://jisaku.com/posts/ollama-llamacpp-lmstudio-comparison-pc(2026年)
監修
河合 継(クリスタルメソッド株式会社 代表取締役)
AI・ディープラーニングに関する特許16件の発明者。過去、国立がん研究センターとの共同研究や、テレビ番組でのAI解説実績を持つAI研究者として、AIの研究開発を主導している。
運営会社について | 編集方針
Study about AI
AIについて学ぶ
-
教育 AI 活用 事例から学ぶ企業研修のDXとAnthropic無償提供が示すプロンプトの重要性
## 1. Anthropicによる教育者向けClaude無償提供ニュースの要点 2026年1月、AIスタートアップのAnthropicは、国際NGO「Teac...
-
AI人事評価のリスクと違法性の境界線とは?Meta社リストラ訴訟から学ぶ防衛策
近年、企業の意思決定プロセスにおいてAI(人工知能)の活用が急速に進んでいます。特に人事評価や採用、人員整理といった領域でのAI導入は、業務効率化や客観性の担保...
-
AIエージェントの相互運用性と規制がもたらす経営インパクト—米上院法案から紐解く日本企業の針路
自律的にタスクを遂行するAIエージェントの台頭に伴い、異なるシステムやプラットフォーム間でこれらを安全に連携させる「相互運用性」と、それを支える「規制」のあり方...