Ubuntu × GeForce RTX 3090 でローカルLLMを動かす ― Ollama + gpt‑oss:20b + OpenWebUI

Ubuntu 22.04 LTS × GeForce RTX 3090 でローカルLLMを動かす ― Ollama + gpt‑oss:20b + OpenWebUI

はじめに

近年、LLM(大規模言語モデル)をローカルで動かすニーズが高まっています。 本記事では、Ubuntu 22.04 LTSGeForce RTX 3090 を使い、 Ollamagpt‑oss:20b を管理し、OpenWebUI でブラウザベースのチャット UI を構築する手順を紹介します。 GPU アクセラレーションを最大限に活かす設定や、トラブルシューティングのポイントもまとめています。

Ubuntu 環境の準備

2‑1. 基本セットアップ

sudo apt update && sudo apt upgrade -y
sudo apt install -y build-essential git curl wget

2‑2. NVIDIA ドライバと CUDA Toolkit

# 1. ドライバインストール
sudo ubuntu-drivers autoinstall

# 2. CUDA 12.x インストール
wget https://developer.download.nvidia.com/compute/cuda/12.1.0/local_installers/cuda_12.1.0_530.30.02_linux.run
sudo sh cuda_12.1.0_530.30.02_linux.run

`/usr/local/cuda-12.1/bin` を PATH に追加し、`nvcc --version` で確認。

2‑3. cuDNN のインストール

公式サイトから cuDNN 8.x をダウンロードし、`/usr/local/cuda-12.1/` に展開。 `LD_LIBRARY_PATH` に `lib64` を追加。

Ollama のインストールと設定

3‑1. バイナリ取得

curl -fsSL https://ollama.com/install.sh | sh

`/usr/local/bin/ollama` が PATH に入ります。

3‑2. GPU 検出確認

ollama version
# 例: Ollama 0.3.0 (GPU: NVIDIA RTX 3090)

3‑3. デフォルトモデル一覧

ollama list

必要に応じて `ollama pull` でモデルを追加。

gpt‑oss:20b のダウンロードと登録

4‑1. モデル取得

ollama pull gpt-oss:20b

ダウンロード時に SHA256 チェックサムが表示されるので、公式サイトと照合してください。

4‑2. モデル登録

Ollama は自動で登録しますが、手動で確認したい場合は `ollama show gpt-oss:20b` で詳細情報を確認。

OpenWebUI の導入

5‑1. Docker Compose で起動

git clone https://github.com/open-webui/open-webui.git
cd open-webui
cp .env.example .env
# .env で OLLAMA_HOST=http://host.docker.internal:11434 に設定
docker compose up -d

ブラウザで http://localhost:8080 にアクセスすると UI が表示されます。

5‑2. API トークン設定

OpenWebUI から Ollama へ接続する際にトークンが必要な場合は `.env` に OLLAMA_API_KEY=YOUR_TOKEN を追加。 Ollama 側で ollama serve --api-key YOUR_TOKEN を起動しておくと安全です。

GeForce RTX 3090 で推論を高速化

6‑1. CUDA バージョン確認

nvidia-smi

GPU の温度・使用率・メモリ使用量をリアルタイムで確認できます。

6‑2. バッチサイズ調整

gpt‑oss:20b は 20 B パラメータでメモリを多く消費します。 OLLAMA_MAX_BATCH_SIZE を 8〜16 に設定すると、GPU メモリを効率的に使えます。

export OLLAMA_MAX_BATCH_SIZE=12

6‑3. メモリ管理のベストプラクティス

  • --max-memory オプションで GPU メモリ上限を設定(例: --max-memory 24GB)。
  • --gpu-memory で GPU メモリの割り当てを細かく制御。
  • --cpu オプションを使って CPU での推論に切り替えるケースも検討。

6‑4. サンプルスクリプト

import ollama

def chat(prompt):
    response = ollama.chat(
        model="gpt-oss:20b",
        messages=[{"role":"user","content":prompt}],
        stream=True
    )
    for chunk in response:
        print(chunk["content"], end="", flush=True)

if __name__ == "__main__":
    chat("こんにちは、今日の天気は?")

実行時に GPU 使用率が 80% 以上になることが多いです。

ローカルLLMの動作確認

  1. OpenWebUI で質問を入力。
  2. レスポンス時間を測定(ブラウザの開発者ツール → Network)。
  3. CPU/GPU 負荷を htop / nvidia-smi で確認。
  4. トークン生成量は ollama logs で確認可能。

トラブルシューティング

兆候原因対処
CUDA エラードライバ/CUDA バージョン不一致sudo apt install nvidia-driver-535 などで再インストール
モデルダウンロード失敗ネットワーク不安定curl -L で再試行、または --retry オプション
OpenWebUI 接続不可ポート競合docker compose down → docker compose up で再起動
GPU 使用率 0%Ollama が CPU で動作OLLAMA_GPU=1 を設定、または --gpu オプションを確認

まとめ

Ubuntu 22.04 + RTX 3090 + Ollama + gpt‑oss:20b + OpenWebUI の環境構築が完了しました。 GPU アクセラレーションを活かした高速推論と、UI での簡易操作が実現できました。ぜひ、実際の業務や研究に活かしてみてください。

この記事はAIによって作成されました。

コメント

このブログの人気の投稿

Blogger Sitemap登録エラー解決

【iOS】SwiftでCGAffineTransformから角度・ラジアン・度数・スケールを計算する方法

Ollama & Open WebUI: ローカルLLM構築