所要時間: 約30分 | 難易度: ★★☆☆☆

この記事で作るもの

  • インターネット不要で機密情報を放り込んでも安心な、自分専用のChatGPTクローン環境を構築します。
  • 前提知識:ターミナルでコマンドをコピペできる、Dockerの概念をなんとなく知っている。
  • 必要なもの:Windows/Mac/Linux PC、インターネット接続(モデルのダウンロード用)。

📦 この記事に関連する商品(楽天メインで価格確認)

GeForce RTX 4060 Ti 16GB

VRAM 16GB搭載で、現行の主要ローカルLLMを安価かつ快適に動かせるため

楽天で価格を見る Amazonでも確認

※アフィリエイトリンクを含みます

先に確認するスペック・料金

ローカルLLMを動かす上で、CPUよりも重要なのがGPUのビデオメモリ(VRAM)です。 VRAMが8GBあれば「Llama 3.1 8B」などの標準的なモデルが快適に動きますが、12GBから16GBあると業務利用でもストレスがありません。 私の検証では、RTX 4060 Ti (16GB) が現時点での「コスパ最強の入門機」で、これなら量子化された30Bクラスのモデルもなんとか動かせます。

Macユーザーなら、メモリ(ユニファイドメモリ)が16GB以上のApple Silicon搭載機(M1/M2/M3/M4)を強く推奨します。 メモリ8GBのMacBook Airでも動きますが、推論中にブラウザやSlackが重くなり、実用性はかなり厳しいのが本音です。 一方、一度環境を作ってしまえば、電気代以外のランニングコストは0円。 API料金の変動や、OpenAIの規約変更に怯える必要がなくなるのは大きなメリットです。

なぜこの方法を選ぶのか

ローカルLLMを動かすツールには「LM Studio」や「AnythingLLM」もありますが、私は「Ollama + Open WebUI」の組み合わせがベストだと考えています。 理由は、Ollamaがモデル管理とAPIサーバーとしての機能を完璧に切り離しており、Open WebUIが本家ChatGPTに最も近い操作感を提供してくれるからです。

特にOpen WebUIは、複数のモデルを切り替えて比較したり、過去のチャット履歴を検索したり、自前のPDFを読み込ませるRAG(検索拡張生成)機能が標準で備わっています。 エンジニアが仕事で使うなら、単一のアプリで完結するツールよりも、コンテナで切り離して拡張できるこの構成が最も「潰し」が効きます。 将来的に別のフロントエンドを試したくなった時も、バックエンドのOllamaはそのまま流用できるため、再構築の手間がありません。

Step 1: 環境を整える

まずはモデルの実行エンジンとなる「Ollama」をインストールします。 公式サイトからインストーラーを落としても良いですが、パッケージマネージャーを使うのが後々の管理が楽です。

# macOSの場合(Homebrewを使用)
brew install ollama

# Linuxの場合
curl -fsSL https://ollama.com/install.sh | sh

Windowsの場合は、公式サイトからexeファイルをダウンロードして実行してください。 インストール後、ターミナル(またはコマンドプロンプト)で以下のコマンドを叩き、バージョンが表示されれば成功です。

ollama --version

次に、UIを動かすための「Docker」を準備します。 Open WebUIを直接PCにインストールしようとすると、Pythonのライブラリ競合やビルドエラーで100%ハマります。 私は最初、ネイティブ環境で作ろうとして依存関係の沼に落ち、2時間を無駄にしました。 Dockerを使えば、コマンド一つで検証済みの環境が手に入ります。

⚠️ 落とし穴: WindowsでWSL2を使っていない場合、Docker Desktopの動作が著しく重くなることがあります。 必ず「WSL2ベースのエンジン」が有効になっているか設定を確認してください。 また、GPUを使いたい場合は「NVIDIA Container Toolkit」のインストールが必須です。これを忘れるとCPU推論になり、レスポンスが10倍以上遅くなります。

Step 2: 基本の設定

OllamaとDockerが準備できたら、Open WebUIを起動します。 今回は、Ollamaが同じPC内で動いていることを前提とした、最も標準的な設定で行きます。

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

このコマンドの意味を解説します。

  • -p 3000:8080: PCの3000番ポートでWeb画面を開けるようにします。
  • --add-host: コンテナの中から「外側のPC(Ollama)」にアクセスするための設定です。
  • -v: チャット履歴や設定をPC内に保存します。これを忘れると、コンテナを止めるたびにデータが消えます。

