module 'bitsandbytes.nn' has no attribute 'Linear8bitLt'
흔하게 만난다는 오류중에 하나..
분석
bitsandbytes.nn 이라는 모듈에 Linear8bitLt 라는 기호가 없다는 의미
https://github.com/TimDettmers/bitsandbytes/blob/main/bitsandbytes/nn/modules.py 에 가보면
Linear8BitLt라는 기호가 있음을 확인가능하다
Tag를 열어서 0.32 버전까지 확인했는데 모두 있다. (더 이하의 버전은 여기서 관리되지 않는 듯)
위의 상황을 해석하면 Linear8BitLt라는 기호가 추가되기 전의 버전이 설치된 것 이라고 판단 할 수 있다.
즉 최소 0.32 미만의 버전이 설치되어 있다.
확인
pip list | grep bits 로 설치된 버전을 확인하자 (윈도우는 pip list | findstr bits)
root@C.7328156:/$ pip list | grep bits
bitsandbytes 0.37.1
bitsandbytes-cuda116 0.26.0.post2
어? 두 개 설치되어 있네. 그리고 0.26 딱 이게 문제다 싶다.
pip uninstall bitsandbytes-cuda116
명령으로 제거한다.
검증
잘 설치되었는지 확인.
root@C.7328156:/$ python3 -m bitsandbytes ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++ BUG REPORT INFORMATION ++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++ /usr/local CUDA PATHS +++++++++++++++++++ +++++++++++++++ WORKING DIRECTORY CUDA PATHS +++++++++++++++ /opt/conda/lib/libicudata.so /opt/conda/lib/python3.10/site-packages/torch/lib/libc10_cuda.so /opt/conda/lib/python3.10/site-packages/torch/lib/libtorch_cuda.so /opt/conda/lib/python3.10/site-packages/torch/lib/libtorch_cuda_linalg.so /opt/conda/lib/python3.10/site-packages/bitsandbytes/libbitsandbytes_cuda110.so /opt/conda/lib/python3.10/site-packages/bitsandbytes/libbitsandbytes_cuda110_nocublaslt.so /opt/conda/lib/python3.10/site-packages/bitsandbytes/libbitsandbytes_cuda111.so /opt/conda/lib/python3.10/site-packages/bitsandbytes/libbitsandbytes_cuda111_nocublaslt.so /opt/conda/lib/python3.10/site-packages/bitsandbytes/libbitsandbytes_cuda114.so /opt/conda/lib/python3.10/site-packages/bitsandbytes/libbitsandbytes_cuda114_nocublaslt.so /opt/conda/lib/python3.10/site-packages/bitsandbytes/libbitsandbytes_cuda115.so /opt/conda/lib/python3.10/site-packages/bitsandbytes/libbitsandbytes_cuda115_nocublaslt.so /opt/conda/lib/python3.10/site-packages/bitsandbytes/libbitsandbytes_cuda117.so /opt/conda/lib/python3.10/site-packages/bitsandbytes/libbitsandbytes_cuda117_nocublaslt.so /opt/conda/lib/python3.10/site-packages/bitsandbytes/libbitsandbytes_cuda118.so /opt/conda/lib/python3.10/site-packages/bitsandbytes/libbitsandbytes_cuda118_nocublaslt.so /opt/conda/lib/python3.10/site-packages/bitsandbytes/libbitsandbytes_cuda120.so /opt/conda/lib/python3.10/site-packages/bitsandbytes/libbitsandbytes_cuda120_nocublaslt.so /opt/conda/lib/python3.10/site-packages/bitsandbytes/libbitsandbytes_cuda121.so /opt/conda/lib/python3.10/site-packages/bitsandbytes/libbitsandbytes_cuda121_nocublaslt.so /opt/conda/lib/python3.10/site-packages/bitsandbytes/libbitsandbytes_cuda122.so /opt/conda/lib/python3.10/site-packages/bitsandbytes/libbitsandbytes_cuda122_nocublaslt.so /opt/conda/lib/libcudart.so /opt/conda/pkgs/icu-58.2-he6710b0_3/lib/libicudata.so /opt/conda/pkgs/pytorch-2.1.0-py3.10_cuda12.1_cudnn8.9.2_0/lib/python3.10/site-packages/torch/lib/libc10_cuda.so /opt/conda/pkgs/pytorch-2.1.0-py3.10_cuda12.1_cudnn8.9.2_0/lib/python3.10/site-packages/torch/lib/libtorch_cuda.so /opt/conda/pkgs/pytorch-2.1.0-py3.10_cuda12.1_cudnn8.9.2_0/lib/python3.10/site-packages/torch/lib/libtorch_cuda_linalg.so /opt/conda/pkgs/icu-73.1-h6a678d5_0/lib/libicudata.so /opt/conda/pkgs/cudatoolkit-11.8.0-h6a678d5_0/lib/libcudart.so /usr/lib/x86_64-linux-gnu/libcuda.so /usr/lib/x86_64-linux-gnu/stubs/libcuda.so /usr/lib/x86_64-linux-gnu/libcudart.so /usr/lib/nsight-compute/target/linux-desktop-glibc_2_11_3-x64/libcuda-injection.so
++++++++++++++++++ LD_LIBRARY CUDA PATHS +++++++++++++++++++
/opt/conda/pkgs/cudatoolkit-11.8.0-h6a678d5_0/lib CUDA PATHS /opt/conda/pkgs/cudatoolkit-11.8.0-h6a678d5_0/lib/libcudart.so
++++++++++++++++++++++++++ OTHER +++++++++++++++++++++++++++
COMPILED_WITH_CUDA = True
COMPUTE_CAPABILITIES_PER_GPU = ['8.9'] ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++ DEBUG INFO END ++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Running a quick check that:
+ library is importable
+ CUDA function is callable
WARNING: Please be sure to sanitize sensible info from any such env vars!
SUCCESS!
Installation was successful!
결론
bitsandbytes 패키지가 여러버전이 설치되어 있었음.