ローカルで LLM を動かすなら Ollama + Open WebUI が標準。2025年の古い記事では断片的だったが、2026年版は実装から運用まで全て網羅。
なぜローカル LLM なのか
【クラウド API(ChatGPT など)】
- 毎回データが外に出る(セキュリティ問題)
- API 代がかさむ(月数千~数万円)
- 速度が遅い場合がある(ネットワーク遅延)
【ローカル LLM(Ollama)】
- データが自分のサーバーだけ(セキュアー)
- 無料(初期構築後、ランニング費用ほぼゼロ)
- 速度が速い(ネットワーク遅延ゼロ)
必要な環境
ハードウェア
【最小構成】
- CPU:4コア以上(Ryzen 5 相当)
- メモリ:8GB(推奨 16GB)
- ストレージ:30GB(モデルサイズ次第)
【GPU あると大幅に高速化】
- Nvidia GPU:RTX 3060 以上推奨
- AMD GPU:RX 6700 XT 以上推奨
- Mac M1/M2:統合 GPU で十分
【GPU なし場合】
- CPU のみでも動作(ただし遅い)
- 推論速度:1トークン/秒程度
- GPU あり場合:10~20倍高速
ソフトウェア
【必須】
- Docker
- Docker Compose
【推奨(GPU使用時)】
- Nvidia GPU ドライバー
- CUDA Toolkit 12.0+
インストール手順
ステップ 1:Docker & Docker Compose インストール
# Ubuntu/Debian
sudo apt-get update
sudo apt-get install docker.io docker-compose
# 権限設定(sudo なしで実行可能に)
sudo usermod -aG docker $USER
newgrp docker
ステップ 2:docker-compose.yml 作成
version: '3.8'
services:
ollama:
image: ollama/ollama:latest
container_name: ollama
ports:
- "11434:11434"
volumes:
- ollama_data:/root/.ollama
environment:
- NVIDIA_VISIBLE_DEVICES=all
gpus:
- driver: nvidia
all: true # GPU 全て使用
restart: always
open-webui:
image: ghcr.io/open-webui/open-webui:main
container_name: open-webui
ports:
- "8080:8080"
environment:
- OLLAMA_BASE_URL=http://ollama:11434
depends_on:
- ollama
restart: always
volumes:
- webui_data:/app/backend/data
volumes:
ollama_data:
webui_data:
ステップ 3:起動
docker-compose up -d
# ログ確認
docker-compose logs -f
ステップ 4:モデルのダウンロード
# Ollama コンテナに入る
docker exec -it ollama bash
# モデルをダウンロード
ollama pull llama2:7b
# または
ollama pull mistral:7b
# または
ollama pull neural-chat:7b
ステップ 5:Open WebUI にアクセス
ブラウザで http://localhost:8080 を開く
→ ユーザー登録(初回のみ)
→ モデル選択して利用開始
GPU 設定(高速化のため)
Nvidia GPU の場合
# CUDA Toolkit インストール
sudo apt-get install cuda-toolkit-12-0
# docker-compose.yml で GPU を有効化(上記の例参照)
services:
ollama:
gpus:
- driver: nvidia
all: true
GPU が認識されているか確認
# コンテナ内で確認
docker exec -it ollama bash
ollama run llama2:7b
# プロンプトで GPU 使用状況を確認
# "GPU acceleration enabled" と表示されたら OK
推奨モデル一覧(2026年)
| モデル | サイズ | 速度 | 品質 | 用途 |
|---|---|---|---|---|
| Llama 2 7B | 4GB | 速い | 標準 | 汎用・最初の1択 |
| Mistral 7B | 4GB | 高速 | 高い | 日本語・コード |
| Neural Chat 7B | 4GB | 速い | 高い | 会話型・日本語 |
| Llama 2 13B | 8GB | 中程度 | 高い | より精度重視 |
| Code Llama 7B | 4GB | 速い | コード特化 | プログラミング |
| Mistral Large | 34GB | 遅い | 非常に高い | 重い処理用 |
初心者推奨:Mistral 7B(バランス型)
よくある落とし穴
1. GPU が認識されない
# 確認コマンド
docker run --rm --gpus all nvidia/cuda:12.0-base nvidia-smi
# 出力がなければ、nvidia-docker が必要
sudo apt-get install nvidia-docker2
sudo systemctl restart docker
2. メモリ不足エラー
対策 1:小さいモデルを使う
ollama pull llama2:7b # 7B は 4GB
# ではなく
ollama pull phi:2.7b # 2.7B は 2GB
対策 2:スワップメモリを増やす
sudo fallocate -l 16G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
3. Open WebUI が Ollama に接続できない
# docker-compose.yml で
environment:
- OLLAMA_BASE_URL=http://ollama:11434
# これが正しくないと接続失敗
# ホスト名は「ollama」(service 名)
# ポートは 11434(Ollama のデフォルト)
4. 応答が遅い(GPU 未使用の場合)
# GPU が使われているか確認
docker exec -it ollama ollama ps
# "GPU acceleration disabled" が出たら GPU 未認識
→ 上記「GPU が認識されない」の対策を実施
実装時のベストプラクティス
1. モデルの永続化
volumes:
ollama_data:/root/.ollama # ← ここにモデルが保存される
# コンテナ削除後も モデルが残る
docker-compose down # コンテナ削除
docker-compose up -d # 再起動(モデルダウンロード不要)
2. Web UI のセキュリティ設定
open-webui:
environment:
- OLLAMA_BASE_URL=http://ollama:11434
# ローカルホストのみアクセス許可
- WEBUI_AUTH_REQUIRED=true # ユーザー認証必須
3. 複数モデルの管理
# ダウンロード済みモデルを確認
docker exec -it ollama ollama list
# 不要なモデルを削除
docker exec -it ollama ollama rm llama2:7b
4. バックアップ
# モデルデータをバックアップ
docker cp ollama:/root/.ollama ./ollama_backup
# WebUI のデータ(会話履歴)をバックアップ
docker cp open-webui:/app/backend/data ./webui_backup
トラブルシューティング
ポート競合
"Address already in use" エラーが出た場合
docker ps # 既存コンテナを確認
docker stop <コンテナ ID>
docker-compose up -d # 再起動
メモリリーク
# コンテナのメモリ使用量を監視
docker stats
# メモリが増え続ける場合、モデルを再ロード
docker restart ollama
ネットワーク接続の問題
# コンテナ間の通信確認
docker exec -it open-webui ping ollama
# 失敗する場合、ネットワークドライバを確認
docker network ls
docker network inspect <network_name>
2025年版との変更点
| 項目 | 2025年 | 2026年 |
|---|---|---|
| モデルサイズ | Llama 2 のみ | 複数選択肢 |
| GPU 設定 | 簡潔 | 詳細なトラブルシューティング |
| セキュリティ | 未記載 | ユーザー認証設定 |
| バックアップ | 未記載 | 手順明記 |
| トラブルシューティング | なし | 充実 |
次のステップ
【1日目】
- Ollama + Open WebUI をセットアップ
- モデル 1つをダウンロード・テスト
【1週間後】
- GPU 最適化を試す
- 複数モデルを試して相性を確認
【1ヶ月後】
- 実運用に向けて、セキュリティ設定を強化
- API 化(他アプリから Ollama を呼び出し)を検討