起動したら、ブラウザで http://localhost:3000 にアクセスしてください。 最初の画面でアカウント作成を求められますが、これは「自分のPC内だけ」のデータなので、適当なメールアドレスとパスワードで大丈夫です。 外部に送信されることはありません。

Step 3: 動かしてみる

ログインできたら、まずは頭脳となるモデルをダウンロードしましょう。 画面左上のモデル選択メニュー、または設定の「モデル」から、以下の名前を入力してプル(Pull)します。

  • llama3.1:8b (Meta製の標準モデル。バランスが良い)
  • qwen2.5:7b (アリババ製。日本語能力が非常に高い)
# ターミナルから直接プルする場合
ollama pull llama3.1

ダウンロードが完了したら、チャット画面でモデルを選択して「こんにちは、あなたの得意なことは何ですか?」と投げてみてください。

期待される出力

こんにちは!私はLlama 3.1ベースのAIモデルです。
私はプログラミングのコード生成、文章の要約、データ分析の補助などが得意です。
ローカル環境で動作しているため、あなたのデータを外部に送信することなく回答できます。

レスポンスが1秒間に20トークン(文字)以上出ていれば、GPUが正しく認識されています。 もし1文字ずつゆっくり出てくる場合は、GPUが使われずCPUで処理されている可能性が高いです。 その場合はDockerの起動オプションに --gpus all を追加し、NVIDIAのドライバーが最新か確認してください。

Step 4: 実用レベルにする

単なるチャットボットで終わらせるのはもったいないです。 Open WebUIの最大の武器は「ドキュメント機能(RAG)」です。 画面左側の「ドキュメント」に、会社の規約PDFや、自分が過去に書いた技術メモのMarkdownをアップロードしてみてください。

アップロード後、チャット欄で #(ハッシュ)を入力すると、アップロードしたファイルがリストアップされます。 ファイルを選択して「この資料の内容を3行で要約して」と指示を出すと、AIがその中身を読み取って回答します。 これはGPT-4oなどのクラウドAIに機密情報を投げられない現場において、唯一の解決策になります。

私はこの機能を使い、200ページ以上ある古いシステムの設計書を全てローカルに食わせています。 「この変数の定義はどこ?」といった質問に数秒で答えてくれるため、ドキュメントを検索する時間がほぼゼロになりました。

# RAGの精度を上げるためのTips
# 設定 > 文書 から、埋め込みモデル(Embedding Model)を「mxbai-embed-large」に変更すると
# 日本語の検索精度が劇的に向上します。デフォルトよりもこちらを推奨します。

よくあるトラブルと解決法

エラー内容原因解決策
Connection ErrorDockerからOllamaが見えていない--add-host オプションが正しいか確認
回答がめちゃくちゃ遅いCPUで動作しているNVIDIA Container Toolkitを入れ直す
モデルが見つからないollama pull が完了していないターミナルで ollama list を確認
日本語が不自然モデルが日本語に最適化されていないqwen2.5gemma2 を試す

次のステップ

ここまでできれば、あなたのPCの中に「絶対に嘘をつかない(外部に漏らさない)秘書」が誕生したことになります。 次に挑戦してほしいのは、プロンプトのテンプレート化です。 Open WebUIには「プロンプト」というメニューがあり、よく使う指示(コードレビュー、メール作成、翻訳など)を登録しておけます。

また、もしあなたがエンジニアなら、VS Codeの拡張機能「Continue」をインストールしてみてください。 今回構築したOllamaのURLを指定するだけで、GitHub Copilotのようなコード補完が「無料・ローカル」で実現します。 月額$20を払わなくても、自分だけの開発パートナーが手に入る。 これがローカルLLM環境を構築する最大の醍醐味だと、私は確信しています。

よくある質問

Q1: 電気代はどれくらいかかりますか?

RTX 4090でフル回転させると450Wほど消費しますが、チャットの推論中だけです。 1日2時間ガッツリ使っても月数百円程度。APIを従量課金で叩きまくるよりは、私の経験上圧倒的に安上がりです。

Q2: 会社で使ってもバレませんか?

通信はPC内で完結するため、ネットワーク管理者から「OpenAIにデータを送っている」と疑われることはありません。 ただし、モデルのダウンロードには数GBの通信が発生するため、そこだけは注意が必要です。

Q3: どのモデルが日本語最強ですか?

現時点では Qwen2.5-7B-Instruct が非常に優秀です。 敬語の不自然さが少なく、日本の商習慣を理解した回答をしてくれます。 Metaの Llama3.1-8B も良いですが、少し英語直訳調になる傾向があります。


あわせて読みたい