Open WebUI + ollama + Fugaku-LLM with Docker


Open WebUIとollamaを使って、“Fugaku-LLM/Fugaku-LLM-13B”のggufモデルをChatGPTライクに実行できる環境を作成します。
サービスはdocker composeを用いて起動します。
すでにいくつか記事も存在していますが、ここではdocker composeを用いたセットアップについて記します。

サーバーの環境

Ubuntu 22.04.4 LTS

環境設定

Step 1: Clone the Repository

まず、作業するディレクトリを作成します。今回はfugakuにしました。
fugakuフォルダに移動して、Open WebUIのリポジトリを自分の環境にcloneします。

/fugaku
git clone https://github.com/open-webui/open-webui.git
cd open-webui

docker compose upを使うと、ollamaのコンテナも同時に立ち上げることができます。 NVIDIA GPUやAMD GPUを有効化するには、下のコマンドを実行してください。

/fugaku/open-webui
docker compose up -d --build

#NVIDIA GPUを有効化する場合
docker compose -f docker-compose.yaml -f docker-compose.gpu.yaml up -d --build

#AMD GPUを有効化する場合
HSA_OVERRIDE_GFX_VERSION=11.0.0 docker compose -f docker-compose.yaml -f docker-compose.amdgpu.yaml up -d --build

特にエラーなく動けばOK docker compose downを実行して、一度サービスを落とします。

Step 2: モデルの準備

Hugging Face上にあるFugakuのggufモデルをPCにダウンロードし、fugaku配下にコピーします。 ディレクトリの構造は以下のようになります。

/path/to/fugaku
|--Fugaku-LLM-13B-instruct-0325b.gguf
|--open-webui

モデル準備用の仮のdocker-compose.yamlを作成するために、open-webuiフォルダからコピーします。

/fugaku
 cp open-webui/docker-compose.yaml .

docker-compose.yamlを編集します。

docker-compose.yaml
version: '3.8'

services:
  ollama:
    volumes:
      - ollama:/root/.ollama
+     - ./:/fugaku             #<--この行を追加
    container_name: ollama
    pull_policy: always
    tty: true
    restart: unless-stopped
    image: ollama/ollama:${OLLAMA_DOCKER_TAG-latest}

また、モデルのロードに使うためのModelfileファイルを追加します。
内容はこちらから参照しました。ありがとうございます。
1行目の.ggufファイルはダウンロードしたファイル名と同じものを設定してください。

Modelfile
FROM ./Fugaku-LLM-13B-instruct-0325b-q5_k_m.gguf


PARAMETER repeat_penalty 1.0
PARAMETER temperature 0.1
PARAMETER top_k 0
PARAMETER top_p 1.0
PARAMETER stop "<EOD|LLM-jp>"

TEMPLATE """{{ if .System }}{{ .System }}{{ end }}{{ if .Prompt }}

### 指示:
{{ .Prompt }}{{ end }}

### 応答:
{{ .Response }}<EOD|LLM-jp>"""
SYSTEM """以下は、タスクを説明する指示です。要求を適切に満たす応答を書きなさい。"""

ファイルが作成できたら、fugakuフォルダの配下にあることを確認し、docker compose upで立ち上げます。
その後、docker compose execでollamaの内部のbashに入ります。

/fugaku
 docker compose up -d
 docker compose exec ollama bash
ollama内のbash
cd fugaku/
ollama create fugaku-llm-13b-instruct -f ./Modelfile

少し時間はかかりますが、successと出ていれば無事完了です。
これで、このフォルダにあるdocker-compose.yamlはお役御免なので、docker compose downを行った後、消していただいても大丈夫です。

Step 3: 立ち上げ

最後にもう一度open-webuiディイレクトリに移動して、docker compose upで立ち上げます。

/fugaku
cd open-webui
docker-compose up -d

http://localhost:3000 に遷移しログイン後、画面左上のSelect a modelでFugakuモデルが選択できたらOK

Troubleshooting