
自分のPCのローカル環境で大規模言語モデル(LLM)を動かしてみたい、と思ったことはないだろうか。
そんな願いを叶える無料アプリが「Open WebUI」である。
「Open WebUI」は、ChatGPTライクな使いやすいUIで、Llama 3やMistral、GemmaなどのオープンソースLLMをローカル環境で簡単に使うことができる。
ローカルでLLMを動かせるため、プライバシーの観点からもそのメリットは大きい。クラウド上に送信するには怖いデータも、ローカルLLMなら遠慮なくチャットに突っ込める。
また、ローカルモデルに加えて、OpenAI互換のAPIもサポートしており、OpenAIのGPT-4 Turbo、Groq CloudのLlama 3 70Bなど、クラウド上のLLMもAPIを通して利用することができる。
LlamaやMistralなどのローカルLLMを、ChatGPTやClaude 3と遜色ない美麗なインターフェースで快適に使える上に、APIを経由してGPT-4などを従量課金で利用することで、ChatGPTやClaude 3などの月額契約が不要になるというメリットも大きい。
しかし、「Open WebUI」は、インストールにあたってDocker Desktopなどの開発ツールが必要で、プログラミング経験がない人にとっては、若干インストール作業が難しく感じるかもしれない。
そこでこの記事では、プログラミングやローカルLLMの知識ゼロのユーザーを念頭に、「Open WebUI」の導入方法を分かりやすく丁寧に解説する。
今回はM3 Mac Book Airで実行しているが、AppleシリコンのM1, M2, M3チップを積んだMacなら、すべて同じ手順で導入できるはずである。
また、基本的な手順はWindows PCでも共通しているので、OSが違ってもあまり支障はないはずだ。
この記事の手順を真似していくだけで、簡単にあなたのPC・Macに「Open WebUI」を導入し、Metaが開発する最新の生成AIであるLlama 3 8Bモデルをローカルで動かし、さらにOpenAIのGPT-4 TurboのAPIも動かしてみることができる。
下準備:LLMをローカル使用する「Ollama」の導入
Open WebUIの導入に先立って、まずは最新のバージョンの「Ollama」がインストールされていることを確認する。
「Ollama」は、Llama3やMistral、Phiなどのオープンソースの大規模言語モデル(LLM)を、手元のPCやサーバーでローカルに実行できるツールだ。
現状、最も手軽で簡単に、代表的な大規模言語モデルをローカルにダウンロードして、自分のPC上で動作させることができるツールだと思う。
Ollama単体では、チャット風のインターフェースは存在せず、「ターミナル」などのコマンドラインインターフェース上でLLMを動かすことになるが、後ほど、これをOpen WebUIに接続して使うことになる。
まずは、Ollamaの公式ページにアクセスして、アプリをダウンロードする。

ダウンロードした.zip
ファイルを回答したら、Ollamaのアプリケーションファイルが出てくるので、Macの「アプリケーション」フォルダなどに移動して、アプリを起動する。
すると、以下のようにコマンドラインツールをインストールするよう促されるので、「Install」をクリックする。
「Install」をクリックすると、管理者権限でのパスワード入力を求められるので、パスワードを入力してOKする。

以上で、Macの「ターミナル」アプリで、Ollamaのコマンドを利用できるようになった。
Ollamaのコマンドを使うと、たった1行のコマンドで、好きな大規模言語モデル(LLM)を簡単にダウンロードして、使用することができるようになる。
それでは、まず「ターミナル」を起動して欲しい。
ターミナルを起動してすぐ、ollama run llama3
というコマンドを打ち込むと、初回はLlama 3の8Bモデルのダウンロードが勝手に開始される。4GB超のサイズのダウンロードなので、少し時間がかかるので、ちょっと待っておこう。
ダウンロードが完了したら、直ちにターミナル上でLlama 3との会話が可能になるが、コマンドライン上ではなく、あとで「Open WebUI」の画面でやりとりしたいので、一旦/bye
というコマンドを打つことで、Llama 3とのチャットを終了しておく。

