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 1B | 1B | 740MB | ollama run llama3.2:1b |
| 8GB RAM、GPUなし | Gemma 3 2B | 2B | 1.4GB | ollama run gemma3:2b |
| 16GB RAM | Llama 3.2 3B | 3B | 2GB | ollama run llama3.2 |
| 16GB RAM | Qwen 2.5 7B | 7B | 4GB | ollama run qwen2.5:7b |
| 16GB RAM + GPU | Llama 3.1 8B | 8B | 4.7GB | ollama run llama3.1:8b |
| 32GB RAM + GPU | DeepSeek R1 14B | 14B | 8GB | ollama run deepseek-r1:14b |
| 64GB RAM + GPU | Llama 3.3 70B | 70B | 39GB | ollama 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が検索できるナレッジベースに変える仕組みです。
使い方:
- 左側の「Documents」タブをクリック
- 「Upload」をクリックしてファイルを選ぶ(PDF、Markdown、TXT、DOCXに対応)
- ファイルがアップロードされると、システムが自動で処理してインデックスを作成
アップロードが終わったら、会話時に「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」と表示される。
確認手順:
- Ollamaサービスが動作しているか確認する:
curl http://localhost:11434
"Ollama is running" が返るはずです。
- Dockerを使っている場合は、ネットワーク設定を確認する:
docker exec -it open-webui curl http://host.docker.internal:11434
通らない場合は、環境変数 OLLAMA_BASE_URL を手動で設定する必要があるかもしれません。
Q3: GPUが認識されない
症状:推論がとても遅く、nvidia-smi でGPUが使われていない。
確認手順:
- NVIDIAドライバを確認する:
nvidia-smi
GPU情報が表示されるはずです。
- 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画面を構築する流れは、たったこれだけです:
- Ollamaをインストールする(コマンド1つ)
- 適切なモデルをダウンロードする(ハードウェアに合わせて選ぶ)
- Open WebUIを展開する(Dockerでワンクリック起動)
- 会話を始める
構築が終われば、次のものが手に入ります:
- 無料のAIチャットアシスタント
- 完全にプライベートなデータ保存
- オフラインでの利用
- カスタマイズ可能なモデルパラメータ
- 拡張可能なナレッジベース(RAG)
- 連携可能なAPIエンドポイント
この構成は個人の日常利用にも、小規模チームの社内展開にも適しています。さらに深掘りしたい場合は、次のテーマを探ってみてください:
- Modelfileによるモデル挙動のカスタマイズ
- 複数モデルの併用(ローカルモデルとOpenAI APIを同時利用)
- Kubernetesによる本番環境向け展開
参考リソース
- Ollama 公式サイト
- Ollama モデルライブラリ
- Open WebUI GitHub
- Ollama GitHub
- freeCodeCamp チュートリアル
- DataCamp Open WebUI チュートリアル
問題が出たら、OllamaとOpen WebUIのGitHub Issuesで検索してみてください。コミュニティが活発で、たいていの問題は誰かが答えています。
ローカルChatGPT環境を構築する
OllamaとOpen WebUIを使い、ローカルにChatGPT風のAIチャット画面を構築する
⏱️ 目安時間: 30 分
- 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: モデルをダウンロードする
ハードウェア構成に合わせてモデルを選びます。
• 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: 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: 初回設定を行う
http://localhost:3000 にアクセスします。
• 管理者アカウントを作成
• Ollamaサービスを自動検出
• モデルを選んで会話を開始 - 5
ステップ 5: 応用機能を設定する
任意の機能です。
• RAGナレッジベース:PDF/Markdown文書をアップロード
• API連携:OpenAI互換エンドポイント
• GPUアクセラレーション:自動検出され、設定不要
FAQ
ローカルでAIを動かすにはどんなハードウェアが必要ですか?
Ollamaはどのモデルに対応していますか?
• Meta Llamaシリーズ(1B〜70B)
• DeepSeek R1 推論モデル
• Alibaba Qwenシリーズ(中国語/日本語に強い)
• Google Gemma、Mistral など
ollama list でダウンロード済みモデルを確認し、ollama pull で新しいモデルを取得します。
Open WebUIがOllamaに接続できないときは?
ローカル展開したAIはオフラインで使えますか?
既存のツール(VS Code拡張など)と連携するには?
• エンドポイント:http://localhost:11434/api/chat
• 形式はOpenAI APIと同じ
• Python/Node.jsから直接呼び出し可能
APIアドレスをOpenAIからローカルアドレスに変えるだけで連携できます。
8分で読めます · 公開日: 2026年4月4日 · 更新日: 2026年7月9日
Ollama シリーズ: ローカル LLM の導入、設定、アプリケーション実戦
検索からこのページに来た場合は、前後の記事もあわせて読むと同じテーマの理解がかなり早く深まります。
前の記事
Ollama マルチモデル並列実行:Qwen、Llama、DeepSeek 設定実践
Ollama でのマルチモデル並列実行の設定方法を詳しく解説。Qwen、Llama、DeepSeek の特徴と適したシーンを比較し、GPU メモリ管理のコツを共有して、賢いモデル切り替えシステムを構築します。
第 11 / 19 記事
次の記事
Ollama API 呼び出し:curl から OpenAI SDK 互換インターフェースまで
Ollama API を呼び出す2つの方法を学びます:ネイティブ REST API(curl)と OpenAI SDK 互換インターフェース。完全なコード例、ストリーミング応答の処理、ベストプラクティスを解説します。
第 13 / 19 記事


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