【ローカルLLM実装への道】第5回:Webユーザーインターフェースを通したローカルLLMの利用

はじめに

こんにちは。SCSKの松谷です。SCSKに新卒で入社し、今年で3年目になります。

本連載では、ローカルLLM実装に向けた検証過程の具体的な作業内容や得られた知見を共有していきます。
第0回で記載したローカルLLM実装の手順は以下の通りでした。

  • 1. CUDA Toolkit, NVIDIAドライバのインストール(第1回)
  • 2. Dockerのインストール(第2回)
  • 3. NVIDIA Container Toolkitのインストール(第3回)
  • 4. OllamaによるローカルLLMの実行(第4回)
  • 5. Ollama + Open WebUIによるローカルLLMの実行(第5回) ←今回はここ!

第5回の今回は、「Open WebUI」というソフトウェアを利用して、ローカルLLMをWebユーザーインターフェースを通して実行できるようにした際の内容などについて記載しています。

検証機のスペック

項目 説明
1 OS Rocky Linux 8.10(Green Obsidian)
2 CPUコア数 8
3 メモリ容量 32GB
4 ディスク容量 300GB
5 GPU NVIDIA A100 PCIe 40GB

Open WebUIについて

Open WebUIは、OllamaなどのLLM実行ツールをサポートする、ChatGPTライクなWebユーザーインターフェースです。拡張性が高く、豊富な機能を持っています。

今回はこのOpen WebUIを利用して、ローカルLLMをWebユーザーインターフェースを通して実行できるようにします。

Open WebUIの利用

Open WebUIコンテナの実行

以下公式サイトより、Open WebUIの実行方法を確認します。

Open WebUI

Installation with Default Configuration

  • If Ollama is on your computer, use this command:
  docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
  • To run Open WebUI with Nvidia GPU support, use this command:
  docker run -d -p 3000:8080 --gpus all --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:cuda

第4回でOllamaコンテナが起動されているので、[If Ollama is on your computer, use this command:]の方法でOpen WebUIコンテナを実行します。

第1回第2回第3回第4回の作業が完了していることを前提としています。)

   [matsutani@aitest~]$docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway
   -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-
   webui:main
   Unable to find image'ghcr.io/open-webui/open-webui:main'locally
   main: Pulling from open-webui/open-webui
   fllcladaa26e: Pull complete
   4ad0c7422f5c: Pull complete
   f2bf536ale4f: Pull complete
   3bdbfec22900: Pull complete
   83396b6ad4cc: Pull complete
   82b2e523b77f: Pull complete
   4f4fb700ef54: Pull complete
   dc24a9093del: Pull complete
   dd27fb166be3: Pull complete
   958fcb957c53: Pull complete
   efc8fa688c26: Pull complete
   6d294f19d16c: Pull complete
   c3fb7088c0dc: Pull complete
   aade4450ce21: Pull complete
   c14c2ff568e1: Pull complete
   462a55659886: Pull complete
   Digest: sha256:4d89fa0ea85a86e5flc25dcdac3c810e433ebaflf77d6a4cb667d07489ad3e7c
   Status: Downloaded newer image for ghcr.io/open-webui/open-webui:main
   e698d17c5a9557365d4375ca50051664934b782624bfddcc7493bb319aa8fcf5

実行したコマンドである docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open- webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main の解釈は以下のようになります。

項目 説明
docker run コンテナを起動する
-d コンテナをバックグラウンドで実行する
-p 3000:8080 ホストマシンの3000ポートとコンテナの8080ポートを紐づける
--add-host= host.dock ie.rnterna !:host-gateway コンテナがホストマシンと通信できるようにする
-v open-webui:/app/backend/data open-webuiというボリューム領域をコンテナの/app/backend/dataディレクトリにマウントする
--name open-webui 実行するコンテナの名前を「open-webui」にする
--restarta lways コンテナが停止した場合、自動的に再起動するようにする
ghcr.io/open-webui/open-webui:main コンテナイメージ「ghcr.io/open-webui/open-webui:main」を指定する

これでOpen WebUIコンテナが起動され、ブラウザからアクセスする準備が整いました!

Open WebUIにアクセス

http://ホストマシンのIPアドレス:3000にブラウザから接続すると以下のような画面が表示されます。

http://ホストマシンのIPアドレス:3000にブラウザから接続すると以下のような画面が表示されます。

[Sign up]をクリックして、アカウントを作成してログインします。最初に作成されたアカウントは管理者となり、ユーザー管理・システム管理(後述)が可能です。

[Sign up]をクリックして、アカウントを作成してログインします。

ログインするとChatGPTライクな画面を確認できます。

ログインするとChatGPTライクな画面を確認できます。

画面左上の[モデルを選択]でOllamaでダウンロードしたモデルを選択できるので、選択してチャットをすることができます。

ログインするとChatGPTライクな画面を確認できます。

各種機能について

Open WebUIにある様々な機能のうちのいくつかをご紹介します。

ユーザー管理

Open WebUIでは、最初に作成されたアカウントが管理者権限を持ち、ユーザー管理を行います。

後続のユーザーがアカウントを作成すると以下のような画面が表示され、「保留」状態になります。表示されている管理者のメールアドレスに対して承認を依頼しましょう。

ユーザー管理

管理者は承認の依頼が来たら、管理者パネルから、ユーザーの承認を行います。

管理者としてOpen WebUIにログインし、画面右上の[コーザーアイコン]→[管理者パネル]をクリックします。

管理者としてOpen WebUIにログインし、画面右上の[コーザーアイコン]→[管理者パネル]をクリックします。

承認依頼をしてきたユーザーが「保留中」となっているので、その部分をクリックすると「ユーザー」となります。
利用可能になったことをユーザーに連絡しましょう。

承認依頼をしてきたユーザーが「保留中」となっているので、その部分をクリックすると「ユーザー」となります。

管理者による承認後、ユーザーはOpen WebUIにログインできます。

管理者による承認後、ユーザーはOpen WebUIにログインできます。

モデルのダウンロード

モデルのダウンロードは、Ollamaからだけではなく、Open WebUIからも可能です。
管理者アカウントでOpen WebUIにログインし、画面右上の[コーザーアイコン]→[設定]をクリックします。

モデルのダウンロードは、Ollamaからだけではなく、Open WebUIからも可能です。

[管理者設定]をクリックします。

[管理者設定]をクリックします。

[モデル]タブの[Ollama.comからモデルをプル]にOllamaがサポートしているモデル名を入力し、[ダウンロードアイコン]をクリックすると、モデルのダウンロードが可能です。

[モデル]タブの[Ollama.comからモデルをプル]にOllamaがサポートしているモデル名を入力し、[ダウンロードアイコン]をクリックすると、モデルのダウンロードが可能です。

おわりに

今回は、第5回として「Webユーザーインターフェースを通したローカルLLMの利用」に焦点を当て、紹介しました。
Open WebUIによってローカルLLMをWebユーザーインターフェースを通して実行できるので、ローカルLLM利用のハードルを大幅に下げることができました!
所属組織の方々にも積極的に利用していただこうと思います!

著者プロフィール

著者プロフィール画像

松谷 康平(まつたに こうへい)
SCSK株式会社 インフラエンジニア
2023年に新卒で入社。現在はお客様のインフラ環境の構築を担当。
所属組織では、AI検証活動を積極的に行っている。

お問い合わせ・資料請求

お問い合わせ、資料のダウンロード、PoCお申し込みはこちらから