Ollamaのアプリが起動されており、正しくOllamaが動作していれば、SafariやChromeで以下のURLにアクセスしたとき、「Ollama is running」というメッセージが表示されるはずである。
http://127.0.0.1:11434/
正しく「Ollama is running」と表示されていれば、次のステップに進もう。
下準備:Docker Desktopのインストール
Ollamaに加えて、もう一つの下準備として、「Docker Desktop」というアプリのインストールが必要になる。
Docker Desktopは、アプリを開発する際などに、開発環境を「コンテナ」というパッケージにして、いつでもオンオフを切り替えたり、他人と簡単に共有したりできるようにするツールである。
「Open WebUI」を動作させるための環境が、丸ごと「コンテナ」として用意・配布されているため、Open WebUIをインストールするためには、Docker Desktopを使ってこのコンテナをコピーしてくることが必須になるのだ。
複雑に聞こえるが、要するにDocker Desktopの公式サイトから、アプリをダウンロードすればいいだけだ。

今回はM3 Mac Book Airで試しているので、Macの「アップルチップ」向けのアプリをダウンロードする。
Docker.dmg
がダウンロードされるので、これをクリックしてインストールを進めると、以下のようにDocker Desktopが起動できる。
画面左側にコンテナ、イメージなどのメニューがあり、「コンテナ」で自分のPCの中にさまざまな仮想環境を作ることができる。
(以下の筆者の画面では、2つのコンテナが動作しているが、初回インストール時には、何も表示されていないはず)

ここまで準備できたら、いよいよ「Open WebUI」本体のインストール作業に入る。
Open WebUIのインストール手順
Open WebUIのインストールは、手順を読むと複雑に感じるかもしれないが、意外と簡単だ。
上記でインストールしたDocker Desktopを活用して、Open WebUI用のコンテナを作成し、その後ブラウザで使用するという流れになっている。
以下の解説を参考に進めれば、おそらく3分もかからずに完了するだろう。
Open WebUI用のDockerコンテナの作成
初めてDockerを使う人にとっては、何が起きているのか全然分からないかもしれないが、手順自体は非常にシンプルで、あっという間に終わる。
「ターミナル」を開いて、Dockerコンテナを作成するコマンド1つを打ち込むだけで、Open WebUIを簡単にインストールすることができる。
インストール方法は公式のドキュメントでも解説されているが、上記の解説通りに作業を進めてきた人であれば、すでにOllamaが自分のPC・Macにインストールし終わっているはずなので、以下のコマンドを使用してOpen WebUIのコンテナを作成するだけで良い(記事執筆時点:2024/4/20)。
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
ターミナルに上記のコマンドを入力してEnterを押すと、以下のように何やら英語の文字列が次々と出てきて、必要なダウンロードが始まるはずである。

あっという間にすべてのダウンロードが完了(”Pull complete”)して、「ターミナル」が再び入力待ちの状態になったら、これにてOpen WebUIのインストール作業は終了だ。
Docker Desktopを開いて、先ほどのコンテナ一覧を見てみると、「openwebui」というコンテナが「Running」状態になっているはずだ。

問題なくコンテナ一覧に表示されていれば、インストールは成功だ。
ブラウザでOpen WebUIを起動
Docker Desktopで「openwebui」コンテナが動作してさえいれば、SafariやChromeなどのブラウザで、以下のURLを開くだけで、Open WebUIを起動することができる。
http://localhost:3000
最初にOpen WebUIのサインイン画面が表示されるが、初回はアカウントを持っていないので、「Sign up」をクリックして新しくアカウントを作成する。

自分のPC上でローカルで動作しているので、登録するメールアドレスもパスワードも適当でいいのだが、一応、次回起動時にログイン情報を忘れると面倒なので、ちゃんと本当のメールアドレスと忘れないパスワードを作成しておく。

