WindowsでYuEGPを使ってみた。
前回、YuEを8bit量子化してロードしてみましたが、効果はなく、その後も色々試していたのですが、あまりうまく行っていなかったところ、XのTLにこんなものが流れてきました。
Here comes Yue GP 2.0 !
— deepbeepmeep (@deepbeepmeep) February 6, 2025
Thanks to new optimisations I have been cooking: x3 faster with 16Gb+ of VRAM (1 min of song takes now only 4 minutes on a RTX 4090 !) and x2 faster with 12 GB of VRAM. https://t.co/Ef2kDNl8gY
英語は苦手なのですが、どうやら12GBのVRAMで高速化しそうな感じだったので、確認してみることに。
結論から言えば、2倍ほど高速化ができました。
(とはいえ、2時間が1時間なのでまだまだ実用的とはいい難いのですが…)
また、簡単なWebUIが作られているので、若干ですが使いやすくなっていると思います。
インストール手順は、公式リポジトリのままでいいのですが、簡単に説明します。
まずは、ソースコードのCloneから。
git lfs install
git clone https://github.com/deepbeepmeep/YuEGP/
cd YuEGP/inference/
git clone https://huggingface.co/m-a-p/xcodec_mini_infer
公式リポジトリの記述どおりで問題ありません。
次に、公式リポジトリでは省略されていますが、仮想環境の作成。
cd ..
D:\Users\siouni\AppData\Local\Programs\Python\Python310\python.exe -m venv venv
venv\Scripts\activate
うちの環境ではこんな感じ。
Python3.10がいいと思います。(後述のTritonに関連するため。)
パスは適当に読み替えてください。
次は、公式の記述どおりPyTorchをインストールします。
pip install torch==2.5.1 torchvision torchaudio --index-url https://download.pytorch.org/whl/test/cu124
※なんかURLにtestって入ってるのが気になるけど…まあ、いいか。
なお、PyTorch2.5.1はたまたまなのかわかりませんが、後述のTritonでもこのバージョンが要求されます。
次に依存関係をインストールします。
これも公式リポジトリの記述に従えばOKです。
pip install -r requirements.txt
そして、またまた大問題のFlashAttention2。
これも、基本的には公式の記述どおりで問題ありません。
(VisualStudio2022が必要かも、そのうち別途解説)
時間がかかる場合があるので、その場合は一晩ほど放置すればいいです。
pip install flash-attn --no-build-isolation
一度、インストールされていれば時間はかからないはずです。
(Pythonのバージョンが違う場合は、時間がかかります。)
ひとまずこれでインストールは完了です。
実際に動かすにはいくつか確認することがあります。
メインメモリの容量
VRAMの容量
私の場合、メインメモリが32GB、VRAMが12GB。
この場合、プロファイル番号4となります。
この辺が、mmgpというメモリ管理ライブラリのソースのコメントと、公式リポジトリの説明が若干食い違ってるような気はします。
ソースのコメント
profile_name : num of the profile:
HighRAM_HighVRAM_Fastest (=1): at least 48 GB of RAM and 24 GB of VRAM : the fastest well suited for a RTX 3090 / RTX 4090
HighRAM_LowVRAM_Fast (=2): at least 48 GB of RAM and 12 GB of VRAM : a bit slower, better suited for RTX 3070/3080/4070/4080
or for RTX 3090 / RTX 4090 with large pictures batches or long videos
LowRAM_HighVRAM_Medium (=3): at least 32 GB of RAM and 24 GB of VRAM : so so speed but adapted for RTX 3090 / RTX 4090 with limited RAM
LowRAM_LowVRAM_Slow (=4): at least 32 GB of RAM and 12 GB of VRAM : if have little VRAM or generate longer videos
VerylowRAM_LowVRAM_Slowest (=5): at least 24 GB of RAM and 10 GB of VRAM : if you don't have much it won't be fast but maybe it will work
To run the Gradio app with profile 3 (default profile, a bit slower and the model is quantized to 8 bits but requires 12 GB of VRAM)
To run the Gradio app with less than 10 GB of VRAM profile 4 (very slow as this will incur sequencial offloading)
もしかしたら、3でも問題ないのかもしれません。(実際動く)
プロファイル番号3はソースのコメントによると、メインメモリ32GB、VRAM24GB(3090、4090)向けの設定のようでした。
共有メモリまで含めれば、足りるといえば足りる。
公式リポジトリの説明や、ソースのコメントからプロファイル番号を決めて、下記のコマンドを実行します。
cd inference
python gradio_server.py --profile 4
ただ、私の環境ではエラーが発生したためソース(gradio_server.py)を修正しました。
with torch.no_grad():
stage2_output = model.generate(input_ids=input_ids,
min_new_tokens=7,
max_new_tokens=7,
eos_token_id=mmtokenizer.eoa,
pad_token_id=mmtokenizer.eoa,
logits_processor=block_list,
# session_cache = session_cache, <- ここをコメントアウト
)
gradio_server.pyを「session_cache = session_cache」とかで検索してもらったら出てくると思います。
(これがどう影響するかは謎、エラー的にはこのオプションは使われていないというエラーなので問題ないはず?)
一応、私の環境ではこれで動作するようになりました。
ちなみに自動でブラウザにページが表示されたりしないので、コンソールで起動を確認したら、ブラウザに表示されたURLを打ち込んでアクセスしてください。
追記
すっかり忘れてましたが、tritonがあれば--compileオプションで高速化ができるかもしれません。
(私の環境ではいまいちでした。)
Tritonは公式ではWindowsには対応していないので、非公式版のTritonを使用します。
2025/2/8時点で最新版ではエラーになったので、3.1.0を使用しました。
pip install https://github.com/woct0rdho/triton-windows/releases/download/v3.1.0-windows.post5/triton-3.1.0-cp310-cp310-win_amd64.whl
これで、起動時のコマンドに--compileオプションをつけることで、コンパイルされて高速化する…はずです。
お金ないので、もしよかったら購入してくれると助かります。
※有料部分には何もありません。
もしくはこちらから投げ銭など頂けると嬉しいです。
ここから先は
¥ 300
この記事が気に入ったらチップで応援してみませんか?