🗻

ollamaで Fugaku-LLM を動かす

2024/05/11に公開

https://pr.fujitsu.com/jp/news/2024/05/10.html

昨日公開された Fugaku-LLM は珍しく公式が GGUF ファイルを配布してくれているので、これを使って手元の Macbook で動かしてみます。

準備: ollama をインストールする

以下のインストーラに従ってアプリケーションを入手できます。

https://ollama.com/download

アプリケーションの指示に従って、CLI 上でも ollama コマンドを使えるようにしておきます。

ステップ1: Fugaku-LLM のファイルをダウンロードする

https://huggingface.co/Fugaku-LLM/Fugaku-LLM-13B-instruct-gguf/tree/main

からお好みのファイルを選びます。

とりあえず、一番サイズの小さい(おそらく量子化が一番効いている) 「Fugaku-LLM-13B-instruct-0325b-q5_k_m.gguf」を選びます。

https://huggingface.co/Fugaku-LLM/Fugaku-LLM-13B-instruct-gguf/blob/main/Fugaku-LLM-13B-instruct-0325b-q5_k_m.gguf

の download ボタンからダウンロード。

ステップ2: Modelfile を作成する

モデルファイルのダウンロードが終わったら、同じディレクトリに、Modelfile という名前のファイルを作っていきます。

Modelfile で一番重要なのは、トークナイザの chat template を守ることです。 今回の Fugaku-LLM の場合、LLM-jp-13B のトークナイザを流用しており、 chat template は LLM-jp-13B の場合と同じく

{system_example}

### 指示:
{instruction_example}

### 応答:

になります(リポジトリのREADMEを参照)。これに合わせると Modelfile の TEMPLATE 変数は

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

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

### 応答:
{{ .Response }}<EOD|LLM-jp>"""

とすればよいです({{ if .System }} {{ end }}{{ if .Prompt }} {{ end }} の部分はあってもなくてもよい)。
なお、<EOD|LLM-jp> とはこのトークナイザで使っているEOSトークンのことです。

Modelfile の他の部分も埋めると、全体は以下のようになります。

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 """以下は、タスクを説明する指示です。要求を適切に満たす応答を書きなさい。"""

temperature などの値は、リポジトリの README に合わせただけなので、好きに変更していただいて構いません。

ステップ3: いざ、Fugaku-LLM を動かす!🤗

ollama create fugaku-llm-13b-instruct -f ./Modelfile

でモデル情報を登録。

docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
docker run -d -p 3000:8080 --env WEBUI_AUTH=False --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

で Open WebUI を立ち上げて、ブラウザの http://localhost:3000 から確認します。

私の環境では、Fugaku-LLM が動いていることを確認できました。

備考

ほぼ同じタイミングで、似たような記事が先に Zenn にあがっているのを見つけました。

https://zenn.dev/tos_kamiya/articles/9d8ce89bb933b1

念のため、この方の出力例と自分の出力例が大体似通っていることも確認。

Discussion