kohya_ssを使おうとして遭遇したエラー2種

kohya_ssを使う上で遭遇したエラーの記録

遭遇したエラーリスト

2つのエラーに遭遇した。エラーログは以下のようなもの(抜粋):

  • CUDA SETUP: TODO: compile library for specific version: libbitsandbytes_cuda120.so
  • CUDA SETUP: Something unexpected happened. Please compile from source:

自分の環境での解決策を記録しておく。

環境

wsl2のubuntu22.04で行っている。

最初から最後までここのバージョンは変えていない:

NVIDIA-SMI 535.54.04    Driver Version: 536.23    CUDA Version: 12.2

最初に遭遇したエラー

記録がこれしか残っていなかった……が、エラーはbitsandbytesというモジュールで発生しており、これは、CUDAの機能をpythonで使うためのラッパであるので、おそらくCUDAのバージョンチェックでエラーしているのだろうと思えた(記録し損ねたエラーの記述から考えた記憶がある。ほぼほぼ似たようなエラーログが下記のリンクのissueにある):

CUDA SETUP: TODO: compile library for specific version: libbitsandbytes_cuda120.so

このbitsandbytesについて調べると、最新のbitsandbytesであればこのエラーは起きないような記述(以下のリンク)を見かけたので、kohya_ssのrequirements_linux.txtの中のbitsandbytesのバージョンを0.35.0から0.41.1に変更した。

[BUG REPORT]CalledProcessError · Issue #555 · bitsandbytes-foundation/bitsandbytes
/home/venshine/workspace/venshine/kohya_ss/venv/lib/python3.10/site-packages/bitsandbytes/cuda_setup/paths.py:93: UserWa...

次なるエラー

bitsandbytesのバージョンを上げて再試行したところ、今度は次のようなエラーが発生した:

CUDA SETUP: Loading binary /home/<usename>/kohya_ss/venv/lib/python3.10/site-packages/bitsandbytes/libbitsandbytes_cuda118.so...
libcusparse.so.11: cannot open shared object file: No such file or directory
CUDA SETUP: Something unexpected happened. Please compile from source:
git clone https://github.com/TimDettmers/bitsandbytes.git
cd bitsandbytes
CUDA_VERSION=118 make cuda11x
python setup.py install

CUDA 12.2の存在が無視されているような印象を受けるエラーメッセージが表示されている。対処法が書かれているが、自分の環境の場合、おそらくこれでは解決しないだろう。

PyTorchがCUDA11.8を使うようにセットアップされているようだ。先ほどいじったrequirements_linux.txtにもPyTorchのバージョンが2.0.1+cu118などと書いてあった。

これをいじる方法がいまいちわからなかったので(直接書き換えはまずそうだと思った)、色々調べると、次にようなページにいきついた:

https://github.com/TimDettmers/bitsandbytes/blob/main/how_to_use_nonpytorch_cuda.md#setting-the-environmental-variables-bnb_cuda_version-and-ld_library_path

ここで書かれているように、環境変数を追加・編集した。~/.bashrcで永続化しておく:

# ~/.bashrc
#...

export BNB_CUDA_VERSION=122
export LD_LIBRART_PATH=${LD_LIBRARY_PATH}:/usr/local/cuda-12.2

ちなみに、source ./venv/bin/activate && python -m bitsandbytesでbitsandbytesに関するセットアップが正しいかチェックすることができる。うまくいっていれば、次のような表示を目にすることができる:

SUCCESS!
Installation was successful!

そして、上の環境変数の調整をしたことで、この表示を目撃できた!

おわり

これでLoRAが使える。研究者や開発者の方々に感謝。

エラー記録を残すこと以外のことも何かできるといいなあと感じる。

また、もしかしたら最初に行った、requirements_linux.txtの書き換えは不要だったかもしれない。問題があればまずはここを直すか、git pullしよう。

以上です。

タイトルとURLをコピーしました