Ollama と Open WebUI で IBM granite3.1-dense:8b, granite3.2:2b を IBM Power (CPU)上で稼働する

### はじめに

IBM Power 上で稼働する Open WebUI とollama のコンテナで LLM(Large Language Model) を動かすブログを拝見して試してみました。

https://community.ibm.com/community/user/powerdeveloper/blogs/marvin-gieing/2025/03/12/optimizing-llm-deployment-on-ibm-power10-with-olla


---

### 環境

・HW: Power10 (E1080)
　　CPU 2 Core, Memory 64GB

・OS: RedHat 9.4
　　　Podman

・SW: 
　　- [ollama](https://quay.io/repository/mgiessing/ollama?tab=tags&tag=latest) (コンテナ・イメージ) 
　　-  [Open WebUI](https://quay.io/repository/mgiessing/open-webui?tab=tags&tag=latest) (コンテナ・イメージ)　

<br>

---

### 設定

ブログの記事に沿って手順を実施します。

(1) podmanネットワーク作成

```
[root@isyd05-1g-leaf3-a03 ~]# podman network create ollama-webui
ollama-webui
```

確認

```
[root@isyd05-1g-leaf3-a03 ~]# podman network ls
NETWORK ID    NAME          DRIVER
f96480c671b1  ollama-webui  bridge
2f259bab93aa  podman        bridge
[root@isyd05-1g-leaf3-a03 ~]#
```
<br>

(2) ollama コンテナの起動

```
[root@isyd05-1g-leaf3-a03 ~]# podman run -d --rm --network ollama-webui -v ollama:/root/.ollama -p 11434:11434 --name ollama quay.io/mgiessing/ollama:v0.5.12
Trying to pull quay.io/mgiessing/ollama:v0.5.12...
Getting image source signatures
Copying blob a73fe7d33f1e done   |
Copying blob 970d14e3dfd5 done   |
Copying blob 2c6e69701b3e done   |
Copying blob 0ea07940710b done   |
Copying config 27431b6dc7 done   |
Writing manifest to image destination
ad58f4fc401e26f0728cb471026758998774a4d3ce4a7886fb31555e3f9e7990
[root@isyd05-1g-leaf3-a03 ~]#
```
<br>

(3) ollama-webui コンテナの起動

環境のネットワーク制約により、6443 ポートで公開しています。


```
[root@isyd05-1g-leaf3-a03 ~]# podman run -d --rm --network ollama-webui -p 6443:8080 -e OLLAMA_BASE_URL=http://ollama:11434 -e WEBUI_SECRET_KEY="" -v open-webui:/app/backend/data quay.io/mgiessing/open-webui:v0.5.12
Trying to pull quay.io/mgiessing/open-webui:v0.5.12...
Getting image source signatures
Copying blob e987599e381a done   |
Copying blob ac90ba5d4f77 done   |
Copying blob 5e1e9403c170 done   |
Copying blob c8eceb99bcf0 done   |
Copying blob 306cce4a4fa2 done   |
Copying blob acbe9878ec54 done   |
Copying blob 7a0ef30f5a12 done   |
Copying blob 4f4fb700ef54 done   |
Copying blob fc32d70f6feb done   |
Copying blob d35876c51cc4 done   |
Copying blob 490a96189311 done   |
Copying blob 4d707aedf845 done   |
Copying blob 42fce7db9682 done   |
Copying blob 519059029640 done   |
Copying blob 98af02a97c4f done   |
Copying config 15e286b484 done   |
Writing manifest to image destination
483c7dacfa28276d2933881c7493e814c61372622dea715839ca17917ba8d4be
[root@isyd05-1g-leaf3-a03 ~]#
```

確認

```
[root@isyd05-1g-leaf3-a03 ~]# podman ps
CONTAINER ID  IMAGE                                 COMMAND        CREATED             STATUS         PORTS                     NAMES
ad58f4fc401e  quay.io/mgiessing/ollama:v0.5.12      serve          2 minutes ago       Up 2 minutes   0.0.0.0:11434->11434/tcp  ollama
483c7dacfa28  quay.io/mgiessing/open-webui:v0.5.12  bash start.sh  About a minute ago  Up 55 seconds  0.0.0.0:6443->8080/tcp    infallible_kilby
```

pod が2つ稼働しています。

---

### 稼働確認


`http://"server IP":6443` にWebブラウザでアクセスします。


画面の表示が出ていました。
Open WebUI の仕様かもしれませんが、背景にはうっすらと「アダムの創造」が見えます。

![スクリーンショット 2025-03-20 10.07.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517421/2d2ccd66-7e0e-4bfd-a83a-b61c574ae975.png)

<br>

二枚目の背景に何かありますがはっきりとは見えません
-> Open WebUI のGit repository より[宇宙の写真](https://github.com/open-webui/open-webui/blob/main/static/assets/images/galaxy.jpg) ではないかとコメントで教えていただきました。

![スクリーンショット 2025-03-20 10.07.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517421/957db8aa-b4e4-4d47-95e0-768941cc0227.png)

<br>

三枚目は宇宙飛行士:dizzy:

![スクリーンショット 2025-03-20 10.08.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517421/23c73ccc-e607-41bc-b50c-10d9d4f99e8f.png)

Get Started を押します

![スクリーンショット 2025-03-20 10.13.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517421/9405796b-dc28-4afc-b61b-4834eeba92f8.png)

アカウント作成画面に移動。Create Admin account で適当に入力し、アカウントを作成します。

ログインできました。

![スクリーンショット 2025-03-20 10.14.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517421/4e85897d-e27c-4ad5-a3d1-34177c52e7be.png)

"OK、始めましょう!" を押します。
特に指定しませんでしたが日本語で出てきています。ブラウザの言語を見ているのかもしれません。



よく見かけるような AI チャット画面に移動しました

![スクリーンショット 2025-03-20 10.16.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517421/e0fb7f16-4d0b-4cd6-a5c1-1733a81f28ac.png)

モデルは導入時点では2つです。コンテナの中に配置したものと思います。

![スクリーンショット 2025-03-20 10.16.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517421/44857ea8-82fe-49ff-bc05-3ff5cfb18458.png)

Open WebUI仕様のため、画像、ファイルアップロードも可能のようです。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517421/bbb1f534-71fa-44dd-a29b-01064b60e828.png" width="50%">

音声入出力も可能のようです。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517421/a1341189-1830-4ad1-b7cf-0cc36043b5f5.png" width="30%">



<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517421/5fd3a36d-c2d7-4b18-b794-8489704ca568.png" width="30%">


<br>
<br>
<br>


さっそく質問してみます。

「あなたは誰ですか？」

![スクリーンショット 2025-03-20 15.38.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517421/de045c84-14d6-4b4d-b7b9-de8d7296b37c.png)


書き始めの反応が少々遅めです。考えているのかそれともリソースの問題でしょうか。


別のことも聞いてみます。

![スクリーンショット 2025-03-20 16.24.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517421/a0c4bfbb-4861-43da-857d-914122dea9ec.png)

これは、、、ある意味、AIとの人間の感覚の違いを楽しむ遊びかもしれません。

---

### モデルの追加(granite3.2:2b)


デフォルトにあるモデル以外を設定できるかを試します。


ollama pod にログイン

```
[root@isyd05-1g-leaf3-a03 ~]# podman exec -it ollama /bin/bash
[root@ad58f4fc401e /]#
```

モデルを確認すると、granite3.1-dense:8b のみが存在しています。

```
[root@ad58f4fc401e /]# ollama list
NAME                   ID              SIZE      MODIFIED
granite3.1-dense:8b    86ac4cf0cb84    4.9 GB    2 months ago
```


先日リリースされた新しいgraniteモデルをollama library からダウンロードします。



https://ollama.com/library/granite3.2:2b

```
[root@ad58f4fc401e /]# ollama pull granite3.2:2b
pulling manifest
pulling 36c09b22ee39... 100% ▕████████████████████████████████████▏ 1.5 GB
pulling 3e7ca51acd6e... 100% ▕████████████████████████████████████▏ 6.0 KB
pulling 2e68075caee4... 100% ▕████████████████████████████████████▏  11 KB
pulling 2b0d9e8b9a18... 100% ▕████████████████████████████████████▏  417 B
verifying sha256 digest
writing manifest
success
[root@ad58f4fc401e /]#
```


Open WebUI 側の画面をリフレッシュ

granite3.2:2b がモデルの選択肢に加わりました!

![スクリーンショット 2025-03-20 15.44.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517421/6f4a66b2-7903-4dc5-a463-46b6b0f76080.png)



稼働確認します。　数秒考えて書き出してくれました。
軽量の granite3.2:2b モデルのため先程の granite3.1:8b モデルより速く動いています。

![スクリーンショット 2025-03-20 15.46.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517421/0c3de658-74e0-40a0-bd2c-234c155cc38e.png)


違うことも聞いてみます。(先ほどと同じ質問)


![スクリーンショット 2025-03-20 16.15.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517421/b1b46bde-42a6-4bc0-9b8b-7b0417ea2f10.png)

granite3.1-dense:8b モデルより日本語が正しくないようですが、これは granite3.2:2b 軽量モデルの方は品質が低くなるためと思います。

簡単な早い処理であれば軽量モデルが良いですが、複雑な回答を得たいときは重めモデルが良いようですね。



---


### おわりに

少々脱線しましたが、IBM Power10 上で Open WebUI を使用した ollama 稼働を確認しました。

簡易にPower上で稼働できるWebインターフェースが稼働するコンテナ・イメージ が準備できています。

<br>



### ご参考


https://qiita.com/c_u/items/74449ff21bbc691d3160

https://qiita.com/c_u/items/5ff0d67ec49ca98e1204


<br>

以上です。