rinna nekomataモデルをローカル環境で動かしてみようとしたのですが、インストールガイドがあまり見当たらなかったので書いてみました。
環境
windows11
RAM 64GB
VRAM 16GB (RXT4090 laptop)
インストール
公式ページのrinna/nekomata-14b-instructionモデルのページを参考に動かしてみます。
conda create -n rinna python=3.9
activate rinna
How to use the modelのサンプルコードからtorch,transformersを用意します。(CUDAは11.8を選択)
このままサンプルコードを動かすとエラーが出るので、エラーの指示に従って他のライブラリもインストールします。
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
pip install transformers
以上で動きますが、このままではパラメータサイズの変更が出来ないのでbitsandbytesをインストールします。
pip install tiktoken transformers_stream_generator einops accelerate
windowsによくあることですが、bitsandbytesはwindowsサポートが曖昧なので私の場合はエラーが出ました。
bitsandbytes-windowsというプロジェクトがありますが、これはbitsandbytesのv0.37.5で更新が止まっているのでインストールに成功してもv0.39以上を使うようにエラーが出ます。
解決策としてはbitsandbytes not working with windows 11で紹介されているbitsandbytes-windows-webuiからインストールします。
pip install https://github.com/jllllll/bitsandbytes-windows-webui/releases/download/wheels/bitsandbytes-0.41.1-py3-none-win_amd64.whl
以上をまとめると下記のようになります。
Package | Version |
---|---|
accelerate | 0.27.2 |
bitsandbytes | 0.41.1 |
einops | 0.7.0 |
tiktoken | 0.6.0 |
transformer | 4.38.2 |
transformers-stream-generator | 0.0.4 |
torch torchaudio torchvision | 2.2.1+cu118 2.2.1+cu118 0.17.1+cu118 |
モデルのダウンロード
How to use the modelのサンプルコード4行目で実行されます。(AutoTokenizer.from_pretrained)
DLフォルダは”C:\Users\自分.cache\huggingface\hub\models–rinna–nekomata-14b-instruction\snapshots\ハッシュ\pytroch_model.bin“で28GBのモデルがダウンロードされます。
ダウンロード関連のエラーが出る場合はコマンドプロンプトを管理者として実行してみてください。
サンプルコード実行結果
そのまま実行すると下記のコードでモデルの展開方法が選ばれるので、私の環境ではRAM13GB程度、VRAM13GB~15GB消費され推論時間は70~90sec程度かかりました。
そこで、bitsandbytesを頑張ってインストールした恩恵を受けるためload_in_4bit、load_in_8bitオプションをつけて速度計測してみました。
VRAM [GB] | RAM [GB] | 速度 [sec] | |
load_in_4bit | 13.6 | 20~23(展開時のみ) | 12.9 |
load_in_8bit | 11 | 20~23 (展開時のみ) | 11.5 |
ちなみにオプションのつけ方のサンプルは下記の通りです。
model = AutoModelForCausalLM.from_pretrained(
"rinna/nekomata-14b-instruction",
device_map="cuda",
trust_remote_code=True,
load_in_4bit=True,
bf16=True )