テーマを切り替える

Ollama + Open WebUI:ローカルChatGPT環境を構築する完全ガイド

Ollamaのおかげで、ローカルで大規模言語モデル(LLM)を動かすのが驚くほど簡単になりました。コマンド1つでインストールでき、メモリ8GBの古いノートPCでも7Bモデルが動きます。一方Open WebUIはChatGPT風の画面を提供し、Dockerでワンクリック展開でき、ナレッジベース・マルチユーザー管理・OpenAI互換APIを内蔵しています。

この記事では、この2つのツールを使ってローカルに完全なAIチャットシステムを構築する方法を解説します。


なぜローカル運用を選ぶのか

ChatGPTもClaudeもよくできていますが、いくつか引っかかる点があります。

費用の問題。月20ドル、1年で240ドルになります。ヘビーユーザーならまだしも、たまにコードの質問をしたり調べ物をする程度の自分には、少しもったいなく感じます。ローカルでモデルを動かせば、ダウンロード後は無料で、トークン課金もなく、更新の心配も不要です。

プライバシーの問題。入力した内容はOpenAIやAnthropicのサーバーにアップロードされます。仕事の文書、個人のメモ、プライベートな会話——正直なところ、あまり安心できません。ローカル運用なら、データはすべて自分のディスクの中にとどまり、どこにも送られません。

オフラインの問題。旅行中やネットの調子が悪いとき、クラウドAIは使い物になりません。ローカルモデルはダウンロード後に完全オフラインで動くので、ネットがなくても使えます。

カスタマイズの問題。クラウドサービスのパラメータは固定されています。Temperatureやプロンプトのテンプレートは調整できません。ローカルなら好きなように変更できます。


主要コンセプトをざっと把握する

まず2つのツールが何なのかを理解しておきましょう。後で混乱しないためです。

Ollama はモデルのランナーです。LLMのダウンロード・管理・実行を担い、ついでにAPI(デフォルトはポート11434)も提供します。「ローカル版のOpenAI API」だと考えると分かりやすいです。

Open WebUI はWebインターフェースです。ChatGPT風のチャット画面、モデル切り替え、履歴管理がすべて揃っています。APIを通じてOllamaに接続し、コマンドライン操作をブラウザ上のGUIに変えてくれます。

構成は次のようになります

ブラウザ (localhost:3000)

Open WebUI (Dockerコンテナ)
    ↓ HTTP API
Ollama (ローカルサービス, ポート11434)

ローカルモデル (~/.ollama に保存)

ブラウザを開く → Open WebUIがOllama APIを呼ぶ → Ollamaがモデルを読み込んで推論 → 結果が返ってくる。たったこれだけです。


システム要件と準備

展開の前に、ハードウェアが足りているか確認しましょう。

最低要件

  • プロセッサ:Intel i5、または同等の性能
  • メモリ:8GB RAM(16GB以上ならより安定)
  • ストレージ:最低10GBの空き(モデルファイルは大きめ)
  • OS:Windows 10以降、macOS 11以降、Linux

推奨構成

  • GPU:NVIDIA RTX 3060以上(推論がかなり速くなる)
  • Apple Silicon Mac:M1/M2/M3シリーズ。ユニファイドメモリ構造で、もともとモデル実行に向いている

ソフトウェア依存

  • Docker:Open WebUIを動かすのに使う(使わなくてもよいが、Dockerが手軽)

Dockerがインストール済みか確認します:

docker --version
docker compose version

バージョン番号が表示されればインストール済みです。表示されない場合は、まずDocker Desktop(Windows/macOS)またはDocker Engine(Linux)をインストールしてください。


Step 1: Ollamaをインストールする

Ollamaのインストールは、コマンド1つで完了します。

1.1 macOSとLinuxでのインストール

ターミナルを開いて、これを実行します:

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

スクリプトが自動でOllamaをダウンロードし、システムにインストールします。完了するとバックグラウンドサービスが自動起動します。

