環境概要
Windows 11 Pro (Build 26200.7922)
WSL2 バージョン: 2.6.3.0
Ubuntu 24.04 (noble)
AMD Radeon RX 7900 XTX (VRAM 24GB)
AMD Software: Adrenalin Edition 26.2.2
ROCm 7.2.0
Ollama 0.17.6 (Windows版)
Step 1:Ollama を Windows にインストール
構成方針: Windows版OllamaをGPUサーバーとして動かし、WSL2からはクライアントとしてのみ使う。
winget install Ollama.Ollama
Step 2:Nemotron-Nano-9B-v2-Japanese のセットアップ
Ollama 公式ライブラリに Japanese 版は未登録。hf.co/ プレフィックスで直接実行も可能だが、チャットテンプレートや stop トークンを正しく設定するために Modelfile を作成して登録する。
Modelfile 作成
C:\Users\$env:USERNAME\.ollama\ に移動してから:
@"
FROM hf.co/mmnga-o/NVIDIA-Nemotron-Nano-9B-v2-Japanese-GGUF:Q5_K_M
TEMPLATE """<SPECIAL_10>System
{{- if .System }}
{{ .System }}
{{- end }}
_11>User
{{ .Prompt }}
<SPECIAL_12>Assistant
"""
PARAMETER stop "<SPECIAL_10>"
PARAMETER stop "<SPECIAL_11>"
PARAMETER stop "<SPECIAL_12>"
"@ | Out-File -Encoding utf8 Modelfile
Ollama に登録
ollama create nvidia-nemotron-nano-9b-v2-japanese -f Modelfile
ollamaが PATH に通っていない場合:& "$env:LOCALAPPDATA\Programs\Ollama\ollama.exe" create nvidia-nemotron-nano-9b-v2-japanese -f Modelfile
HuggingFace から GGUF(約7GB)をダウンロードして登録される。
モデルの保存先:C:\Users\$env:USERNAME\.ollama\models
GPU 使用確認
ollama ps
# NAME PROCESSOR CONTEXT
# nvidia-nemotron-nano-9b-v2-japanese 100% GPU 32768
Step 3:WSL2 ネットワークを mirrored モードに変更
WSL 2.6.3.0 以降は mirrored モードで localhost がそのまま Windows ホストに繋がる。
これにより OLLAMA_HOST をデフォルト(127.0.0.1)のままにできる。
C:\Users\$env:USERNAME\.wslconfig を作成:
[wsl2]
networkingMode=mirrored
適用:
wsl --shutdown
Step 4:WSL2 側に ollama CLI をインストール
WSL2 側の ollama コマンドを Windows 側のサーバーに向ける。
# zstd がなければ先にインストール
sudo apt-get install -y zstd
curl -fsSL https://ollama.com/install.sh | sh
~/.zshrc に OLLAMA_HOST を設定:
echo 'export OLLAMA_HOST=http://localhost:11434' >> ~/.zshrc
source ~/.zshrc
動作確認:
ollama list
# → Windows側のモデル一覧が表示される
ollama run nvidia-nemotron-nano-9b-v2-japanese "こんにちは"
Step 5:Open WebUI + SearXNG のセットアップ
WSL2 側に Docker をインストールし、docker-compose で Open WebUI と SearXNG をまとめて管理する。
ポイント: mirroredモードにより WSL2 内の
localhostが Windows ホストに直接繋がるため、--network=hostを使うとコンテナからも同様にlocalhost:11434でOllamaにアクセスできる。
Docker インストール(未インストールの場合)
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
# 一度ログアウトして再ログイン
作業ディレクトリの作成
mkdir -p ~/docker/open-webui/searxng
cd ~/docker/open-webui
SearXNG 設定ファイルの作成
cat > ~/docker/open-webui/searxng/settings.yml << 'EOF'
use_default_settings: true
server:
secret_key: "changeme"
search:
formats:
- html
- json
engines:
- name: google
engine: google
disabled: false
- name: bing
disabled: true
- name: duckduckgo
disabled: true
EOF
docker-compose.yml の作成
cat > ~/docker/open-webui/docker-compose.yml << 'EOF'
services:
open-webui:
image: ghcr.io/open-webui/open-webui:main
container_name: open-webui
restart: always
network_mode: host
environment:
- OLLAMA_BASE_URL=http://host.docker.internal:11434
- ENABLE_COMMUNITY_SHARING=False
- PORT=8080
volumes:
- open-webui:/app/backend/data
searxng:
image: searxng/searxng:latest
container_name: searxng
restart: always
network_mode: host
environment:
- GRANIAN_PORT=8081
volumes:
- ./searxng:/etc/searxng
volumes:
open-webui:
external: true
EOF
Docker ボリューム作成と起動
docker volume create open-webui
docker compose up -d
アクセス確認
| サービス | URL |
|---|---|
| Open WebUI | http://localhost:8082 |
| SearXNG | http://localhost:8080 |
Open WebUI の Web 検索設定
Admin Panel > 設定 > ウェブ検索 で以下を設定して保存:
- ウェブ検索:ON
- ウェブ検索エンジン:
searxng - SearXNG クエリ URL:
http://localhost:8080/search?q=<query> - 検索結果数:
5(デフォルト3より多めが望ましい)
コンテナ管理
# 起動
docker compose up -d
# 停止
docker compose down
# 更新
docker compose pull && docker compose up -d
# ログ確認
docker logs open-webui
docker logs searxng
最終構成
WSL2 Ubuntu 24.04
├─ ROCm 7.2.0(インストール済み・WSL2では直接GPU使用不可)
├─ ollama CLI → localhost:11434 経由でWindows側サーバーに接続
└─ Docker(~/docker/open-webui/docker-compose.yml)
├─ Open WebUI(--network=host, port: 8082)
│ └─ localhost:11434 経由でOllamaに接続
└─ SearXNG(--network=host, port: 8080)
└─ Open WebUIのWeb検索バックエンドとして動作
↓ HTTP API (localhost:11434 / mirroredモード)
Windows 11
└─ Ollama 0.17.6(Windows版・ROCm内蔵)
└─ AMD RX7900XTX (24GB VRAM) で GPU推論
モデル: nvidia-nemotron-nano-9b-v2-japanese (Q5_K_M, 11GB)
アンインストール手順
WSL2 側の Ollama
以下の内容で ollama-uninstall.sh を作成して実行する。
参照: https://docs.ollama.com/linux
#!/bin/bash
# ollama-uninstall.sh
# Ollamaを公式手順に従って完全削除するスクリプト
set -e
echo "=== Ollama アンインストール開始 ==="
# 1. サービス停止・無効化
echo "[1/5] サービスを停止・無効化..."
sudo systemctl stop ollama 2>/dev/null || echo " → サービスが起動していないためスキップ"
sudo systemctl disable ollama 2>/dev/null || echo " → サービスが登録されていないためスキップ"
sudo rm -f /etc/systemd/system/ollama.service
sudo systemctl daemon-reload
# 2. ライブラリ削除(/usr/local/lib, /usr/lib, /lib のいずれか)
echo "[2/5] ライブラリを削除..."
OLLAMA_BIN=$(which ollama 2>/dev/null || true)
if [ -n "$OLLAMA_BIN" ]; then
OLLAMA_LIB=$(echo "$OLLAMA_BIN" | tr 'bin' 'lib')
sudo rm -rf "$OLLAMA_LIB/ollama" 2>/dev/null || echo " → ライブラリフォルダが見つからないためスキップ"
else
echo " → ollamaバイナリが見つからないためスキップ"
fi
# 3. バイナリ削除
echo "[3/5] バイナリを削除..."
if [ -n "$OLLAMA_BIN" ]; then
sudo rm -f "$OLLAMA_BIN"
echo " → $OLLAMA_BIN を削除しました"
else
echo " → ollamaバイナリが見つからないためスキップ"
fi
# 4. モデルデータ削除
echo "[4/5] モデルデータを削除..."
if [ -d "/usr/share/ollama" ]; then
sudo rm -rf /usr/share/ollama
echo " → /usr/share/ollama を削除しました"
else
echo " → /usr/share/ollama が見つからないためスキップ"
fi
# 5. ユーザー・グループ削除
echo "[5/5] ollama ユーザー・グループを削除..."
sudo userdel ollama 2>/dev/null || echo " → ollamaユーザーが存在しないためスキップ"
sudo groupdel ollama 2>/dev/null || echo " → ollamaグループが存在しないためスキップ"
echo ""
echo "=== アンインストール完了 ==="
echo "※ ~/.ollama にモデルキャッシュが残っている場合は手動で削除してください:"
echo " rm -rf ~/.ollama"
chmod +x ollama-uninstall.sh
./ollama-uninstall.sh