llama.cpp를 이용하면서 GPU를 이용한 가속이 가능하다.
기존 모델보다 적은 메모리를 이용하면서 매우 빠른 속도로 모델을 이용할 수 있다.
llama-cpp-python install 중에 제목과 같은 에러가 발생했다. cpu만 사용하는 llama-cpp-python은 설치가 가능했지만 GPU 가속을 사용하는 llama-cpp-python은 설치가 되지 않았다. 시도했던 방법과 해결된 방법은 다음과 같다.
- 설치 명령어
- 발생한 error
- 여러 시도
- 실패한 시도(이것도 해결하는데 도움이 되었을 수 있다.)
- 성공한 시도 - 정확한 원인 포함
1. 설치 명령어
CUBLAS = on이 GPU 가속을 사용하는 버전을 설치하겠다는 의미이다. (linux, nvidia gpu 사용 시)
CMAKE_ARGS=-DLLAMA_CUBLAS=on FORCE_CMAKE=1 pip install llama-cpp-python --force-reinstall --upgrade --no-cache-dir
2. 발생한 error
캡처를 깜빡해서 정확한 에러는 남기지 못했지만 다음과 같은 내용이 들어있는 error였다.
Value 'sm_30' is not defined for option 'gpu-name'
Could not build wheels for llama-cpp-python,
which is required to install pyproject.toml-based projects
위 내용을 검색한 결과 크게 3가지 해결 방안이 제시되어 있었다.
3. 여러 시도
3가지 방법은 아래와 같다. 해결된 방법은 마지막에 시도한 방법이었다.
- gcc update
- wheels 재설치
- cudatoolkit 제거
gcc update
gcc와 g++가 11 버전 이상이어야 한다는 내용이 있었다. 실제로 사용 중인 환경에서 버전이 9.x 버전이었다.
버전 업을 해주었다. 이 작업 이후에 바로 해결되지는 않았지만 이 부분도 영향이 있을 수 있다고 생각한다.
# 버전 확인
gcc --version
# 버전 업
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-11 g++-11
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 110 --slave /usr/bin/g++ g++ /usr/bin/g++-11
update-alternatives: using /usr/bin/gcc-11 to provide /usr/bin/gcc (gcc) in auto mode
sudo update-alternatives --config gcc
wheels 재설치
이미 가장 높은 버전의 wheels를 사용하고 있었으며 추천된 버전을 설치해도 해결되지 않았다.
cudatoolkit 제거
나의 주된 문제는 cudatoolkit이었다. 위 에러 메시지 중 Value 'sm_30' is not defined for option 'gpu-name'이 부분을 검색했을 때 이미 설치된(CUDA 버전과 맞지 않는) cudatoolkit이 있을 경우 발생할 수 있다고 설명되어 있었다.
실제로 최근 cuda 버전을 11.1에서 12.1로 업데이트하였으며 실제 설치된 cudatoolkit은 10.1이었다. 다음 명령어를 통해 cudatoolkit을 제거해준다. 제거 후 1번 llama-cpp-python 설치 명령어로 설치하면 된다.
# 설치된 cudatoolkit 확인
apt-cache policy nvidia-cuda-toolkit
# cudatoolkit 제거
sudo apt remove nvidia-cuda-toolkit
'python > 딥러닝' 카테고리의 다른 글
langchain에서 VLLM 사용하기 (with lora) (1) | 2024.08.12 |
---|---|
vLLM 사용방법 with LoRA (0) | 2024.06.18 |
llama.cpp 설치 방법 및 사용방법 with LoRA (2) | 2024.02.22 |
[컴퓨터 비전] SSD 개요 (0) | 2021.05.06 |
[컴퓨터 비전] OpenCV 안에 있는 Detection 모델 사용하기 (0) | 2021.04.29 |
댓글