1.2 Windowsでのインストール

PowerShellでこれを実行します:

irm https://ollama.com/install.ps1 | iex

または ollama.com/download からWindows用インストーラをダウンロードし、ダブルクリックで実行します。どちらでも構いません。

1.3 Dockerでのインストール(任意)

Ollama自体もコンテナに入れたい場合はDockerを使います:

docker pull ollama/ollama:latest
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

-v ollama:/root/.ollama でモデルをDockerボリュームに保存します。これでコンテナを再起動してもモデルが失われません。

1.4 インストールの確認

インストールが終わったら、Ollamaが正常に動いているか確認します:

ollama --version

ollama version is 0.1.x のようなバージョン番号が表示されるはずです。

サービスが自動起動しない場合は、手動で起動します:

ollama serve

これでOllama APIサービスがバックグラウンドで起動し、http://localhost:11434 で待ち受けます。


Step 2: モデルをダウンロードして実行する

Ollamaの準備ができたら、次はモデルをダウンロードします。

2.1 モデルの選び方

サイズの異なるモデルは、それぞれ異なるハードウェアを必要とします。下の表を使えばすばやく選べます。

ハードウェア構成推奨モデルパラメータ数ディスク使用量コマンド
8GB RAM、GPUなしLlama 3.2 1B1B740MBollama run llama3.2:1b
8GB RAM、GPUなしGemma 3 2B2B1.4GBollama run gemma3:2b
16GB RAMLlama 3.2 3B3B2GBollama run llama3.2
16GB RAMQwen 2.5 7B7B4GBollama run qwen2.5:7b
16GB RAM + GPULlama 3.1 8B8B4.7GBollama run llama3.1:8b
32GB RAM + GPUDeepSeek R1 14B14B8GBollama run deepseek-r1:14b
64GB RAM + GPULlama 3.3 70B70B39GBollama run llama3.3:70b

用途別の選び方

  • 日常会話・簡単なタスク:Llama 3.2 1B または 3B
  • 中国語・日本語を重視:Qwen 2.5シリーズ(Alibaba製で、中国語の精度が高い)
  • コードを書く:DeepSeek R1シリーズ(推論力が高く、コード生成に向く)
  • 汎用で高性能:Llama 3.1 8B または Mistral 7B

2.2 モデルのダウンロード

ollama pull コマンドでダウンロードします:

# Llama 3.2(デフォルトは3B版)をダウンロード
ollama pull llama3.2

# DeepSeek R1 7B をダウンロード
ollama pull deepseek-r1:7b

# Qwen 2.5 7B(中国語が得意)をダウンロード
ollama pull qwen2.5:7b

初回はモデルのサイズと回線速度によって、数分かかることがあります。私の場合、Llama 3.2は2分ほど、DeepSeek R1 7Bはもう少し待ちました。

2.3 モデルと会話する

ダウンロードが終わったら、そのまま実行します:

ollama run llama3.2

会話画面に入ります:

>>> Send a message (/? for help)

質問を入力すると、モデルがリアルタイムで返答します:

>>> こんにちは、自己紹介をしてください

こんにちは!私はLlama 3.2モデルをベースにしたローカルAIアシスタントです...

終了するには Ctrl + d を押すか、/bye と入力します。

2.4 よく使う管理コマンド

ダウンロード済みのモデルを確認します:

ollama list

特定のモデルを削除します:

ollama rm llama3.2:1b

モデルをコピーします(別名をつける):

ollama cp llama3.2 my-llama

モデルの詳細を見ます:

ollama show llama3.2

Step 3: Open WebUIをインストールする

コマンドラインでも十分使えます。ですが、ChatGPT風のGUIを体験したいなら、Open WebUIをインストールしましょう。

3.1 Dockerの単一コンテナで展開する(とても速い)

まずOllamaサービスが動いていること(ollama serve)を確認してから、これを実行します:

