0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Ollama + Open WebUI を NVIDIA GPU + プロキシ環境下で動かす手順まとめ(Ubuntu 22.04)

Last updated at Posted at 2025-05-27

Ollama + Open WebUI を NVIDIA GPU + プロキシ環境下で動かす手順まとめ(Ubuntu 22.04)

概要

NVIDIA GPU 環境で、Ollama および Open WebUI を Docker 上で動作させ、ローカル LLM による GPU 推論を高速に行うための手順メモです。


1. Features(機能)

  • Ollama と Open WebUI を Docker で構築
  • NVIDIA Container Toolkit による GPU 対応
  • ベンチマークスクリプトによるトークン生成速度測定
  • プロキシ対応構成済み

2. 動作確認済み構成

項目
OS Ubuntu 22.04.4 LTS
GPU NVIDIA RTX 6000 Ada 48GB + T400 4GB
CUDA 12.2
ドライバ NVIDIA-SMI 535.104.05
Python 3.10.12
Docker docker-ce 24.0.5 など(APT経由)
WebUI open-webui v0.6.10

3. セットアップ手順

3.1 OSとドライバ確認

lsb_release -a
nvidia-smi

3.2 プロキシ設定

.bashrc に以下を追加:

export http_proxy="http://<YOUR_PROXY>:8080"
export https_proxy="http://<YOUR_PROXY>:8080"
export ftp_proxy="http://<YOUR_PROXY>:8080"
export no_proxy="localhost,127.0.0.1,::1"

APTにも設定:

sudo nano /etc/apt/apt.conf.d/95proxies
Acquire::http::Proxy "http://<YOUR_PROXY>:8080";
Acquire::https::Proxy "http://<YOUR_PROXY>:8080";

3.3 Dockerインストール

sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release

sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
  sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

echo \
  "deb [arch=$(dpkg --print-architecture) \
  signed-by=/etc/apt/keyrings/docker.gpg] \
  https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

sudo usermod -aG docker $USER
newgrp docker

3.4 Dockerのプロキシ設定

sudo mkdir -p /etc/systemd/system/docker.service.d
sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf

以下を記載:

[Service]
Environment="HTTP_PROXY=http://<YOUR_PROXY>:8080"
Environment="HTTPS_PROXY=http://<YOUR_PROXY>:8080"
Environment="NO_PROXY=localhost,127.0.0.1"

再起動。

sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl restart docker

4. NVIDIA Container Toolkit 設定

distribution=$(. /etc/os-release;echo $ID$VERSION_ID)

curl -s -L https://nvidia.github.io/libnvidia-container/gpgkey | \
  sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg

curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \
  sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
  sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list > /dev/null

sudo apt update
sudo apt install -y nvidia-container-toolkit

sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl restart docker

4.1 動作確認

docker run --rm --gpus all nvidia/cuda:12.2.0-base-ubuntu22.04 nvidia-smi

5. Ollama + Open WebUI の起動

5.1 Docker Compose ファイル(例)

docker-compose.yml

version: "3.9"

services:
  ollama:
    image: ollama/ollama
    container_name: ollama
    restart: unless-stopped
    ports:
      - "11434:11434"
    volumes:
      - ollama-data:/root/.ollama
    environment:
      # 以下は必要に応じて設定(プロキシ利用者向け)
      # HTTP_PROXY: http://<YOUR_PROXY>:8080
      # HTTPS_PROXY: http://<YOUR_PROXY>:8080
      # http_proxy: http://<YOUR_PROXY>:8080
      # https_proxy: http://<YOUR_PROXY>:8080
      # NO_PROXY: localhost,127.0.0.1
      # no_proxy: localhost,127.0.0.1
    deploy:
      resources:
        reservations:
          devices:
            - capabilities: [gpu]

  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    restart: unless-stopped
    ports:
      - "3000:8080"
    volumes:
      - open-webui-data:/app/backend/data
    environment:
      WEBUI_AUTH: "false"
      WEBUI_EMBEDDING_DISABLED: "true"
      # 以下は必要に応じて設定(プロキシ利用者向け)
      # HTTP_PROXY: http://<YOUR_PROXY>:8080
      # HTTPS_PROXY: http://<YOUR_PROXY>:8080
      # http_proxy: http://<YOUR_PROXY>:8080
      # https_proxy: http://<YOUR_PROXY>:8080
      # NO_PROXY: localhost,127.0.0.1
      # no_proxy: localhost,127.0.0.1
      OLLAMA_BASE_URL: http://<HOST_IP>:11434
    extra_hosts:
      - "host.docker.internal:host-gateway"
    healthcheck:
      disable: true

volumes:
  ollama-data:
  open-webui-data:
docker compose up -d

5.2 モデルの取得と確認

curl -X POST http://127.0.0.1:11434/api/pull -d '{ "name": "phi4:latest" }'
curl http://127.0.0.1:11434/api/tags

6. Usage(使い方)

6.1 起動

docker compose up -d

6.2 モデルの取得(API)

curl -X POST http://127.0.0.1:11434/api/pull -d '{ "name": "phi4:latest" }'

6.3 推論(API)

curl http://127.0.0.1:11434/api/generate -d '{
  "model": "phi4:latest",
  "prompt": "Hello! Please introduce yourself!",
  "stream": false
}'

6.4 推論(WEB UI)

ブラウザで http://127.0.0.1:3000/ にアクセス。
image.png

6.5 推論(Cline)

VSCodeにCline拡張機能をインストールし、設定パネルにて OLLAMA_BASE_URL を指定。


7. Benchmark(ベンチマーク)

ベンチマークスクリプト: util/benchmark.py

import time
import requests

data = {
    "model": "phi4:14b",
    "prompt": "Explain general relativity in simple terms.",
    "stream": False
}

start = time.time()
response = requests.post("http://localhost:11434/api/generate", json=data)
elapsed = time.time() - start

text = response.json()["response"]
token_count = len(text.split())  # Approximate

print(f"Time: {elapsed:.2f} seconds")
print(f"Tokens: {token_count}")
print(f"Tokens/sec: {token_count / elapsed:.2f}")

ベンチマーク例:

$ python3 util/benchmark.py
Time: 9.61 seconds
Tokens: 433
Tokens/sec: 45.06 

8. Troubleshooting(よくあるトラブルと対策)

現象 対策
モデルがUIに表示されない OLLAMA_BASE_URL にホスト実IPを指定
モデル数が0と表示される docker logs open-webui でログ確認
モデル再DLされる ollama_data ボリュームが維持されているか

Appendix(補足情報)

  • nvidia-smi 結果:RTX 6000 Ada (48GB), CUDA 12.2
  • WebUI アクセス: http://localhost:3000
  • Ollama API: http://localhost:11434
  • モデル格納パス: /var/lib/docker/volumes/ollama-stack_ollama-data/_data/models

おわりに

本記事では、Ollama + Open WebUI を NVIDIA GPU + プロキシ環境下で効率よく構築し、高速推論を実現する方法をまとめました。業務利用や高速なローカルLLM実験の出発点として活用してください。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?