遅ればせながら、Ollama OpenWebUIで自宅にLLMチャットをセットアップ
結論
- 書いていませんが、LLMでまだ行ったことがないサイトの情報をキーワード検索してRAG的なことができないか試行錯誤しました。
- モデルだけで解消できるか?と思いましたが、そんなことはない。
- webuiでファイルを渡すことはできるのですが、システムで完結してクロールまでするには良い解決策は思いつきませんでした。
- けど、自宅でLLMに触れるOllamaのセットアップができたのはよかったですね!
- 自身のマシン環境的にOllama+StableDiffusionを同時に動かすのは厳しいです。
方針・前提条件
- docker で可能な限り構築したい(特にGPU搭載しているマシンはVM機ですらないので環境を汚したくない)
- Webで分離可能なものは、VM機のCT(Proxmoxのコンテナ)で立てておきたい
環境
-
web: Debian 12.8
- Inspiron 14(Ryzen 7 5700U)
- GPU積んでいないものはこちらに集約しようとしています。
-
LLM: Ubuntu 22.04
- 自作機 AMD Ryzen 7 5700G
- GPU: RTX 3070Ti (メモリの多い3060になぜしなかったのか)
作業内容
Ollamaのセットアップ
GPU機側での作業です。
docker run で始めている公式ドキュメントがありますが、当然ながらdocker composeもつかえるのでググってみると紹介している人が居ました。
OllamaのDockerを試してみる
これに加えてMakefileを用意しました。
up:
docker compose up -d
kill:
docker compose kill
shell:
docker compose exec -ti Ollama shell
Stable Diffusionを使う時には、Ollamaを落とす感じの運用で行います。
make up
make shell
そのあとモデルを落としてきます。(好きなの)
Ollama run llama3.2
OpenWebUI
Web機側での作業です。
こちらも確かdocker コマンドで立ち上げていたので、docker compose化していただいているものを修正して取り込みました。 ローカルLLMの使用 - OllamaとOpen WebUIの連携について解説 #生成AI - Qiita
services:
webui:
image: ghcr.io/open-webui/open-webui:main
environment:
- OLLAMA_BASE_URL=http://LLM機IP:11434
volumes:
- open-webui:/app/backend/data
ports:
- 3000:8080
restart: always
volumes:
open-webui:
まずはチャット使える?
適当にOpenWebUIを設定して、Ollamaのエンドポイントをさしてあげればよいです。(httpsではなく、httpじゃないとつながらなかった)
そしたら、あとはモデルを選んでチャットするだけです。
私自身はあまり、ChatGPT、Geminiなどを使いこなしている勢ではないので、gemma2, LLM3を試している感じ特に不自由はありませんでした。
それよりもレスポンスがサクサクで少しびっくりです。
Difyも入れちゃおう
Difyを触る機会があったので、これもついでに入れておきましょう。
N番煎じですがローカルLLM(Ollama)とRAG(Dify)を試してみた|桑名市スマートシティ推進課
世間ではすでに自前でLLM動かすのは余り珍しいことではないなって色々な記事見てて痛感しますわ。
最後に
プロンプト作成にガチっているじゃないと、触っててつらいなと思っていましたが、情報もまとまっている感じだったので手を出そうと思って触ってみました。
実際には、やろうと思っていたことは実現できませんでしたが、LLMを自宅で手軽に触れる環境が手に入ったので結構満足です。
Ollamaではなくて、LocalAIでまとめられるしいいやろ!と思っていましたが、いざ触ってみるとレスポンスがOllama早いじゃん!と感動していました。
記事書いたらとりあえずLLMに投げて修正してもらおう。