Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bitsandbytes gives error while -- Initialization of a tokenizer for the Mistral-7b model #993

Closed
flysaurus opened this issue Jan 28, 2024 · 3 comments

Comments

@flysaurus
Copy link

flysaurus commented Jan 28, 2024

System Info

Windows 10, Python 3.9.4, GPU Geforce RTX 2060

Reproduction

import os
import torch

General packages

import numpy as np # linear algebra
import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)
from textwrap import fill
from IPython.display import Markdown, display # for formating Python display folowing markdown language
import warnings
warnings.filterwarnings('ignore') # avoid warning messages importing packages

Mistral and LangChain packages (prompt engineering)

import torch
from langchain import PromptTemplate, HuggingFacePipeline
from langchain.output_parsers import ResponseSchema, StructuredOutputParser
from transformers import BitsAndBytesConfig, AutoModelForCausalLM, AutoTokenizer, GenerationConfig, pipeline

Model version of Mistral

MODEL_NAME = "mistralai/Mistral-7B-Instruct-v0.1"

quantization_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_compute_dtype=torch.float16,
bnb_4bit_quant_type="nf4",
bnb_4bit_use_double_quant=True,
)

################### BELOW CELL ERRORS OUT #######################

Initialization of a tokenizer for the Mistral-7b model,

necessary to preprocess text data for input

tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME, use_fast=True)
tokenizer.pad_token = tokenizer.eos_token

Initialization of the pre-trained language Mistral-7b

model = AutoModelForCausalLM.from_pretrained(
MODEL_NAME, torch_dtype=torch.float16,
trust_remote_code=True,
device_map="auto",
quantization_config=quantization_config
)

################### ERROR OUTPUT #############################
False

===================================BUG REPORT===================================

The following directories listed in your path were found to be non-existent: {WindowsPath('/matplotlib_inline.backend_inline'), WindowsPath('module')}
The following directories listed in your path were found to be non-existent: {WindowsPath('vs/workbench/api/node/extensionHostProcess')}
CUDA_SETUP: WARNING! libcudart.so not found in any environmental path. Searching in backup paths...
The following directories listed in your path were found to be non-existent: {WindowsPath('/usr/local/cuda/lib64')}
DEBUG: Possible options found for libcudart.so: set()
CUDA SETUP: PyTorch settings found: CUDA_VERSION=121, Highest Compute Capability: 7.5.
CUDA SETUP: To manually override the PyTorch CUDA version please see:https://github.com/TimDettmers/bitsandbytes/blob/main/how_to_use_nonpytorch_cuda.md
CUDA SETUP: Loading binary f:\0.MilindPython\Mistral.venv\lib\site-packages\bitsandbytes\libbitsandbytes_cuda121.so...
argument of type 'WindowsPath' is not iterable
CUDA SETUP: Problem: The main issue seems to be that the main CUDA runtime library was not detected.
CUDA SETUP: Solution 1: To solve the issue the libcudart.so location needs to be added to the LD_LIBRARY_PATH variable
CUDA SETUP: Solution 1a): Find the cuda runtime library via: find / -name libcudart.so 2>/dev/null
CUDA SETUP: Solution 1b): Once the library is found add it to the LD_LIBRARY_PATH: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:FOUND_PATH_FROM_1a
CUDA SETUP: Solution 1c): For a permanent solution add the export from 1b into your .bashrc file, located at ~/.bashrc
CUDA SETUP: Solution 2: If no library was found in step 1a) you need to install CUDA.
CUDA SETUP: Solution 2a): Download CUDA install script: wget https://raw.githubusercontent.com/TimDettmers/bitsandbytes/main/cuda_install.sh
CUDA SETUP: Solution 2b): Install desired CUDA version to desired location. The syntax is bash cuda_install.sh CUDA_VERSION PATH_TO_INSTALL_INTO.
CUDA SETUP: Solution 2b): For example, "bash cuda_install.sh 113 ~/local/" will download CUDA 11.3 and install into the folder ~/local
f:\0.MilindPython\Mistral.venv\lib\site-packages\bitsandbytes\cuda_setup\main.py:167: UserWarning: Welcome to bitsandbytes. For bug reports, please run

python -m bitsandbytes