docker run -d -p 3000:8080 \
  --add-host=host.docker.internal:host-gateway \
  -v open-webui:/app/backend/data \
  --name open-webui \
  --restart unless-stopped \
  ghcr.io/open-webui/open-webui:main

パラメータの意味は次のとおりです:

  • -p 3000:8080:コンテナの8080ポートをホストの3000ポートにマッピング
  • --add-host=host.docker.internal:host-gateway:コンテナからホストのOllamaサービスにアクセスできるようにする
  • -v open-webui:/app/backend/data:データ(会話履歴、ユーザーアカウント)を永続化
  • --restart unless-stopped:Docker再起動後にコンテナを自動起動

展開が終わったら、ブラウザで次のアドレスにアクセスします:

http://localhost:3000

3.2 Docker Composeで展開する(推奨)

OllamaもOpen WebUIもすべてDockerで管理したい場合は、Docker Composeが便利です。

まずディレクトリを作ります:

mkdir open-webui-project
cd open-webui-project

compose.yaml ファイルを作ります:

services:
  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    ports:
      - "3000:8080"
    volumes:
      - ./data:/app/backend/data
    environment:
      - "OLLAMA_BASE_URL=http://ollama:11434"
    restart: unless-stopped
    depends_on:
      - ollama

  ollama:
    image: ollama/ollama:latest
    container_name: ollama
    volumes:
      - ./ollama:/root/.ollama
    ports:
      - "11434:11434"
    restart: unless-stopped

サービスを起動します:

docker compose up -d

状態を確認します:

docker compose ps

2つのコンテナがどちらも running と表示されれば成功です。

3.3 初回アクセスと設定

ブラウザで http://localhost:3000 にアクセスすると、初回はアカウント作成画面が表示されます。

管理者アカウントを作成する

  • ユーザー名、メールアドレス、パスワードを入力
  • 「Sign Up」をクリック

ログインすると、Open WebUIが自動でOllamaサービスを検出し、利用可能なモデルを一覧表示します。すでにモデルをダウンロードしていれば、ドロップダウンメニューに次のように表示されます:

llama3.2:latest
deepseek-r1:7b
qwen2.5:7b

自動検出されない場合は、Settings → Connections で、OllamaのAPIアドレスを手動入力します:

http://host.docker.internal:11434

Docker Composeを使っている場合は、こう入力します:

http://ollama:11434

Step 4: 基本的な使い方

画面が整ったので、使い方を見ていきましょう。

4.1 ChatGPT風のチャット

画面はChatGPTによく似ています:

  • 左側は会話リストで、新規作成・削除・名前変更ができる
  • 上部はモデル選択のドロップダウンメニュー
  • 下部は入力欄で、入力後にEnterで送信

モデル(例:llama3.2)を選んで質問を入力すると、返答がリアルタイムで表示されます。ChatGPTと同じくストリーミング出力で、なかなか快適です。

4.2 モデルの切り替え

同じ会話内でモデルを切り替えられます。上部のモデルドロップダウンをクリックして別のモデルを選び、そのまま会話を続けられます。

この機能は、異なるモデルの回答を比較するのに便利です。たとえば:

  • 同じ質問をまずLlama 3.2に答えさせる
  • DeepSeek R1に切り替えて、より深い回答になるか見る

4.3 会話の管理

  • 新規作成:左側の「New Chat」をクリック
  • 名前変更:会話タイトルをクリックして直接編集
  • 削除:会話を右クリックして削除を選択
  • 履歴検索:左上に検索ボックスがある

すべての会話はローカルのDockerボリュームに保存され、クラウドにはアップロードされません。

4.4 パラメータの調整

入力欄の右側にある設定アイコンをクリックすると、モデルのパラメータを調整できます:

  • Temperature(温度):出力のランダム性を制御する。低い値(0.1〜0.3)はより安定し、高い値(0.7〜0.9)はより創造的になる
  • Top P:語彙選択の範囲を制御する
  • 最大出力長:返答の文字数を制限する

