型落ちPCのCPUのみで、日本語対応の7B(70億)パラメータのLLMを量子化して使ってみる


型落ちPCのCPUのみで、量子化した7B(70億)パラメータのLLMを動かしてみる」では量子化済みのcalm2-7b-chat.Q2_K.ggufをダウンロードして使っていました。

ここではHuggingFaceにアップしてあるcyberagent/calm2-7b-chatをggufに変換後、q2_K型に量子化してから使ってみます。

環境は前と同様に型落ちPCでRAMを10GBに拡張したものを使います。

 

 

 

 

 

 

 

 

OSはUbuntu Server 22.04.3 LTS です。

OSをインストールして起動したら、必要なパッケージやライブラリなどをインストール。

pipが未インストールなら以下を実行しておきます。

トークナイズ用にsentencepieceをpipでインストールします。

BLASを使うのでllama.cppを新たにインストールします。以前にmakeのみでビルドしたllama.cppはフォルダーごと削除しておいてください。

ダウンロードファイル用のディレクトリを作成しておきます。

HuggingFaceから cyberagent/calm2-7b-chatをダウンロードします。

python3 -c 'import huggingface_hub; huggingface_hub.snapshot_download(repo_id="cyberagent/calm2-7b-chat", cache_dir="./models/hf")'

 

 

 

 

 

 

 

 

 

ダウンロードフォルダーへ移動。

cd ~/models/hf/models--cyberagent--calm2-7b-chat/snapshots/f666a1e43500643cb3ff8c988a6ea5b56afe934a

こんな感じ。

 

 

 

 

python でvocab.json(頻度の高いトークンのリスト)を作成します。

>python3

 

llama.cppフォルダーのトップへ移動

GGUFファイルを作成します。

python3 convert.py --vocabtype bpe --outfile ~/models/gguf/calm2-7b-chat.gguf ~/models/hf/models--cyberagent--calm2-7b-chat/snapshots/f666a1e43500643cb3ff8c988a6ea5b56afe934a

 

 

 

 

 

 

 

 

 

 

q2_k型で量子化実行。

 

 

 

 

 

 

 

 

 

 

同じような調子で、4-bit(q4_0)や5-bit(q5_k_m)などで量子化しておけば比較できます。

その他の型(quant method)

 


例によって「日本で一番高い山はどこですか?」と尋ねてみます。

初回はモデルの読み込みもあって若干時間がかかります。

 

 

 

 

 

 

 

 

 

 

2回目以降はスムースです。
2~3秒のタイムラグで応答が返ってきました。

 

 

 

 

 

 

 

 

 

 

ちなみに4-bit量子化(q4_0型)したものでは、こういう応答になります。

 

 

 

 

 

 

 

 

 

 

こういう答えを返すこともあります。

もはやファンタジーですが、妙に納得する人もいるかもしれません。

 

 

 

 

 

 

 

 

 

 

 


Appendix

他のモデルについて

●Rinna

rinna/youri-7b-chatでは.quantizeでエラー

error loading model: ERROR: byte not found in vocab

●ELYZA

elyza/ELYZA-japanese-Llama-2-7b-fast-instructでは.mainでエラー

GGML_ASSERT: llama.cpp:2695: codepoints_from_utf8(word).size() > 0
Aborted (core dumped)

このページでディスカッションされていますが、解決策は未だなし

 


Appendix2

HuggingFace Hub リンク

elyza/ELYZA-japanese-Llama-2-7b

量子化済み ELYZA-japanese-Llama-2-7b-fast-instruct

rinna/youri-7b-chat

量子化済み rinna-youri-7b-chat

cyberagent/calm2-7b-chat

量子化済み cyberagent-open-calm-3b

Rakuten/RakutenAI-7B-chat

量子化済み RakutenAI-7B-chat

 

日本語LLMまとめ

 


Appendix3

今回、量子化を実行するに当たってllama.cpp をBLASオプション付きでビルドしました。

ただmainコマンドで推論を実行するだけなら、前回クローンしてmakeのみで作ったmainでも可能です。

また、今回使ったプアなPC環境でもオリジナルのggufファイルは実行は可能ですが、実用には程遠い遅さです。

 


Next

7Bのモデルをラズパイ5 – 8GB で動かしてみる

ラズパイ5(8GB)で、日本語対応の7B(70億)パラメータのLLMを量子化して使ってみる

 


 

 

Be the first to comment

Leave a Reply

Your email address will not be published.


*