[ ローカル LLM ] Open WebUI + ollama for Windows + Qwen2.5 で自宅にローカルLLMをセットアップ

Docker, Conda を使わないやり方で、自宅のローカル環境で有料サービスみたいな感じでLLMを比較しながら使いたいなと思ってセットアップした時のメモです。。
LLMとしてQwen2.5 を選んだのは「新しいのが出たよ！」と教えてもらったので試してみました。

:::note info
この記事の環境
・Windows 11
・Python 3.11 + venv
・CUDAなどの機械学習関連ツール導入済み
・DockerとWSL2は使っていません
:::

# Open WebUI ってなに？

Web ブラウザで LLM にアクセスして ChatGPT とか Claude みたいにおしゃれに使えるようになる Python のツールです。特にollama から使える登録済みモデルならすぐに使えるようになります。

Open WebUI Open WebUI is an extensible, self-hosted AI interface that adapts to your workflow, all while operating entirely offline.

https://openwebui.com/

:::note info
登録済みでないモデルはOpenAI API互換などで繋げられます。
:::

# ollama ってなに？

ローカルでオフラインでLLMを動かすのが得意なツールです。Transformers や LangChain と違ってスタンドアローンアプリなのでPythonは不要です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3920228/20654cb8-c467-660d-265f-ffb636020a86.png)

ollama Get up and running with large language models.

https://ollama.com/

# Qwen2.5 ってなに？

アリババクラウドさんのオープンソース LLM 「Qwen（クウェン）（別名「通義千問（Tongyi Qianwen）」」のバージョン2.5です。プログラム用途のQwen2.5-coderや画像は扱う場合は Qwen2-VL のモデルがあります。

Qwen Alibaba Cloud's general-purpose AI models

https://github.com/QwenLM

:::note info
Qwen2-VLはOllamaは未対応のよう(2024/10/28)
:::


# 環境の確認
・ollama for Windows が動く環境(今回は Windows 11)
・ストレージの空き容量（最低でも10GB）
・Open WebUI -- Python 3.11 がおすすめらしい

:::note warn

https://github.com/open-webui/open-webui

Installation via Python pip
Open WebUI can be installed using pip, the Python package installer. Before proceeding, ensure you're using Python 3.11 to avoid compatibility issues.
:::

:::note info
<I>Open WebUI を Dockerでインストールする方法は公式サイトをご確認ください</I>
:::

# セットアップ
ここからはさくさくやって実行だけだと1時間以内で終わるはず？

### 1.1 ollama for Windows のダウンロードとインストール
https://ollama.com/download

インストールが完了すると ollama が起動済みの状態で自動的にプロンプトが開きます。
ダウンロード済みモデルを呼び出す場合は ollama run <I>MODELNAME</I> で使用できます。

例）モデルダウンロードと呼び出し
```
ollama pull qwen2.5
ollama run qwen2.5
```

:::note info
モデルのダウンロードが始まります
pull を実行するとダウンロード済みモデルが更新されます
:::

:::note info
ollama ですぐに使える LLM モデルはこちらから検索
https://ollama.com/library

:::

### 1.2 ollama for Windows の動作確認

デフォルトではブラウザで下記にアクセスできます。
http://localhost:11434

メッセージのみの画面が表示されます。ここまで確認できれば次に進みましょ。

### 2.1 Open WebUI のための venv 環境準備

依存関係を調べるの大変なので新規venv環境を作ることをお勧め。
```
py --list-paths
python -m venv .venv
python -m venv .venv --clear
py -3.11 -m venv .venv
```

venv 環境に入って、Pythonのバージョンを確認
```
cd .venv
scripts/activate
python -V
deactivate
```

### 2.2 open-webui のインストール
```
cd .venv
scripts/activate
python -m pip install --upgrade pip
pip install open-webui
deactivate
```

完了後、起動コマンドを実行
```
cd .venv
scripts/activate
open-webui serve

  ___                    __        __   _     _   _ ___
 / _ \ _ __   ___ _ __   \ \      / /__| |__ | | | |_ _|
| | | | '_ \ / _ \ '_ \   \ \ /\ / / _ \ '_ \| | | || |
| |_| | |_) |  __/ | | |   \ V  V /  __/ |_) | |_| || |
 \___/| .__/ \___|_| |_|    \_/\_/ \___|_.__/ \___/|___|
      |_|
```

### 2.3 open-webui の動作確認

デフォルトではブラウザで下記にアクセスできます。
http://localhost:8080

:::note warn
TCP 8080番はいろんなアプリで使われるので同時起動しないように注意しましょ
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3920228/cd4771a3-32df-b289-3e19-8acfa414ef29.png)

日本語環境を自動的に検知しているようですね。
メールアドレス、アカウント、パスワードを適当に入力し、セルフサインアップしてログインします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3920228/06d5ba9e-e24e-9f4c-fffb-9ee392ebf892.png)

ログインすると見たことのある画面が現れます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3920228/94a34225-aca8-14d5-43db-11c21c205ab4.png)

使用したい LLM モデルの切り替えは左上のスイッチで行います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3920228/d1c7fc93-dd09-4c64-ef57-1599de00009a.png)

ollama で run されてたらすでに表示されていると思います。

OpenAI API 互換の環境設定については左下のアカウントのアイコンから設定画面に移動できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3920228/35bd1380-db60-33ff-ec99-f9059753fb66.png)

チャットをしばらく使っていないとVRAMからフラッシュされるみたいですね、便利！
それではみなさんも快適な　ローカルLLMライフをお楽しみください！