先日 Ryzen AI 9 HX 370 のミニPCを購入しました。統合メモリで96GB使えて気軽に大規模AIが楽しめそうな感じですが、ひとまず ollama1 と open-webui2 でチャットサービスを立ち上げてみました。
以下手順です。
rocm を利用可能にする。
1. UEFI(BIOS) の Secure Boot を無効にする。
つまづきポイントでした。これをしないと ubuntu からiGPUを認識出来ませんでした。後述の rocminfo
を実行しても GPU が認識されません。
2. ubuntu をインストールする。
せっかく windows 11 の pro版が入っていましたが ubuntu をインストールします。今回は 22.04 をインストールしましたが、 24.04 のドライバも用意されています。
3. ドライバをインストールする。
https://rocm.docs.amd.com/projects/install-on-linux/en/latest/install/quick-start.html に従います。以下引用。
wget https://repo.radeon.com/amdgpu-install/6.4.1/ubuntu/jammy/amdgpu-install_6.4.60401-1_all.deb
sudo apt install ./amdgpu-install_6.4.60401-1_all.deb
sudo apt update
sudo apt install python3-setuptools python3-wheel
sudo usermod -a -G render,video $LOGNAME # Add the current user to the render and video groups
sudo apt install rocm
wget https://repo.radeon.com/amdgpu-install/6.4.1/ubuntu/jammy/amdgpu-install_6.4.60401-1_all.deb
sudo apt install ./amdgpu-install_6.4.60401-1_all.deb
sudo apt update
sudo apt install "linux-headers-$(uname -r)" "linux-modules-extra-$(uname -r)"
sudo apt install amdgpu-dkms
最後に再起動します。
rocminfo
を実行して
*******
Agent 2
*******
Name: gfx1150
Uuid: GPU-XX
...
Device Type: GPU
...
という表記が見つかれば成功です。
ollama をインストール・起動する。
curl -fsSL https://ollama.com/install.sh | sh
でインストール出来ます。
そしてアクセス周りを編集します。
sudo systemctl edit ollama.service
でエディタが起動するので、
[Service]
Environment=OLLAMA_HOST=0.0.0.0
して保存します。さらに、
sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl restart ollama
として反映させます。
open-webui を起動する。
sudo 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
で起動します。
起動したらブラウザから http://{マシンのアドレス}:3000
にアクセス出来ます。最初に管理者ユーザーを作成する必要があるので適当に作成します。
あとは好きなモデルをダウンロードしてチャットするだけです。 open-webui の「モデルを選択」部分にモデルの名前を入れると open-webui からでもモデルを pull することが出来ます。
open-webui の設定をする。
自分一人で遊ぶならばここまでですが、社内の別の人に使ってもらうにはもう少し設定が必要です。
左下のユーザー名から管理者パネルを開きます。
そして「管理者パネル」→「ユーザー」→「概要」でユーザーを追加します。CSVによる一括作成もできるようです。
また、「管理者パネル」→「設定」→「モデル」→「{任意のモデル}」→「Visibility」を「公開」に設定します。この設定をしなければ一般ユーザーはモデルを使用することが出来ず、チャットすることもできません。つまづきポイントその2でした。
速度比較
利用可能な dGPU があったので速度比較してみました。以下のコマンドを実行し、eval_duration と eval_count から速度を計算します。
curl http://localhost:11434/api/generate -d '{ "model":"gemma3:1b", "prompt": "Make a brief history of LLM.", "options": { "top_k": 1 } }' > gemma3_1b_en.txt
速度では全く敵いませんでした。メモリが大量に使えるというところで使いどころを探してみたいです。