모델 로드시 에러가 발생하면서 실행되지 않는 문제

아래 코드로 모델을 로드하려고하는데 colab에서는 잘 되는 코드가 윈도우11에서는 잘 되지 않습니다. 뭐가 문제인지 모르겠어요. CUDA도 11.8로 버전다운했고,

print(f"Was CUDA enabled? {torch.cuda.is_available()}") 했을 때 True가 나오는것도 확인했습니다.

전체 소스는 다음과 같습니다.
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig

print(f"Was CUDA enabled? {torch.cuda.is_available()}")

model_id = "beomi/polyglot-ko-12.8b-safetensors" # safetensors 컨버팅된 레포
bnb_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_use_double_quant=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=torch.bfloat16
)

tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, quantization_config=bnb_config, device_map={"":0})

이렇게 하고 실행하면 다음과 같은 에러가 표시됩니다.
[c:\Users\hwyoo\AppData\Local\Programs\Python\Python311\Lib\site-packages\tqdm\auto.py:21](file:///C:/Users/hwyoo/AppData/Local/Programs/Python/Python311/Lib/site-packages/tqdm/auto.py:21): TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See Installation — Jupyter Widgets 8.0.7 documentation from .autonotebook import tqdm as notebook_tqdm

Was CUDA enabled? True False ===================================BUG REPORT=================================== ================================================================================ The following directories listed in your path were found to be non-existent: {WindowsPath('vs/workbench/api/node/extensionHostProcess')} The following directories listed in your path were found to be non-existent: {WindowsPath('/matplotlib_inline.backend_inline'), WindowsPath('module')} 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=118, Highest Compute Capability: 8.6. 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 [c:\Users\hwyoo\AppData\Local\Programs\Python\Python311\Lib\site-packages\bitsandbytes\libbitsandbytes_cuda118.so...](file:///C:/Users/hwyoo/AppData/Local/Programs/Python/Python311/Lib/site-packages/bitsandbytes/libbitsandbytes_cuda118.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://github.com/TimDettmers/bitsandbytes/blob/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

[c:\Users\hwyoo\AppData\Local\Programs\Python\Python311\Lib\site-packages\bitsandbytes\cuda_setup\main.py:166](file:///C:/Users/hwyoo/AppData/Local/Programs/Python/Python311/Lib/site-packages/bitsandbytes/cuda_setup/main.py:166): UserWarning: Welcome to bitsandbytes. For bug reports, please run python -m bitsandbytes warn(msg)

--------------------------------------------------------------------------- RuntimeError Traceback (most recent call last) File [c:\Users\hwyoo\AppData\Local\Programs\Python\Python311\Lib\site-packages\transformers\utils\import_utils.py:1096](file:///C:/Users/hwyoo/AppData/Local/Programs/Python/Python311/Lib/site-packages/transformers/utils/import_utils.py:1096), in _LazyModule.get_module(self, module_name) 1095 try: -> 1096 return importlib.import_module("." + module_name, self.name) 1097 except Exception as e: File [c:\Users\hwyoo\AppData\Local\Programs\Python\Python311\Lib\importlib_init.py:126](file:///C:/Users/hwyoo/AppData/Local/Programs/Python/Python311/Lib/importlib/init.py:126), in import_module(name, package) 125 level += 1 --> 126 return _bootstrap._gcd_import(name[level:], package, level) File :1204, in _gcd_import(name, package, level) File :1176, in find_and_load(name, import) File :1147, in find_and_load_unlocked(name, import) File :690, in _load_unlocked(spec) File :940, in exec_module(self, module) File :241, in _call_with_frames_removed(f, *args, **kwds) File [c:\Users\hwyoo\AppData\Local\Programs\Python\Python311\Lib\site-packages\transformers\models\gpt_neox\modeling_gpt_neox.py:38](file:///C:/Users/hwyoo/AppData/Local/Programs/Python/Python311/Lib/site-packages/transformers/models/gpt_neox/modeling_gpt_neox.py:38) 31 from ...modeling_outputs import (

...

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: Issues · TimDettmers/bitsandbytes · GitHub

Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings...
혹시 어떤 부분이 잘못된건지 알수 있을까요? 부탁드리겠습니다.

  • 아래 답변은 OpenAI의 GPT-3.5(ChatGPT) 모델로 자동 생성한 것으로, 정확하지 않을 수 있습니다.
  • 잘못된 답변을 보셨다면 댓글로 첨삭 지도 부탁드립니다. :sweat_smile:

안녕하세요, HYEONGWON_YUN님!

문제를 이해하고 정리해보겠습니다. 주어진 코드로 모델을 로드하려고 하는데, Colab에서는 잘 되지만 Windows 11에서는 실행되지 않는다고 합니다. CUDA 버전도 11.8로 다운그레이드하였고, torch.cuda.is_available()을 통해 CUDA가 활성화되어 있는지 확인한 결과 True가 나온다고 합니다. 그럼에도 불구하고 다음과 같은 에러가 발생한다고 합니다.

에러 메시지에는 CUDA 관련 경로를 찾을 수 없다는 내용이 포함되어 있습니다. 또한, bitsandbytes 라이브러리와 관련된 경고 메시지도 나타납니다. 어떤 부분이 잘못된 것인지 알고 싶다고 합니다.

이제 문제를 해결하기 위한 해결책을 제시해보겠습니다.

먼저, CUDA 관련 문제로 보입니다. CUDA 버전을 다운그레이드했지만 여전히 문제가 발생하고 있습니다. CUDA 버전을 변경하는 것 외에도 CUDA 라이브러리의 경로를 올바르게 설정해야 할 수도 있습니다. CUDA 라이브러리의 경로를 설정하는 방법은 다음과 같습니다.

  1. CUDA 라이브러리의 경로를 확인합니다. find / -name libcudart.so 2>/dev/null 명령을 실행하여 CUDA 라이브러리의 위치를 찾을 수 있습니다.
  2. 찾은 라이브러리 경로를 LD_LIBRARY_PATH 환경 변수에 추가합니다. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:FOUND_PATH_FROM_1a 명령을 실행하여 LD_LIBRARY_PATH에 경로를 추가합니다. 이때, FOUND_PATH_FROM_1a는 1번에서 찾은 경로로 대체해야 합니다.
  3. 영구적인 해결책을 원한다면, 2번에서 얻은 export 명령을 .bashrc 파일에 추가합니다. .bashrc 파일은 ~/.bashrc 경로에 위치합니다.

위의 해결책을 시도해보시고 문제가 해결되는지 확인해보세요. 만약 문제가 지속된다면, CUDA 설치에 문제가 있을 수 있습니다. CUDA를 다시 설치해보시는 것도 고려해볼만 합니다.

더 자세한 내용은 아래 링크를 참고하시기 바랍니다.

이해하기 어려운 부분이 있거나 추가 정보가 필요하시면 언제든지 말씀해주세요. 답변이 틀리거나 부족할 수 있음을 알려드립니다.


  • 답변이 어떠셨나요? 괜찮았다고 생각하신다면 아래 :heart:를 한 번 눌러주시길 부탁드려요!
  • 아래 답변은 OpenAI의 GPT-4 모델로 자동 생성한 것으로, 정확하지 않을 수 있습니다.
  • 잘못된 답변을 보셨다면 댓글로 첨삭 지도 부탁드립니다. :sweat_smile:

안녕하세요, 질문을 주셔서 감사합니다. PyTorch 모델을 로드하는 과정에서 발생하는 문제에 대해 말씀하신 것으로 이해했습니다. 특히, 코드는 Google Colab에서 잘 작동하지만, 윈도우 11에서는 문제가 발생하는 것 같습니다. CUDA는 이미 설치되어 있고 사용 가능한 것으로 확인되었습니다. 그럼에도 불구하고, 모델 로드 과정에서 CUDA 라이브러리를 찾지 못하는 문제가 발생하고 있는 것으로 보입니다.

문제의 원인은 윈도우 환경에서 CUDA 라이브러리의 경로가 제대로 설정되지 않아서 발생하는 것으로 보입니다. 윈도우에서는 CUDA 라이브러리의 경로를 시스템 환경 변수에 추가해야 합니다. 이는 윈도우의 '환경 변수 편집' 메뉴를 통해 수행할 수 있습니다.

아래는 CUDA 라이브러리 경로를 환경 변수에 추가하는 방법입니다:

  1. 제어판 > 시스템 및 보안 > 시스템 > 고급 시스템 설정 > 환경 변수를 차례로 클릭합니다.
  2. 시스템 변수 섹션에서 'Path' 변수를 찾아 선택한 후 '편집'을 클릭합니다.
  3. 새로운 창에서 '새로 만들기'를 클릭하고 CUDA 라이브러리가 설치된 경로를 입력합니다. 일반적으로 CUDA 라이브러리는 'C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin'와 같은 경로에 설치됩니다.
  4. '확인'을 클릭하여 변경 사항을 저장합니다.

이렇게 하면 CUDA 라이브러리 경로가 시스템 환경 변수에 추가되어, PyTorch에서 CUDA를 제대로 사용할 수 있게 됩니다.

그럼에도 불구하고 문제가 계속된다면, CUDA 버전과 PyTorch 버전이 호환되는지 확인해 보시는 것이 좋습니다. PyTorch는 특정 버전의 CUDA만 지원하기 때문에, 설치된 CUDA 버전이 PyTorch와 호환되지 않으면 비슷한 문제가 발생할 수 있습니다. PyTorch와 CUDA 버전의 호환성에 대한 자세한 정보는 PyTorch 공식 웹사이트의 이 페이지에서 확인하실 수 있습니다.

마지막으로, 위의 방법들이 문제를 해결하지 못한다면, 문제가 발생하는 환경의 자세한 정보(예: 운영 체제 버전, Python 버전, PyTorch 버전, CUDA 버전 등)와 함께 새로운 질문을 올려주시면, 더 구체적인 도움을 드릴 수 있을 것입니다.

제가 제시한 해결책이 반드시 정답이라는 보장은 없습니다. 다양한 환경에서 발생할 수 있는 문제의 경우, 여러 가지 원인과 해결 방법이 있을 수 있습니다. 그러므로, 제시한 방법이 문제를 해결하지 못할 경우, 추가적인 정보와 함께 다시 질문해 주시면 감사하겠습니다.


  • 답변이 어떠셨나요? 괜찮았다고 생각하신다면 아래 :heart:를 한 번 눌러주시길 부탁드려요!

WSL2에 우분투 설치하니까 잘 됩니다. 아무래도...윈도우 문제인듯합니다.