Ollama, Open-WebUIのセットアップ
概要
ここでは、AIインフラの導入、GPU設定、DockerおよびLLM(Large Language Model)のセットアップ方法について、具体的な手順と技術的な解説を提供します。
LLM をローカルで実行する理由
LLM をローカルで実行する理由は、次のようなメリットがあるためです。
- コスト効率: OpenAI の GPT-4、Google Gemini などのプロバイダーが提供する大規模な言語モデルを使用している場合、コス トがかかります。 MVP のプロトタイピングや開発には多額のコストはかからないかもしれませんが、最終的には継続的に使用するた めにクレジット カードを登録する必要があります。
- 安全: プライベートな文書や機密文書を扱う企業や組織にとって、LLM をローカルで実行することは状況を大きく変える可能性があります。データを安全な環境から流出させる必要がないため、機密情報を含むタスクに最適です。
- オフライン アクセス: ローカル LLM はインターネット接続なしで動作できます。これは、接続が不十分な地域やインターネット アクセスが制限されている状況で有益です。
- 低遅延: ローカル モデルでは、リモート サーバーにリクエストを送信したり、リモート サーバーからの応答を受信したりす る必要がないため、応答時間が短縮されます。
- カスタマイズと微調整: ローカル展開により、特定のユースケースまたはドメインに合わせてモデルを簡単にカスタマイズおよび微調整できます。
- 規制遵守: 厳格なデータ規制がある業界では、ローカル LLM がデータを制御された環境内に保管することでコンプライアンス の確保を支援できます。
GPUメモリキャパシティの計算とドライバ設定
動作要件等の確認
-
GPUメモリの計算:Calculate GPU memory capacity
- どのLLMを選定するかによって必要となるGPUメモリが変動します。ニーズに合わせて最適なGPU環境を提案します。
-
CUDAのセットアップ:Setup GPU driver (CUDA)
- GPU対応AIモデルのパフォーマンスを最大化するために、CUDAのインストールと設定を行います。
-
安定した通信環境:LLM(大規模言語モデル)のダウンロードには、大きなデータ通信量が必要となります。10-100GB程度のデータダウンロードを要するため、必要に応じてあらかじめ準備を行ってください。
DockerとWSLの準備
-
Dockerインストール:Docker公式サイト
- 環境に最適なDockerの設定を行い、AIモデルを効率的に管理、運用できるようにします。
-
WSL設定の確認
-
.wslconfigに以下のパラメータを追加して、WSL2のネットワークを最適化します。これにより、Dockerコンテナとの通信が円滑になります。[wsl2] networkingMode=mirrored
設定を確認するには、次のようにテキストエディターで開きましょう。
code (wslpath "$(wslvar USERPROFILE)\.wslconfig")詳細な設定方法については、WSLの高度な設定をご参照ください。
-
-
DockerコンテナがWSL2内で接続できない問題のトラブルシューティングについてはこちら。
Ollamaのセットアップ
Ollamaのインストールとサーバー起動
-
Ollamaインストール:
# Install Ollama using script curl -fsSL https://ollama.com/install.sh | sh # Or install with Homebrew brew install ollama # ollama serve -
モデルの選定と実行:
ollama list set model llama3.2:latest # set model hermes3:latest # Uncensored # ollama install $model # You can skip ollama pull $model # Start interaction # サンプルプロンプトで動作確認 ollama run $model "AI導入における効果的な戦略を教えてください" -
HTTPリクエストを使ったAPI実行:
curl -X POST http://localhost:11434/api/generate -d '{ "model": "$model", "prompt": "AIのトレンドに関する説明" }'
Open Web UIのセットアップ
Open Web UI は、OllamaをベースにLocalLLMをブラウザ上で実行するソフトウェアです。履歴の保持や、Markdownレンダリングなど、機能上の豊富なメリットがあります。
Open Web UIのDockerによるインストール
-
GPU対応のセットアップ: Dockerを使用してGPU対応のOpen Web UIをインストールします。
docker run -d -p 3000:8080 --gpus all --add-host=host.docker.internal:host-gateway \ -v open-webui:/app/backend/data --name open-web-ui --restart always \ ghcr.io/open-webui/open-webui:cuda -
Web UIの起動: ブラウザでUIにアクセスするには以下のコマンドを使用します。
docker run -d -p 3000:3000 openwebui/ollama
カスタムモデルの設定
-
LM Studioで導入したモデルの変換:
set model_dir '/mnt/f/.cache/lm-studio/models' cd $model_dir set model_path (fd -t f --exec basename {} .gguf | fzf) set model (basename $model_path) mkdir -p ~/.ollama/user_custom echo "FROM $model_path" > ~/.ollama/user_custom/$model ollama create $model -f $model_path
その他の設定と最適化
Intel CPU向け高速化設定(IPEX-LLM)
- Intel CPUでのLLMパフォーマンス最適化:IPEX-LLMの詳細 | Intel CPUでLLMを高速に動作させるための方法はこちらを参照してください。
文書スキャンディレクトリの設定
-
スキャン用ディレクトリの指定:ドキュメントのスキャンディレクトリの設定や、Web検索機能、タスクモデルの設定も含め、ユーザーの用途に応じた設定が可能です。
set DOCS_DIR /data/docs
Web検索機能の有効化とTTS(Text-to-Speech)設定
-
Web検索を有効にする:音声合成(TTS)や音声認識(STT)の設定も可能です。
WEBUI_URL=https://localhost:3000/?models=<model_id>&q=%s検索結果をWeb UIで確認できるようにします。
Ref.:
カスタムモデルの使用(GGUF)
-
モデルのデータ形式の変換: GGUF形式のモデルをOllamaで使用するには、以下の手順でモデルをカスタマイズします。Huggingface.coや、LM Studioで導入したモデルが該当します。
# モデルの検索と設定 set model_dir '/mnt/f/.cache/lm-studio/models' cd $model_dir set model_path ( fd -t f --exec basename {} .gguf | fzf ) set model (basename $model_path) # モデルインデックスディレクトリの作成 set index_path ~/.ollama/user_custom mkdir -p $index_path # カスタム設定ファイルの作成 echo "FROM $model_path" > $index_path/$model # GGUFからOllamaモデルを作成 ollama create $model -f $model_path
トラブルシューティング
再度インストールスクリプトを実行して、更新しましょう。 ただし、標準設定の場合、インストールしたモデルも上書きされる点に注意しましょう。
- 更新
# Install Ollama using script curl -fsSL https://ollama.com/install.sh | sh
アンインストール手順
-
Open Web UIを完全に削除:
# Remove all containers, images, and volumes docker system prune -a --volumes