パスワードを忘れた? アカウント作成
16546858 journal
日記

ryuuriの日記: VRAM8GBのRTX3080Laptop + Window11 で、今話題の RWKV(ルワクフ)を動かしてみた 2

日記 by ryuuri

意外と苦労したが、なんのことはない、ちゃんとドキュメントを読んでないのが悪かったというね。

ということで、実施の手順

(1) nvidiaのcuda toolkitをインストールする。インストールしてあっても、古くなっている可能性があるので、バージョンは確認。URLは、https://developer.nvidia.com/cuda-toolkit

(2) pythonをインストールする。私は、3.10をインストール。3.11が出てるけど、最新はちょっと怖いので1個前。まあ、3.10は最新が1年以上前だから、3.11のが良いのかも。URLは、https://www.python.org/downloads/

(3) フォルダを作る

(4) cmd を叩き、コマンドプロンプトを起動。(3)のフォルダへ移動する。

(5) venvを作る

python -m venv venv_RWKV

(6) 作ったvenvをアクティベート

venv_RWKV\Scripts\activate.bat

(7) 色々、cuda周りとかnumpyとかをインストールする

python -m pip install --upgrade pip
pip install numpy
pip install prompt_toolkit
pip install -U pycuda
pip install -U torch

(8) cudaインストール前にtorchを入れてしまっていると、torchが非cuda版になってしまう。その場合は、一旦パージして再インストールする(どうも、キャッシュがあるせいで、-Uで上書きされないらしい)

(AssertionError: Torch not compiled with CUDA enabled というエラーになる)
https://github-com.translate.goog/pytorch/pytorch/issues/30664?_x_tr_sl=en&_x_tr_tl=ja&_x_tr_hl=ja&_x_tr_pto=op,sc

pip uninstall torch
pip cache purge
pip install torch -f https://download.pytorch.org/whl/torch_stable.html

(8) RWKVのチャットプログラムを git clone する

git clone https://github.com/BlinkDL/ChatRWKV

(9) (3) のフォルダの下に、data フォルダを作成する

(10) 学習済みモデルデータをダウンロードして、(9)のdataフォルダに格納する

https://huggingface.co/BlinkDL/rwkv-4-pile-14b/blob/main/RWKV-4-Pile-14B-20230313-ctx8192-test1050.pth

(11) ChatRWKV\v2 に移動

cd ChatRWKV\v2

(12) ダウンロードしたモデルを高速・軽量化するためにコンバートする

python convert_model.py --in "../../data/RWKV-4-Pile-14B-20230313-ctx8192-test1050" --out "../../data/ok14b_stream.pth" --strategy "cuda fp16i8 *10+"

(13) GPU番号を調べる。以下のコマンドを実行して、どのGPU番号が使われているか調べる。私のところでは、GPU 0 だった

nvidia-smi

(14) chat.pyを修正する
    14-1) CUDA DEVICEを指定する 引数のして方法が怪しいので、直接指定した 先程調べた GPU 番号を記述する

        # os.environ["CUDA_VISIBLE_DEVICES"] = sys.argv[1]
        os.environ["CUDA_VISIBLE_DEVICES"] = "0"

    14-2) モデル名を書き換える ここでは、(12)で、コンバートしたファイル名から pth の拡張子を除いたものを指定する 

      args.MODEL_NAME = '../../data/ok14b_stream'

    14-3) ストラテジを指定する この *10+ というのを指定することで、メモリが小さくても動くようになるとのこと 前段をGPUで処理して最終段をCPUに任せると書いてあった気がする

args.strategy = 'cuda fp16i8 *10+'

    ※) この辺のパラメータの詳細は、https://pypi.org/project/rwkv/ を参照
   ここに、3GBのVRAMで動かす設定も書かれているが、その際は、前段をGPUで実行して、最後の1段をCPUで実行する模様 遅いので、将来的にはもうちょっと速くするらしい

(15) chat.pyを実行する

python chat.py

これで、起動する。スピードは結構遅い。chatGPT 4 よりも遅いので、やはり良いGPU欲しいな

なお、プロンプトで使うコマンドの一覧は以下の通り

Commands:
say something --> chat with bot. use \n for new line.
+ --> alternate chat reply
+reset --> reset chat

+gen YOUR PROMPT --> free generation with any prompt. use \n for new line.
+qa YOUR QUESTION --> free generation - ask any question (just ask the question). use \n for new line.
+++ --> continue last free generation (only for +gen / +qa)
++ --> retry last free generation (only for +gen / +qa)

この例では、一昨日に動かした、3/13版を使っているが、昨日、今日と最新版が更新されている
最新版は、alpacaによる fine tuningが行われていた、chatの性能が良いとか

14bのモデルに関しては、以下に色々書いてある

https://huggingface.co/BlinkDL/rwkv-4-pile-14b

そして、ファイル一覧は、この辺

https://huggingface.co/BlinkDL/rwkv-4-pile-14b/tree/main

とりあえず、これから、今日リリースされた版を試してみるつもり
ストラテジも、GPUだけを使うバージョンの他、GPU->CPUも試してみて、どの程度スピードに差があるか見てみようかな

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

皆さんもソースを読むときに、行と行の間を読むような気持ちで見てほしい -- あるハッカー

読み込み中...