warn(msg)
Traceback (most recent call last):
File "C:\Python39\lib\runpy.py", line 188, in _run_module_as_main
mod_name, mod_spec, code = _get_module_details(mod_name, Error)
File "C:\Python39\lib\runpy.py", line 147, in get_module_details
return get_module_details(pkg_main_name, error)
File "C:\Python39\lib\runpy.py", line 111, in get_module_details
import(pkg_name)
File "f:\0.MilindPython\Mistral.venv\lib\site-packages\bitsandbytes_init
.py", line 6, in
from . import cuda_setup, utils, research
File "f:\0.MilindPython\Mistral.venv\lib\site-packages\bitsandbytes\research_init
.py", line 1, in
from . import nn
File "f:\0.MilindPython\Mistral.venv\lib\site-packages\bitsandbytes\research\nn_init.py", line 1, in
from .modules import LinearFP8Mixed, LinearFP8Global
File "f:\0.MilindPython\Mistral.venv\lib\site-packages\bitsandbytes\research\nn\modules.py", line 8, in
from bitsandbytes.optim import GlobalOptimManager
File "f:\0.MilindPython\Mistral.venv\lib\site-packages\bitsandbytes\optim_init.py", line 6, in
from bitsandbytes.cextension import COMPILED_WITH_CUDA
File "f:\0.MilindPython\Mistral.venv\lib\site-packages\bitsandbytes\cextension.py", line 20, in
raise RuntimeError('''
RuntimeError:
CUDA Setup failed despite GPU being available. Please run the following command to get more information:

    python -m bitsandbytes

    Inspect the output of the command and see if you can locate CUDA libraries. You might need to add them
    to your LD_LIBRARY_PATH. If you suspect a bug, please take the information from python -m bitsandbytes
    and open an issue at: https://github.com/TimDettmers/bitsandbytes/issues

python -m bitsandbytes RETURNS THE SAME ABOVE OUTPUT

Expected behavior

Tokenizer initialized

@Titus-von-Koeller
Copy link
Collaborator

Hey @flysaurus Thanks for raising this.

Unfortunately, we don't provide official Windows support yet. Though there is an unofficial Windows fork and we're working to integrate it in our current cross-platform effort. The official support might still take a while though.

We need to add to the documentation a disclaimer that Windows or Mac is not supported.

Where would you think that would be best placed other than our own docs? Probably in the HF docs and when a mention in the issue template would be good.

@Titus-von-Koeller
Copy link
Collaborator

@wkpark Do you think there is an easy way to add an descriptive error in setup.py when detecting Windows?

@wkpark
Copy link
Contributor

wkpark commented Jan 29, 2024

@wkpark Do you think there is an easy way to add an descriptive error in setup.py when detecting Windows?

the current wheel file is "bitsandbytes-0.42.0-py3-none-any.whl" so any platform can install it, (in cmake PR, add ext_modules=[Extension("bitsandbytes", sources=[], language="c")], option to setup() call will make platform dependent wheel. 9d65351#diff-60f61ab7a8d1910d86d9fda2261620314edcae5894d5aaa236b821c7256badd7R39 as bitsandbytes-0.42.0-cp310-cp310-win_amd64.whl

(Please see also #876 (this is a minimal windows fix))

and, current main branch has dll lib detection for windows, the following warning message will be printed

>python -m bitsandbytes
False

===================================BUG REPORT===================================
F:\webui\webui\stable-diffusion-webui\venv\lib\site-packages\bitsandbytes\cuda_setup\main.py:177: UserWarning: Welcome to bitsandbytes. For bug reports, please run

python -m bitsandbytes


  warn(msg)
================================================================================
The following directories listed in your path were found to be non-existent: {WindowsPath('F:/CUDA/v10.0')}
The following directories listed in your path were found to be non-existent: {WindowsPath('F:/CUDA/v8.0')}
The following directories listed in your path were found to be non-existent: {WindowsPath('F:/CUDA/v9.0')}
The following directories listed in your path were found to be non-existent: {WindowsPath('F:/CUDA/v9.2')}
The following directories listed in your path were found to be non-existent: {WindowsPath('/Users/WK')}
The following directories listed in your path were found to be non-existent: {WindowsPath('/DESKTOP-HEAVEN')}
The following directories listed in your path were found to be non-existent: {WindowsPath('F:/CUDA/v8.0')}
The following directories listed in your path were found to be non-existent: {WindowsPath('F:/CUDA/v9.0')}
The following directories listed in your path were found to be non-existent: {WindowsPath('F:/OpenSSL-Win64/bin/openssl.cfg')}
The following directories listed in your path were found to be non-existent: {WindowsPath('10.0.20348.0')}
The following directories listed in your path were found to be non-existent: {WindowsPath('10.0.20348.0')}
The following directories listed in your path were found to be non-existent: {WindowsPath('C:/Users/WK/go/bin'), WindowsPath('C:/Users/WK/mambaforge/Library/usr/bin'), WindowsPath('F:/CUDA/v9.0/libnvvp'), WindowsPath('C:/Program Files (x86)/Microsoft SDKs/TypeScript/1.0'), WindowsPath('C:/Program Files (x86)/ePapyrus/Papyrus-PlugIn-web'), WindowsPath('F:/CUDA/v10.0/bin'), WindowsPath('F:/CUDA/nasm-2.13.01'), WindowsPath('C:/Users/WK/AppData/Roaming/npm'), WindowsPath('C:/Program Files (x86)/ePapyrus/Papyrus-PlugIn-web/Addins'), WindowsPath('C:/Program Files (x86)/AMD/ATI.ACE/Core-Static'), WindowsPath('F:/CUDA/v9.0/bin'), WindowsPath('C:/Users/WK/mambaforge/Library/mingw-w64/bin'), WindowsPath('F:/CUDA/v10.0/libnvvp')}
The following directories listed in your path were found to be non-existent: {WindowsPath('C:/Users/WK/go/bin'), WindowsPath('C:/Users/WK/mambaforge/Library/usr/bin'), WindowsPath('F:/CUDA/v9.0/libnvvp'), WindowsPath('C:/Program Files (x86)/Microsoft SDKs/TypeScript/1.0'), WindowsPath('C:/Program Files (x86)/ePapyrus/Papyrus-PlugIn-web'), WindowsPath('F:/CUDA/v10.0/bin'), WindowsPath('F:/CUDA/nasm-2.13.01'), WindowsPath('C:/Users/WK/AppData/Roaming/npm'), WindowsPath('C:/Program Files (x86)/ePapyrus/Papyrus-PlugIn-web/Addins'), WindowsPath('C:/Program Files (x86)/AMD/ATI.ACE/Core-Static'), WindowsPath('F:/CUDA/v9.0/bin'), WindowsPath('C:/Users/WK/mambaforge/Library/mingw-w64/bin'), WindowsPath('F:/CUDA/v10.0/libnvvp')}
The following directories listed in your path were found to be non-existent: {WindowsPath('C:/Users/WK/AppData/Local/Packages/PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0/LocalCache/local-packages')}
DEBUG: Possible options found for libcudart.so: {WindowsPath('C:/WINDOWS/system32/nvcuda.dll')}
CUDA SETUP: PyTorch settings found: CUDA_VERSION=118, Highest Compute Capability: 8.9.
CUDA SETUP: To manually override the PyTorch CUDA version please see:https://github.com/TimDettmers/bitsandbytes/blob/main/how_to_use_nonpytorch_cuda.md
CUDA SETUP: Required library version not found: libbitsandbytes_cuda118.dll. Maybe you need to compile it from source?
CUDA SETUP: Defaulting to libbitsandbytes_cpu.dll...

================================================ERROR=====================================
CUDA SETUP: CUDA detection failed! Possible reasons:
1. You need to manually override the PyTorch CUDA version. Please see: "https://github.com/TimDettmers/bitsandbytes/blob/main/how_to_use_nonpytorch_cuda.md
2. CUDA driver not installed
3. CUDA not installed
4. You have multiple conflicting CUDA libraries
5. Required library not pre-compiled for this bitsandbytes release!
CUDA SETUP: If you compiled from source, try again with `make CUDA_VERSION=DETECTED_CUDA_VERSION` for example, `make CUDA_VERSION=113`.
CUDA SETUP: The CUDA version for the compile might depend on your conda install. Inspect CUDA version via `conda list | grep cuda`.
================================================================================

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 SETUP: Setup Failed!
Traceback (most recent call last):
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\lib\runpy.py", line 187, in _run_module_as_main
    mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\lib\runpy.py", line 146, in _get_module_details
    return _get_module_details(pkg_main_name, error)
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\lib\runpy.py", line 110, in _get_module_details
    __import__(pkg_name)
  File "F:\webui\webui\stable-diffusion-webui\venv\lib\site-packages\bitsandbytes\__init__.py", line 6, in <module>
    from . import cuda_setup, utils, research
  File "F:\webui\webui\stable-diffusion-webui\venv\lib\site-packages\bitsandbytes\research\__init__.py", line 1, in <module>
    from . import nn
  File "F:\webui\webui\stable-diffusion-webui\venv\lib\site-packages\bitsandbytes\research\nn\__init__.py", line 1, in <module>
    from .modules import LinearFP8Mixed, LinearFP8Global
  File "F:\webui\webui\stable-diffusion-webui\venv\lib\site-packages\bitsandbytes\research\nn\modules.py", line 8, in <module>
    from bitsandbytes.optim import GlobalOptimManager
  File "F:\webui\webui\stable-diffusion-webui\venv\lib\site-packages\bitsandbytes\optim\__init__.py", line 6, in <module>
    from bitsandbytes.cextension import COMPILED_WITH_CUDA
  File "F:\webui\webui\stable-diffusion-webui\venv\lib\site-packages\bitsandbytes\cextension.py", line 20, in <module>
    raise RuntimeError('''
RuntimeError:
        CUDA Setup failed despite GPU being available. Please run the following command to get more information:

        python -m bitsandbytes

        Inspect the output of the command and see if you can locate CUDA libraries. You might need to add them
        to your LD_LIBRARY_PATH. If you suspect a bug, please take the information from python -m bitsandbytes
        and open an issue at: https://github.com/TimDettmers/bitsandbytes/issues

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants