6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

GCPでRWKVを試す

Last updated at Posted at 2023-03-27

背景

ここ最近のChatGPT関連で色々調べていたところ、この記事↓でRWKVというものがあると知りました。

ポイントは貧弱な基盤でもLLMが動くとのこと。
Google Colabでも動くようです↓。

目的

自前の環境で動かせる → 機密情報を突っ込める → 使い道が広がる。
ということでGCPで立てた手順を書いておきます。

ComputeEngineでインスタンス作成

マシン構成は以下の通り。もう少し切り詰められるのかもしれないけど、素直に動かなかったりしたのでいったんこの構成でやりました。

  • GPUはA100(40GBタイプ)
  • ディスクは64GB(ブート用32GB、RWKV用に32GB。別ディスクにしてもOK)
    ※GPU用のOSイメージもあるけど、自由度が低くなると嫌なので今回は使いませんでした。

1時間当たり300円程度なのでお小遣いで全然遊べる!!
、、けど上げっぱなしだと月30万弱かかるようなので、落とし忘れ注意ですね。

image.png

※ちなみに、、節約したい人は最初のセットアップの時はGPU系を載せずにやって、セットアップが終わってからGPUを載せたほうが課金が安いですが、、
セットアップは10分程度で終わるのであんまり気にしなくてもいいかもしれません。

追記)
もう少しお安い以下の構成(T4×2、CPU×8+メモリ52GB)でも動きました。さすがに動きは遅くはなるけど、お値段は約1/3。
1時間たっぷり遊んでも100円!!安い!!
その場合、storategyを「cuda fp16」ではなく「cuda:0 fp16 -> cuda:1 fp16」とする必要があります。二つのGPUに跨ってロードさせる、という指示ようです。
image.png

必要なものをセットアップする

# 諸々まとめ入れておく
sudo apt install git git-lfs wget python3 pip unzip

# BlinkDL/ChatRWKVを取ってくる
git clone https://github.com/BlinkDL/ChatRWKV

# モデル置き場を掘っておく
sudo mkdir -p -m 777 /fsx/BlinkDL/HF-MODEL/rwkv-4-raven

# モデルを取ってくる。適宜 https://huggingface.co/BlinkDL/rwkv-4-pile-14b/resolve/main/ で最新のものを確認してください。
wget -P /fsx/BlinkDL/HF-MODEL/rwkv-4-raven/ "https://huggingface.co/BlinkDL/rwkv-4-raven/resolve/main/RWKV-4-Raven-14B-v9-Eng99%25-Other1%25-20230412-ctx8192.pth"

# GCPのGPUドライバーを取ってくる。参考→https://cloud.google.com/compute/docs/gpus/install-drivers-gpu?hl=ja#linux
curl https://raw.githubusercontent.com/GoogleCloudPlatform/compute-gpu-installation/main/linux/install_gpu_driver.py --output install_gpu_driver.py

# GCPのGPUドライバーをインストール
sudo python3 install_gpu_driver.py

# ninja入れる。最新バージョンはここ⇒https://github.com/ninja-build/ninja のタグで確認。
wget https://github.com/ninja-build/ninja/releases/download/v1.11.1/ninja-linux.zip
sudo unzip ninja-linux.zip -d /usr/local/bin/
sudo update-alternatives --install /usr/bin/ninja ninja /usr/local/bin/ninja 1 --force 

# cuda-toolsを入れる。本家はここ⇒「https://developer.nvidia.com/cuda-downloads」
wget https://developer.download.nvidia.com/compute/cuda/repos/debian11/x86_64/cuda-keyring_1.0-1_all.deb
sudo dpkg -i cuda-keyring_1.0-1_all.deb
sudo add-apt-repository contrib
sudo apt-get update
sudo apt-get -y install cuda

# pipで必要ライブラリを取ってくる
pip install numpy torch
pip install -r ChatRWKV/requirements.txt 

※ポイントは、、GCPでGPUドライバを入れるのは専用スクリプトを使う必要があるらしい。Nvidiaの純正ドライバだけだとうまくできなかった。これ知らないとハマる。

設定変更

必要に応じて ChatRWKV/v2/chat.py の中身の調整をします。

ChatRWKV/v2/chat.py

# CUDAを使う
os.environ["RWKV_CUDA_ON"] = '1'

# T4使うときはstorategyを書き換える
args.strategy = 'cuda:0 fp16 -> cuda:1 fp16'

# モデル置き場を変えるときはこの辺り↓を書きかえる。
args.MODEL_NAME = '/fsx/BlinkDL/HF-MODEL/rwkv-4-pile-14b/RWKV-4-Pile-14B-20230313-ctx8192-test1050'

# 出力が気に入らないときはGEN_TOP_Pを調整する。0.1、0.2、0.5 辺りで試す。
GEN_TOP_P = 0.8

動かす

これだけ↓

python3 ChatRWKV/v2/chat.py 

2分くらいでロードが終わってBobとAliceの会話が始まります。
image.png
知っているのかどうか微妙なラインの回答ですね。。

A100だと超爆速。
RWKV14-A100.gif

T4でも14B結構早いです。RWKV14-T4.gif

感想

1時間数百円程度のインスタンスでLLMが爆速で動かせてしまうしまう時代なんですね。
楽しい。感謝。

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?