ryuuriの日記: VRAM8GBのRTX3080Laptop + Window11 で、今話題の RWKV(ルワクフ)を動かしてみた 2
意外と苦労したが、なんのことはない、ちゃんとドキュメントを読んでないのが悪かったというね。
ということで、実施の手順
(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も試してみて、どの程度スピードに差があるか見てみようかな
ライブラリ忘れ (スコア:1)
pip install rwkv
肝心な rwkv のライブラリが抜けてた・・・
どのくらい「創発」的な推論とかできるのでしょうか? (スコア:1)
私はRTX3080のようなメモリの大きさのGPUは持っていないので、RWKVが動かせなさそうです。
いまのRWKVでどのくらい算数の問題とか、その他「創発」と言われるような能力があるのか興味深いです。
Personality Injection ! 恋愛シミュと化す Chat GPT [qiita.com]
とか
完全なる“俺の嫁”は実現するのか? 対話型AIの目まぐるしい進化の先に見える「人格的AI」の可能性 [yahoo.co.jp]
のようなことが少しでもできると面白そうです。