Open-WebUI ( Ollamaバンドル版 ) の動作環境の構築

解説

DGX Spark に、Ollama バンドル版の Open-WebUI の動作環境を構築する方法についてまとめます。

Open-WebUI の実行環境として、開発元から提供されているDockerイメージを利用します。

Dockerの権限設定

sudoを使わずにdocker操作ができるように、dockerグループにユーザーを追加します。

以下のコマンドを実行し、sudoを使わずにコンテナを操作できるか確認します。


「permission denied (・・・以降略・・・」と表示された場合は、以下のコマンドを実行し、dockerグループにユーザーを追加します。


以下のコマンドを実行し、グループの変更を適用します(もしくは、OSを再起動します)。

Open-WebUI コンテナ起動コマンド

Open-WebUI Dockerイメージのコンテナ起動コマンドは、開発元ページに記載があり、以下です。


コマンドオプション解説

-d
Detachモードで実行します。コンテナをバックグラウンドで起動します。
-p 3000:8080
ホストのポート3000にアクセスすると、コンテナの内部でポート8080で動作しているアプリケーションに接続します。
--gpus=all
NVIDIA GPUサポート付きで実行します。
-v ollama:/root/.ollama
Dockerボリューム「ollama」をコンテナの「/root/.ollama」ディレクトリとしてマウントします。 Ollamaは、LLMモデルを「/root/.ollama」ディレクトリ内に保存します。コンテナを削除してもLLMモデルが削除されないように、Dockerボリュームをマウントします。Dockerボリュームは、Dockerが管理するボリュームです。
-v open-webui:/app/backend/data
Dockerボリューム「open-webui」をコンテナの「/app/backend/data」ディレクトリとしてマウントします。 Open-WebUIは、チャット履歴や設定ファイルを「/app/backend/data」ディレクトリ内に保存します。コンテナを削除してもチャット履歴や設定ファイルが削除されないように、Dockerボリュームをマウントします。Dockerボリュームは、Dockerが管理するボリュームです。
--name open-webui
起動したコンテナに「open-webui」という名前を付けます。
--restart always
コンテナが停止したら再起動します。OSを再起動したとき、コンテナが異常終了したとき、Dockerデーモンを再起動したとき、本コンテナは再起動します。
ghcr.io/open-webui/open-webui:ollama
起動するコンテナの元となるイメージとして、Ollamaバンドル版のOpen-WebUIを指定します。

Open-WebUI コンテナ起動スクリプトファイルの作成

コンテナ起動コマンドは文字数が多いので、実行する際にタイピングするのが少し面倒です。短い文字数のタイピングで実行できるようにスクリプトファイル化します。

今回は「docker-run-openwebui.sh」というスクリプトファイルを作成することとしました。

「docker-run-openwebui.sh」というスクリプトファイルを作成し、内容を以下のようにします。

以下のコマンドを実行し、スクリプトファイルに実行権限を付与します。

Open-WebUI コンテナの起動

以下のコマンドを実行し、Open-WebUI コンテナを起動します。


初回のコンテナ起動は、コンテナイメージのダウンロードと解凍が行われるため、時間を要します。

コンテナが起動すると、コンテナはバックグラウンドで起動され、ホスト上での作業のままです。

Open-WebUI にブラウザからアクセス

同一ネットワーク上のPCのブラウザアプリ(ChromeやEdge)から、
http://[DGX Spark のホスト名]:3000
にアクセスします。

Open-WebUI の画面が表示されます。

「はじめる」をクリックします。

「管理者アカウント作成」画面が表示されます。

「名前」「メールアドレス」「パスワード」を入力し、「管理者アカウントを作成」ボタンをクリックします。
(「Open WebUIは外部接続は行わず、データはローカルでホストされているサーバー上に安全に保持されます。」
 すなわち、作成される管理者アカウントのデータ、チャット履歴は、ローカルでホストされているサーバー上にのみ保存されます。)

チャット画面が表示されます。

モデルのダウンロードと選択

画面上部の「モデルを選択」をクリックします。



「モデルを検索」フィールドに、「gpt-oss:20b」と入力します。



「Ollama.comから"gpt-oss:20b"をプル」をクリックします。



モデルのダウンロードが完了するまで待ちます。
モデルのダウンロードが完了したら、「gpt-oss:20b」を選択します。




画面上部の「モデルを選択」プルダウンから、LLMモデルを選択します。

メッセージ入力欄にテキストを入力し、エンターキーを押下すると、応答が開始します。

LLMモデルとのチャット

画面上部の「モデルを選択」プルダウンから、LLMモデルを選択します。

メッセージ入力欄にテキストを入力し、エンターキーを押下すると、応答が開始します。

「大規模言語モデルについて教えてください。」と入力し、回答を生成した画面

参考) クリーンアップ

構築した「Open-WebUI の動作環境」を削除したい場合は、以下を実施します。

以下のコマンドを実行し、Open-WebUI コンテナを停止し、削除します。


以下のコマンドを実行し、Open-WebUI Dockerイメージを削除します。


以下のコマンドを実行し、Dockerボリューム「ollama」と「open-webui」を削除します。


以上で、構築した「Open-WebUI の動作環境」が削除されます。

参考ウェブサイト

WEBサイト コメント
Open WebUI with Ollama | DGX Spark NVIDIA社のAI開発者向けポータルサイト上の DGX Spark で Ollamaバンドル版Open WebUI を動かす手順の説明