はじめに
昨年からリモートワーク時の端末を、WindowsからM1 Mac miniへ変えました。最近は、MSOfficeやAdobe製品に加え、AutoCADのようなAutoDesk製品も問題なく使えるようになったので、メモリ16G、SSD256Gの中古を買って環境を整えました。
折角なので昨今の流行りも試してみたいと思い、Rancherで手軽に導入できるOpen WebUIを突っ込み、ローカル環境下でLLMモデルを実行してみたところ、マシンが非力で14b以上の規模のモデルではうんともすんともいわない状況になることが分かりました。
まぁ、もともとの目的と違うことをしようとしているのだから不便が生じるは当たり前で、出張の日当が溜まったら、もう少し上位の機種へ買い替えようかなぁと呑気に思っていたところ、今年の春先からM2 Maxを載せたMac Studioの価格がどんどん下がっていることに気づきました。気がついたら、メモリ32G、SSD512Gのモデルを買っていた次第です。
Mac mini上で利用していたRancher上で実行できる環境は、細々とした段取りが必要ないので便利でしたが、更新の早い環境を逐次追いかけたい、コンテナ化によるリソースの消費を無くしたいと思い、Ollama、Open WebUIを個別に入れて、ネット検索まで使えるようにしました。
年を取ると忘れっぽいので、個人のメモ書きとして残している次第です。
Ollamaの導入
基本的に全てHome Brew経由でインストールするつもりです。Home Brew関連の話題は割愛することとして、Ollamaから入れます。
% brew install ollama
インストール完了後、起動、バージョンを確認します。
% ollama serve
...アウトプット省略
% ollama --version
ollama version is 0.9.6
試しに適当なモデルを落として実行します。
% ollama run deepseek-r1:14b
なんか、M1 Mac miniと比べてかなり速いような...
/bye でモデルとの対話を終了します。
仮想化の準備
Open WebUIをpipでインストールするため、Pythonの仮想環境を用意します。Python3.11を使います(3.11より新しいバージョンではダメらしい、私は試していませんが...)。どのバージョンの仮想環境か忘れっぽいので、私はバージョン番号を入れています。
% python3.11 -m venv venv3.11
% source venv3.11/bin/activate
(venv3.11)
%
ちゃんとできたみたいです。
仮想環境から抜けるときは、deactivateと打ちます。
(venv3.11)
% deactivate
Open WebUIの導入
仮想環境下で、Open WebUIをインストールします。
必要に応じて、pip本体のアップデートをしておきます。
(venv3.11)
% pip install -U pip
...アウトプット省略
(venv3.11)
% pip install open-webui
依存関係に従って必要なモノが全て入りました。
エラー等なく、サクサクと進み、とても便利です。
Open WebUIを起動します。
(venv3.11)
% open-webui serve
ブラウザから http://localhost:8080 へアクセスすると、ちゃんと実行できました。
初回起動時の細々とした設定は割愛します。
ただ、これは私の環境だけの問題かもしれませんが、SafariでOpen WebUIへアクセスしたところ、漢字変換確定時のエンターをLLM入力時のそれと認識されてしまい、使い勝手が大変悪いです。
以前の環境(コンテナ化)では生じていなかったので、今回の環境構築時に何らかの対応が漏れていたのかもしれません。別のブラウザなら問題ないので、しばし保留です。普通に動いているだけで、大満足です。
検索用のAPIキーの取得
Open WebUIでRAGを実行するため、ウェブ検索を有効にします。
ウィンドウ右上のユーザーアイコンをクリックし、管理者パネル → 設定の順に設定の階層を降りていくと、ウェブ検索のオン・オフができます。オンにすると、質問入力欄にウェブ検索ボタンが現れます。
続いて、検索エンジンの準備をします。今回は丁寧な解説(文末のリンク一覧の4番目)を見つけたので、そちらに従います。検索エンジンIDとAPIキーを入手して、Open WebUIの設定に入力します。
Open WebUIのアップデート
Open WebUIのアップデートがちょうど公表されたので、私の環境も更新します。
(venv3.11)
% pip list | grep open-webui
open-webui 0.6.16
(venv3.11)
% pip install --upgrade open-webui
...アウトプット省略
(venv3.11)
% pip list | grep open-webui
open-webui 0.6.18
なんのエラーも出ることなくアップデートできたようです。
とても便利です。
最後に
コンテナ化せず直接実行する環境にしているからか、端末自体のスペック向上なのか断言はできませんが、とにかく以前より実行速度がかなり速くなりました(やはり端末自体のスペック向上でしょうか...)。また、以前はインストールすらできなかった32bのモデルがサクッと入って実行できます。メモリ占有量は20〜25ギガぐらいです。メモリ24Gを積んだM4 Pro Mac miniの購入も考えていましたが、メモリ32Gの環境を選択したのは正解だったようです。
とりあえず、随時更新して色々試してみたいと思います。
参考にさせていただいたリンク一覧
-
open-webui/open-webui
https://github.com/open-webui/open-webui -
Ollama + Open WebUI: Windows、Linux、または macOS で LLM をローカルに実行 (Docker 不要)
https://www.itflashcards.com/blog/ja/ollama-open-webui/ -
[ Open WebUI ] [ ローカルLLM ] Docker を使わない環境の Open WebUI を Update しました(起動スクリプトもメンテナンス)
https://qiita.com/Yuzpomz/items/34fc708a7cbebd2c0166 -
生成AIで注目の「RAG」を試せる環境を「Open WebUI」で構築 GPU活用による高速化もチャレンジしてみよう
https://atmarkit.itmedia.co.jp/ait/articles/2504/03/news006.html