これらのパラメータは結果にかなり影響します。コードを書くときは低いTemperature、創作的な文章を書くときは高い値を使いましょう。


Step 5: 応用機能

基本的な会話以外にも、Open WebUIには実用的な応用機能がいくつかあります。

5.1 RAGナレッジベースの構築

RAG(Retrieval-Augmented Generation)は、自分の文書をAIが検索できるナレッジベースに変える仕組みです。

使い方

  1. 左側の「Documents」タブをクリック
  2. 「Upload」をクリックしてファイルを選ぶ(PDF、Markdown、TXT、DOCXに対応)
  3. ファイルがアップロードされると、システムが自動で処理してインデックスを作成

アップロードが終わったら、会話時に「Use Documents」にチェックを入れると、AIがあなたの文書から関連情報を検索します。

活用例

  • 社内のAPI文書をアップロードして「あるエンドポイントのパラメータは何か」と質問する
  • 個人のメモをアップロードして「前回の会議の結論は何だったか」と質問する
  • 技術系PDFをアップロードして「ある概念の詳しい説明」を尋ねる

これがローカル版の「ナレッジベース対話」です。文書はすべて自分のディスクの中にあります。

5.2 マルチユーザー管理

複数人でこのシステムを使う場合、別々のアカウントを作成できます。

管理者は Settings → Users で次のことができます:

  • 新しいユーザーを作成
  • ユーザー権限を設定(一般ユーザー、管理者)
  • ユーザー一覧を確認

各ユーザーの会話履歴は独立して保存され、互いに干渉しません。

5.3 API連携

Open WebUIもOllamaもOpenAI互換のAPIを提供しており、既存のツールと直接連携できます。

Ollama APIを呼ぶ

curl http://localhost:11434/api/chat -d '{
  "model": "llama3.2",
  "messages": [
    {"role": "user", "content": "Hello"}
  ],
  "stream": false
}'

Open WebUI APIを呼ぶ(認証が必要な場合は、先にTokenを取得します):

curl http://localhost:3000/api/chat/completions \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -d '{
    "model": "llama3.2",
    "messages": [{"role": "user", "content": "Hello"}]
  }'

Pythonの例

import requests

response = requests.post('http://localhost:11434/api/chat', json={
    'model': 'llama3.2',
    'messages': [{'role': 'user', 'content': 'Hello'}],
    'stream': False
})

print(response.json()['message']['content'])

こうすれば、ローカルモデルをVS Code拡張や自動化スクリプト、その他のOpenAI API対応ツールに連携できます。


Step 6: 性能の調整

推論が遅い、メモリが足りない——そんなときは、いくつかのパラメータを調整してみましょう。

6.1 GPUアクセラレーション

OllamaはGPUを自動検出して利用します。GPUが認識されない場合は、ドライバが正しくインストールされているか確認してください。

NVIDIA GPU

NVIDIAドライバとCUDAがインストールされていることを確認します。Ollamaは自動で nvidia-smi を呼び出してGPUを検出します。

Apple Silicon Mac

M1/M2/M3 Macは追加設定が不要です。OllamaがMetalアクセラレーションを自動で利用します。

AMD GPU

LinuxではROCm版のOllamaをインストールできます:

curl -L https://ollama.com/download/ollama-linux-amd64-rocm.tgz -o ollama-linux-amd64-rocm.tgz
sudo tar -C /usr/ -xzf ollama-linux-amd64-rocm.tgz

6.2 並列処理の設定

複数のモデルを同時に動かしたい、または並列処理能力を高めたい場合は、環境変数を設定します:

# 同時に動かすモデル数を設定
OLLAMA_NUM_PARALLEL=2 ollama serve

# 同時に読み込む最大モデル数を設定
OLLAMA_MAX_LOADED_MODELS=2 ollama serve