ログインが無事に完了したら、ChatGPTのようなチャットインターフェースが表示されるはずだ。
使用時の注意点&PCを再起動した場合の注意点
若干インストール作業が面倒なOpen WebUIだが、一度インストールさえすれば、あとはそのまま使い続けることができるので便利だ。
Dockerコンテナが動作してさえいれば、http://localhost:3000
にアクセスすることによって、何度でもOpen WebUIは使用することができる。
ただ、注意が必要な点としては、問題なくOpen WebUIを起動してLlama 3を使うためには、以下の条件が揃っていることが必要になる。
- Docker Desktopが起動されている(Docker自体が終了されていると、コンテナが動作していない)
- Ollamaが起動されている(Ollamaが終了されていると、Llama 3がWebUIのモデル一覧に出てこない)
http://localhost:3000
にアクセスしてもOpen WebUIが正しく動作していなかったら、上の2点を確認し、必要があればDoker DesktopとOllamaのアプリを、それぞれ起動し直す。
Open WebUIでLlama 3をオフラインで使う
Ollamaが起動している状態で、http://localhost:3000
をブラウザで開き、Open WebUIを起動すれば、上部の「Select a model」のプルダウンメニューで、「Llama 3 8B」が選択できるようになっているはずだ。

Llama 3 8Bは、Mac Book Airであっても、かなりサクサク動作する印象だ。
性能としては、ChatGPTで無料で利用できるGPT-3.5を使用する場合と似たような感覚で、超高精度とは言えないものの、無料かつオフラインでも利用できる大規模言語モデルとしては、十分優秀だと感じられる。
Ollamaに追加したモデルは、何もしなくてもOpen WebUIで勝手に使用できるようになるので、Ollamaでどんどんモデルを追加していけば、Open WebUIのモデルもどんどん充実していくことになる。
例えば、現在は、Llama 3 8B以外にも、Ollamaで以下のようなモデルを簡単にダウンロードできる。
ollama run gemma
というコマンドで、Googleが開発した7B(70億パラメータ)モデルが入手可能ollama run mistral
というコマンドで、Mistral AIが開発した7B(73億パラメータ)モデルが入手可能
今後、さらに高性能なモデルが公開されて、Ollamaがそれに対応してくれれば、Open WebUIにどんどん新しいオープンソースモデルを追加していくことができる。
こうした拡張性も、汎用インターフェースならではの嬉しいポイントだ。
Open WebUIでGPT-4 TurboのAPIを使う
Open WebUIは、ローカルLLMだけではなく、OpenAIのAPIキーを使ったチャットにも対応している。
APIキーは、使用したトークン数に応じた従量課金なので、最新のGPT-4 Turboモデルを沢山使ったとしても、ChatGPT Plusを月額20ドルの固定金額で契約するよりも、多くの場合は安く済むことになる。
サブスクなしでGPT-4 Turboなどの最新モデルを活用したい場合に、APIキーを用意して、Open WebUIで利用できるようにしておくと、とても便利でお得にLLMを活用できる。
まずは、OpenAIのAPIキーを用意する必要があるので、OpenAIのAPIページにアクセスして、アカウントを作成し、左側メニューから「API Keys」クリックして、「Create secret key」から新しいAPIキーを発行する。
「local-openwebui」などと、用途がわかりやすい名前にしておくと後々便利である。

APIキーが用意できたら、Open WebUIのインターフェース上で、画面左下の自分のユーザー名をクリックして設定を開き、「Connections」メニューから「OpenAI API」に自分のAPIキーを追加しておく。

すると、Open WebUIの画面上部のモデル選択で、OpenAIがAPIで提供しているモデルがすべて呼び出せるようになる。
細かい日付ごとにモデルが分かれてしまっており分かりにくいが、「gpt-3.5-turbo」または「gpt-4-turbo」を利用しておけば間違いない。

現状、最も高性能なGPT-4 Turboを使用してみると、ChatGPT Plusで月額20ドル払っているのと殆ど変わらない使用感で、GPT-4 Turboモデルとのチャットができる。
Lllama 3とGPT-4を、質問内容によって切り替えながらチャットすることができるので、質問の難易度が高い場合には高性能なGPT-4を使ったり、機密性の高いチャットではローカルで動作しているLlama 3を使ったりと、状況に応じて使い分けられてありがたい。

なお、Open WebUIは、チャットボックスの左側にある「+」ボタンをクリックすれば、ファイルをアップロードして、LLMとの会話に使用することも可能だ。
例えば、画像認識にも対応しているGPT-4 Turboに、画像をアップロードして、その画像に何が写っているのかを質問してみると、ちゃんと画像の中身を踏まえて解凍してくれる。

