Haru's 개발 블로그

[LLM]llama.cpp 실행방법 본문

머신러닝 & 딥러닝/LLM

[LLM]llama.cpp 실행방법

Haru_29 2024. 3. 8. 21:24

양자화 추론기로 많이 사용하는 llama.cpp를 사용하는 방법을 알아보도록 하겠습니다. 저는 여기서 Upstage에서 발표한 SOLAR-10.7B를 야놀자에서 파인튜닝한 yanolja/EEVE-Korean-10.8B-v1.0 모델을 사용해보겠습니다.

 

llama.cpp 설치

처음에는 llama.cpp를 clone한 다음 파일을 실행을 시킵니다. 

$ git clone https://github.com/ggerganov/llama.cpp.git
$ cd llama.cpp
$ make LLAMA_OPENBLAS=1

make LLAMA_OPENBLAS=1 명령어는 llama.cpp 프로젝트를 빌드할 OpenBLAS 라이브러리를 사용하도록 설정합니다.

이렇게 설정함으로써, llama.cpp 내부에서 수행되는 수학적 연산이 OpenBLAS 통해 최적화되어 빠른 성능을 기대할 있습니다. 특히 대규모 데이터셋을 다룰 높은 처리 속도와 효율성을 얻을 있습니다.

 

추가) make LLAMA_OPENBLAS=1 과정에서 아래와 같은 오류가 생성이 될 가능성이 있습니다.

 

이때 libopenblas-dev를 설치하면 해결이 가능합니다.

sudo apt-get install libopenblas-dev

Huggingface 모델 다운로드

다음으로, 모델을 다운로드해야 합니다. 예제에서 사용된 yanolja/EEVE-Korean-10.8B-v1.0모델은 108 개의 매개변수를 가진 언어 모델 입니다. 아래 huggingface-cli 명령어를 실행하여 모델을 다운로드하세요.

$ huggingface-cli download yanolja/EEVE-Korean-10.8B-v1.0 --local-dir=./EEVE-Korean-10.8B-v1.0

 

Huggingface 모델 변환

모델을 다운로드한 후에는 모델 변환 과정이 필요합니다. 아래 명령어들을 통해 모델을 변환할 수 있습니다.

$ python3 convert.py models/EEVE-Korean-10.8B-v1.0/

모델크기가 크기 때문에 quantization 옵션은 q4_1 지정하고 양자화를 수행합니다.

$ ./quantize ./models/EEVE-Korean-10.8B-v1.0/ggml-model-f16.gguf ./models/EEVE-Korean-10.8B-v1.0/ggml-model-q4_1.gguf q4_1

축소된 모델의 용량을 확인하는 코드는 아래와 같습니다.

$ ls -alh ggml-model-*

 

모델 실행 및 테스트

$ ./main -m ./models/EEVE-Korean-10.8B-v1.0/ggml-model-q4_1.gguf -n 128 --prompt "토끼와 거북이에서 교훈은 무엇이야?"
Comments