ローカルLLM構築完全ガイド2026|Ollama・llama.cpp本番運用の実践戦略
Ollama 0.6系・llama.cpp最新版でローカルLLMを本番構築する手順を徹底解説。GPU選定・RAG統合・API化まで網羅。今すぐ構築を始めよう。
ローカルLLM構築2026年完全ガイド|Ollama・llama.cpp最新版で本番運用する実践戦略
2026年に入り、ローカルLLMを取り巻く環境は劇的に進化しました。Meta Llama 4のリリース、Mistral・Qwen・Gemma 3といったモデル群の量子化品質の向上、そしてOllama 0.6系やllama.cpp b4000番台の安定化により、企業の社内システムにローカルLLMを組み込む動きが急速に広まっています。クラウドAPIへのデータ送信を避けたい金融・医療・法務系の現場において、ローカルLLMはもはや「試験運用」ではなく「本番構成」の選択肢です。
この記事では、IT技術者がゼロから本番レベルのローカルLLM環境を構築するための最新手順・ツール選定・運用設計を網羅します。
ローカルLLMエコシステムの2026年現在地
2026年時点で、ローカルLLMを支えるエコシステムは以下のレイヤーで成熟しています。
flowchart TD
A[モデルレイヤー] --> B[量子化エンジン]
B --> C[推論フレームワーク]
C --> D[APIサーバー層]
D --> E[オーケストレーション・RAG]
E --> F[フロントエンド/業務アプリ]
A1[Llama 4 Scout/Maverick\nQwen3 72B\nGemma 3 27B\nMistral Small 3.1] --> A
B1[GGUF Q4_K_M / Q8_0\nGPTQ / AWQ\nMLX量子化] --> B
C1[llama.cpp b4200+\nOllama 0.6.x\nvLLM 0.8.x] --> C
D1[OpenAI互換REST API\nOpenAI Python SDK] --> D
E1[LangChain 0.3\nLlamaIndex 0.12\nDSPy 3.x] --> E
注目モデルの比較(2026年4月時点)
⚠️ 編集注: 以下の表に記載されているモデルのスペック(特にLlama 4 MaverickのパラメータおよびVRAM要件、DeepSeek-V3-0324のQ2_K量子化での48GB×2動作)は、執筆時点の情報に基づいています。実際の要件はモデルの更新や量子化実装によって変動する場合があるため、各プロジェクトの公式リポジトリで最新情報を確認してください。
| モデル | パラメータ数 | 推奨量子化 | VRAM目安 | 主な用途 |
|---|---|---|---|---|
| Llama 4 Scout | 17B(MoE) | Q4_K_M | 12GB | 汎用・コーディング |
| Llama 4 Maverick | 400B(MoE) | Q3_K_S | 24GB×2 | 高精度推論 |
| Qwen3 32B | 32B | Q4_K_M | 20GB | 多言語・日本語対応 |
| Qwen3 72B | 72B | Q3_K_S | 40GB | エンタープライズ用途 |
| Gemma 3 27B | 27B | Q5_K_M | 18GB | 軽量高精度 |
| Mistral Small 3.1 | 24B | Q4_K_M | 16GB | 命令フォロー特化 |
| DeepSeek-V3-0324 | 685B(MoE) | Q2_K | 48GB×2 | 研究・最高精度 |
日本語性能を重視するなら Qwen3 32B Q4_K_M が2026年現在のコストパフォーマンス最良の選択肢です。RTX 4090(24GB)1枚で動作し、日本語トークン効率もLlama系を大きく上回ります。
Ollama 0.6系による本番APIサーバー構築
Ollama 0.6系(2026年3月リリース)では、マルチGPUバランシング・同時リクエスト数の動的制御・モデルのホットスワップが本番用途に耐えられるレベルまで強化されました。
インストールと基本設定
# Linux最新版インストール(2026年4月時点 v0.6.3)
curl -fsSL https://ollama.com/install.sh | sh
# システムサービスとして設定
sudo systemctl enable --now ollama
# 環境変数で本番チューニング
sudo tee /etc/systemd/system/ollama.service.d/override.conf <<EOF
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_NUM_PARALLEL=4"
Environment="OLLAMA_MAX_QUEUE=64"
Environment="OLLAMA_KEEP_ALIVE=30m"
Environment="OLLAMA_FLASH_ATTENTION=1"
EOF
sudo systemctl daemon-reload && sudo systemctl restart ollama
モデルの取得と量子化指定
# Qwen3 32B の Q4_K_M 量子化版を取得
ollama pull qwen3:32b-instruct-q4_K_M
# Llama 4 Scout(Ollama公式タグ)
ollama pull llama4:scout
# カスタムModelfileで詳細チューニング
cat <<EOF > Modelfile
FROM qwen3:32b-instruct-q4_K_M
PARAMETER temperature 0.7
PARAMETER top_p 0.9
PARAMETER num_ctx 32768
PARAMETER num_predict 4096
PARAMETER repeat_penalty 1.05
SYSTEM """あなたは優秀なアシスタントです。日本語で簡潔かつ正確に回答してください。"""
EOF
ollama create qwen3-ja-tuned -f Modelfile
OpenAI互換APIの利用
Ollama 0.6系はOpenAI互換エンドポイントが完全サポートされており、既存のOpenAI SDKをそのまま流用できます。
# pip install openai>=1.30
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:11434/v1",
api_key="ollama", # ダミー値でOK
)
response = client.chat.completions.create(
model="qwen3-ja-tuned",
messages=[
{"role": "system", "content": "あなたはPythonエキスパートです。"},
{"role": "user", "content": "FastAPIでWebSocketを実装するコードを書いてください。"}
],
temperature=0.5,
stream=True,
)
for chunk in response:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
llama.cpp b4200番台で最大スループットを引き出す
llama.cpp はビルド番号 b4200(2026年3月)以降、Speculative Decodingの安定化・CUDA 12.4最適化・Apple M4 Pro対応のMetal最適化が組み込まれ、実用的なトークン生成速度を達成しています。
ビルドと最適化オプション
# 最新ソース取得
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
# CUDA 12.4 + Flash Attention有効ビルド
cmake -B build \
-DGGML_CUDA=ON \
-DLLAMA_CURL=ON \
-DGGML_CUDA_FA_ALL_QUANTS=ON \
-DCMAKE_CUDA_ARCHITECTURES="89;90" \
-DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release -j$(nproc)
サーバーモードで本番運用
# llama-server で OpenAI互換APIを起動
./build/bin/llama-server \
--model ./models/qwen3-32b-instruct-q4_k_m.gguf \
--ctx-size 32768 \
--n-gpu-layers 80 \
--parallel 4 \
--threads 8 \
--flash-attn \
--host 0.0.0.0 \
--port 8080 \
--cont-batching \
--cache-type-k f16 \
--cache-type-v f16
スループット比較(RTX 4090、Q4_K_M環境)
⚠️ 編集注: 以下の数値はあくまで参考値です。実際のトークン生成速度はシステム構成・バッチサイズ・コンテキスト長などによって大きく変動します。
pie title ローカルLLMエンジン別トークン生成速度(tokens/sec、Qwen3 32B Q4_K_M)
"llama.cpp b4200(CUDA+FA)" : 42
"Ollama 0.6.3" : 38
"vLLM 0.8.2" : 55
"llama.cpp b4200(CPU only)" : 8
vLLM 0.8.xはスループット最大ですが、GGUF非対応のためセットアップコストが高めです。GGUFモデルを手軽に扱いたいならllama.cpp直接サーバーが最速です。
RAGパイプラインとの統合設計
本番運用で最も重要なのは、ローカルLLMをRAG(Retrieval-Augmented Generation)と組み合わせた社内知識ベース検索システムの構築です。2026年現在の推奨スタックを紹介します。
flowchart LR
User([ユーザー]) --> API[FastAPI Gateway]
API --> Embed[Embedding Server\nnomic-embed-text v1.5]
API --> VDB[(Qdrant 1.13\nローカル)]
Embed --> VDB
VDB --> Rerank[Reranker\nBGE-reranker-v2-m3]
Rerank --> LLM[Ollama\nQwen3 32B]
LLM --> API
API --> User
Doc[社内文書\nPDF/Word/Slack] --> Parser[Docling 2.x\n解析・チャンク化]
Parser --> Embed
実装例:LlamaIndex 0.12 × Ollama
# pip install llama-index>=0.12 llama-index-llms-ollama llama-index-embeddings-ollama qdrant-client
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader, Settings
from llama_index.llms.ollama import Ollama
from llama_index.embeddings.ollama import OllamaEmbedding
from llama_index.vector_stores.qdrant import QdrantVectorStore
import qdrant_client
# LLM・Embeddingの設定
Settings.llm = Ollama(
model="qwen3-ja-tuned",
base_url="http://localhost:11434",
request_timeout=120.0,
context_window=32768,
)
Settings.embed_model = OllamaEmbedding(
model_name="nomic-embed-text",
base_url="http://localhost:11434",
ollama_additional_kwargs={"mirostat": 0},
)
Settings.chunk_size = 512
Settings.chunk_overlap = 64
# Qdrantクライアント(ローカル永続化)
client = qdrant_client.QdrantClient(path="./qdrant_storage")
vector_store = QdrantVectorStore(
client=client,
collection_name="company_docs",
)
# 文書読み込みとインデックス構築
documents = SimpleDirectoryReader("./docs").load_data()
index = VectorStoreIndex.from_documents(
documents,
vector_store=vector_store,
show_progress=True,
)
# クエリエンジン(ハイブリッド検索 + 再ランキング)
query_engine = index.as_query_engine(
similarity_top_k=10,
response_mode="compact",
)
response = query_engine.query("2025年度の売上目標はいくらですか?")
print(response)
GPU選定ガイド(2026年最新)
⚠️ 編集注: 実勢価格は市場動向により変動します。購入時点での最新価格を必ず確認してください。また、Apple製品の表記は「Mac Studio Pro」ではなく正式には「Mac Pro」または「Mac Studio」(M4 Max搭載モデル)となります。
| GPU | VRAM | 対応モデル規模 | 実勢価格(目安) | 推奨度 |
|---|---|---|---|---|
| RTX 5090 | 32GB | 〜70B Q4 | ¥35万〜 | ★★★★★ |
| RTX 4090 | 24GB | 〜32B Q4 | ¥20万〜 | ★★★★☆ |
| RTX 5080 | 16GB | 〜17B Q4 | ¥15万〜 | ★★★☆☆ |
| RTX 4080 SUPER | 16GB | 〜17B Q4 | ¥12万〜 | ★★★☆☆ |
| Apple M4 Pro(48GB) | 48GB統合 | 〜70B Q4 | Mac Studio | ★★★★★ |
| Apple M4 Max(128GB) | 128GB統合 | 〜200B Q4 | Mac Studio(上位構成) | ★★★★★ |
2026年現在、Apple M4 Max搭載Mac Studioは128GBユニファイドメモリにより、DeepSeek-V3クラスの大規模モデルを1台で動かせる現実的な選択肢として注目されています。
本番運用のためのセキュリティ・モニタリング設計
ローカルLLMを社内本番環境に組み込む際に見落としがちな運用設計を整理します。
セキュリティ強化設定
# Nginx リバースプロキシ設定(認証付き)
upstream ollama_backend {
server 127.0.0.1:11434;
keepalive 32;
}
server {
listen 443 ssl http2;
server_name llm.internal.example.com;
# mTLS による社内認証
ssl_client_certificate /etc/nginx/certs/internal-ca.crt;
ssl_verify_client on;
# レート制限
limit_req_zone $binary_remote_addr zone=llm_limit:10m rate=10r/m;
limit_req zone=llm_limit burst=20 nodelay;
location /v1/ {
proxy_pass http://ollama_backend/v1/;
proxy_set_header Authorization "";
proxy_read_timeout 300s;
proxy_buffering off;
# 監査ログ
access_log /var/log/nginx/llm_audit.log combined;
}
}
Prometheus + Grafanaによるモニタリング
# docker-compose.yaml(モニタリングスタック)
services:
prometheus:
image: prom/prometheus:v2.52.0
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
ports:
- "9090:9090"
grafana:
image: grafana/grafana:11.1.0
ports:
- "3000:3000"
environment:
GF_SECURITY_ADMIN_PASSWORD: "${GRAFANA_PASS}"
# Ollama Exporterは非公式だが、カスタムメトリクスをexposeする
ollama-exporter:
image: ghcr.io/vincelwt/ollama-exporter:latest
environment:
OLLAMA_URL: "http://host.docker.internal:11434"
ports:
- "9101:9101"
監視すべき主要メトリクスは以下のとおりです。
| メトリクス名 | 内容 |
|---|---|
ollama_model_load_duration_seconds | モデルロード時間 |
ollama_request_duration_seconds | リクエスト応答時間 |
ollama_tokens_per_second | 推論スループット |
nvidia_smi_memory_used_bytes | GPUメモリ使用率 |
まとめ
2026年のローカルLLM構築における重要ポイントを整理します。
- モデル選定:日本語用途はQwen3 32B Q4_K_Mが現在最高のコストパフォーマンス。大容量VRAM環境ではLlama 4 MaverickやDeepSeek-V3も現実的な選択肢になった
- 推論エンジン:手軽さ優先ならOllama 0.6.x、最大スループット優先ならllama.cpp直接サーバーかvLLM 0.8.xを使い分けるのが最適
- RAG統合:LlamaIndex 0.12 × Qdrant × nomic-embed-textの組み合わせがローカル完結RAGの2026年推奨スタック
- 本番セキュリティ:Nginxリバースプロキシ+mTLS認証+レート制限を必ず設ける。データがローカルに閉じていても認証・監査ログは必須
- ハードウェア:新規投資ならRTX 5090(32GB)かApple M4 Max Mac Studioが推奨。既存環境のRTX 4090でも32Bクラスは十分動作する
次のアクションとして、まずOllama 0.6.3をインストールし、Qwen3 32BのQ4_K_M量子化モデルをollama pullで取得してOpenAI互換APIの動作確認を行いましょう。RAGパイプラインの構築はその後のステップとして、段階的に社内知識ベースへ接続していくことを推奨します。