ここまでくると、本当にほぼChatGPT Plusを使っているのと変わらない。
ほぼほぼChatGPTな機能を使うことができるのに、Open WebUI自体は無料で、非常に安価なAPIの使用料金のみで済むというのが嬉しい。
OpenAI互換のAPIであれば、なんでも使える
OpenAI以外の会社も、OpenAIのAPIと互換性のある形で、APIサービスを提供している場合がある。
Open WebUIは、こうしたOpenAI互換のAPIにも対応しているので、OpenAI以外の会社が開発・提供している大規模言語モデルのAPIであっても追加することができ、ローカルLLMだけでなく、APIサービスの種類もどんどん拡張していくことが可能だ。
OpenAI互換のAPIは、OpenAIのAPIキーを使っているアプリやコードはそのまま変更せず、APIリクエストのベースURLとAPIキーを他社のものに入れ替えるだけで、他社のAPIを利用できてしまうという便利な仕様だ。
Open WebUIの設定メニューの「Connections」で、APIキーの横にある「+」ボタンを押せば、OpenAI互換のAPIキーをどんどん足していくことが可能である。
例えば、超高速でLlama 3の大型モデルである70Bを使用できるGroq CloudのAPIキーを設定すれば、Groq Cloudで動作するLlama 3 70Bを使うこともできてしまう。

自分好みのローカルLLM、APIサービスのLLMを追加して、Open WebUIでいつでも呼び出せるようにしておくと、各モデルの得意分野ごとに使い分けることができ、とても便利だ。
Open WebUIのアンインストール方法
普通のアプリのインストール手順と違ったため、どうやってアンインストールすればいいのか分からない人もいるであろうから、ここで一応削除方法についても説明しておく。
Dockerを使ってインストールしたため、Docker DesktopでOpen WebUIが動作しているコンテナと、そのコンテナの元となっているイメージを削除すれば、すべてのファイルを削除することができる。
まずDocker Desktopを開き、コンテナ一覧の「openwebui」というコンテナを、右側のゴミ箱アイコンをクリックして削除する。

コンテナは、「イメージ」と呼ばれる元の設計図のようなものに従って作られているため、コンテナを削除するだけなく、その元になっているイメージも削除する必要がある。
Docker Desktopの左側のメニューから、「Images」を選択して、Open WebUIのイメージを、同じくゴミ箱マークをクリックして削除しておく。

これで、Open WebUIをあなたのPC・Macから綺麗に削除することができた。
インストールし直す場合には、またDockerコンテナを作成するコマンドの実行からやり直せば良い。
類似のアプリ「ChatbotUI」との違い
Open WebUIのような、オープンソースで開発されており、無料で利用できるChatGPTライクなチャットインターフェースは、いくつか存在する。
有名どころだと、当サイトでも紹介したChatbotUIがある。Open WebUIとChatbotUIを比較して、どちらをメインで使用すべきかは、そのユーザーの熟練度やユースケースによって、オススメが変わりそうである。
筆者としては、インストールや起動の簡単さという観点からは、「Open WebUI」の方が優れていると考えており、特にプログラミング経験がない人や、とにかくサクッとインストールして試したいというユーザーには、「Open WebUI」がオススメである。
一方で、高機能さ、カスタマイズ性の高さは、「ChatbotUI」の方がずっと優れているように感じる。プロンプトのテンプレートを作ったり、システムプロンプトとモデルの組み合わせを保存できたり、対応しているAPIの種類が多かったり(OpenAI, Anthropic, Groq, Perplexityなど)と、Open WebUIでは使えない様々な機能がある。
ただし、「ChatbotUI」は、インストールのステップが多く、Docker Desktopだけでなく、Homebrew、Node.jsなども必要になり、プログラミング経験がない人にとってはとっつきにくいであろうと思われる。
どのように自分のPC・Macで大規模言語モデルを利用して行きたいか、自分のユースケースも考えて、どちらか一方をインストールしてみることをオススメする。
いずれにせよ、新しく登場して話題になっているオープンソースのLLMをすぐに自分のローカル環境で試すのはとても楽しいし、OpenAIのChatGPTやAnthropicのClaude 3などの最新・超高性能のモデルを、月額契約なしで安価に利用できるのも、実際非常にメリットが大きい。
この記事で紹介した手順で、Open WebUIをぜひ活用してみてほしい。