これらのパラメータはマルチユーザー環境に向いており、モデルを頻繁に切り替えるときの読み込み遅延を防げます。

6.3 モデルの量子化

大型モデル(70Bなど)がメモリを消費しすぎる場合は、量子化版を使って使用量を減らせます:

# 4bit量子化版をダウンロード(使用量が約75%削減)
ollama pull llama3.3:70b-q4_K_M

量子化は品質をわずかに下げますが、速度とメモリ使用量は大きく改善します。


よくある問題のトラブルシューティング

展開の過程で問題に出会うことがあります。ここでは特によくあるものをいくつか挙げます。

Q1: モデルのダウンロードがとても遅い

原因:Ollamaの公式サーバーは海外にあり、地域によっては遅くなることがあります。

解決策

  • プロキシを使う
  • またはミラーサイトからGGUFファイルをダウンロードし、手動でOllamaに取り込む

手動インポートの方法:

# GGUFファイルをダウンロードしたら、Modelfileを作成する
FROM ./llama3.2.gguf

# モデルを作成する
ollama create my-llama3.2 -f Modelfile

Q2: Open WebUIがOllamaに接続できない

症状:画面に「Ollama connection failed」と表示される。

確認手順

  1. Ollamaサービスが動作しているか確認する:
curl http://localhost:11434

"Ollama is running" が返るはずです。

  1. Dockerを使っている場合は、ネットワーク設定を確認する:
docker exec -it open-webui curl http://host.docker.internal:11434

通らない場合は、環境変数 OLLAMA_BASE_URL を手動で設定する必要があるかもしれません。

Q3: GPUが認識されない

症状:推論がとても遅く、nvidia-smi でGPUが使われていない。

確認手順

  1. NVIDIAドライバを確認する:
nvidia-smi

GPU情報が表示されるはずです。

  1. OllamaがGPUを認識しているか確認する:
ollama show llama3.2 --system

CPU-onlyと表示される場合は、GPUが認識されていません。

解決策

  • NVIDIAドライバを再インストールする
  • CUDAのバージョン互換性を確認する
  • Linuxでは CUDA_VISIBLE_DEVICES の設定が必要な場合がある

Q4: メモリ不足エラー

症状:大型モデルを動かすと OOM(Out of Memory)エラーが出る。

解決策

  • より小さいモデル(1Bや3Bなど)に変える
  • 量子化版(q4_K_M)を使う
  • swap領域を増やす(Linux)
  • メモリを消費している他のプログラムを閉じる

Q5: Dockerコンテナの起動に失敗する

症状docker ps でコンテナの状態が Exited になっている。

確認手順

コンテナのログを見ます:

docker logs open-webui

よくある原因:

  • ポート競合(3000ポートが他のプログラムに占有されている)
  • ボリュームの権限問題
  • メモリ不足

解決策

  • 別のポートに変える(-p 8080:8080 など)
  • Dockerボリュームの権限を確認する
  • コンテナのメモリ上限を増やす

まとめ

Ollama + Open WebUIでローカルにChatGPT画面を構築する流れは、たったこれだけです:

  1. Ollamaをインストールする(コマンド1つ)
  2. 適切なモデルをダウンロードする(ハードウェアに合わせて選ぶ)
  3. Open WebUIを展開する(Dockerでワンクリック起動)
  4. 会話を始める

構築が終われば、次のものが手に入ります:

  • 無料のAIチャットアシスタント
  • 完全にプライベートなデータ保存
  • オフラインでの利用
  • カスタマイズ可能なモデルパラメータ
  • 拡張可能なナレッジベース(RAG)
  • 連携可能なAPIエンドポイント

この構成は個人の日常利用にも、小規模チームの社内展開にも適しています。さらに深掘りしたい場合は、次のテーマを探ってみてください:

  • Modelfileによるモデル挙動のカスタマイズ
  • 複数モデルの併用(ローカルモデルとOpenAI APIを同時利用)
  • Kubernetesによる本番環境向け展開


参考リソース

問題が出たら、OllamaとOpen WebUIのGitHub Issuesで検索してみてください。コミュニティが活発で、たいていの問題は誰かが答えています。

ローカルChatGPT環境を構築する

OllamaとOpen WebUIを使い、ローカルにChatGPT風のAIチャット画面を構築する

⏱️ 目安時間: 30 分

  1. 1

    ステップ 1: Ollamaをインストールする

    OSに合わせてインストール方法を選びます。

    • macOS/Linux:curl -fsSL https://ollama.com/install.sh | sh
    • Windows:irm https://ollama.com/install.ps1 | iex
    • Docker:docker pull ollama/ollama:latest

    インストール後に ollama --version で確認します。
  2. 2

    ステップ 2: モデルをダウンロードする

    ハードウェア構成に合わせてモデルを選びます。

    • 8GB RAM:ollama pull llama3.2:1b
    • 16GB RAM:ollama pull llama3.2
    • 16GB RAM + GPU:ollama pull llama3.1:8b
    • 日本語/中国語強化:ollama pull qwen2.5:7b
  3. 3

    ステップ 3: Open WebUIを展開する

    Dockerの単一コンテナで展開します。

    docker run -d -p 3000:8080 \
    --add-host=host.docker.internal:host-gateway \
    -v open-webui:/app/backend/data \
    --name open-webui \
    ghcr.io/open-webui/open-webui:main

    またはDocker Composeで2つのコンテナを管理します。
  4. 4

    ステップ 4: 初回設定を行う

    http://localhost:3000 にアクセスします。

    • 管理者アカウントを作成
    • Ollamaサービスを自動検出
    • モデルを選んで会話を開始
  5. 5

    ステップ 5: 応用機能を設定する

    任意の機能です。

    • RAGナレッジベース:PDF/Markdown文書をアップロード
    • API連携:OpenAI互換エンドポイント
    • GPUアクセラレーション:自動検出され、設定不要

FAQ

ローカルでAIを動かすにはどんなハードウェアが必要ですか?
最低でも8GB RAM、Intel i5プロセッサ、10GBのストレージが必要です。推奨は16GB RAM以上で、NVIDIA RTX 3060やApple Silicon Macがあれば性能が向上します。70Bクラスの大型モデルには64GB RAMが必要です。
Ollamaはどのモデルに対応していますか?
主要なオープンソースモデルに対応しています。

• Meta Llamaシリーズ(1B〜70B)
• DeepSeek R1 推論モデル
• Alibaba Qwenシリーズ(中国語/日本語に強い)
• Google Gemma、Mistral など

ollama list でダウンロード済みモデルを確認し、ollama pull で新しいモデルを取得します。
Open WebUIがOllamaに接続できないときは?
まずOllamaサービスが動作しているか確認します(curl http://localhost:11434)。Docker展開ではネットワーク設定を確認し、環境変数 OLLAMA_BASE_URL を http://host.docker.internal:11434 に手動設定する必要がある場合があります。
ローカル展開したAIはオフラインで使えますか?
使えます。モデルをダウンロードした後は完全にオフラインで動作し、ネット接続は不要です。会話履歴やナレッジベースの文書もすべてローカルに保存されるため、出張・旅行・ネットが不安定な環境に適しています。
既存のツール(VS Code拡張など)と連携するには?
OllamaはOpenAI互換API(ポート11434)を提供します。

• エンドポイント:http://localhost:11434/api/chat
• 形式はOpenAI APIと同じ
• Python/Node.jsから直接呼び出し可能

APIアドレスをOpenAIからローカルアドレスに変えるだけで連携できます。

8分で読めます · 公開日: 2026年4月4日 · 更新日: 2026年7月9日

関連記事

コメント

GitHubアカウントでログインしてコメントできます

Easton BlogEaston Blog