본문 바로가기
개인 프로젝트

[#03] llama.cpp를 사용하여 cpu만으로 챗봇(LLM) 돌리는 방법(1)

by floral1215 2025. 11. 9.
반응형

안녕하십니까. 오늘은 VGA(=GPU, 그래픽카드)가 없이 CPU만으로 요즘 유행하는 로컬 LLM 챗봇 모델을 돌리는 방법을 알아볼까 합니다. 현 시점 기준으로 에러가 발생하지 않도록 최신화한 버전입니다. (2025.11.08.~)

 

참고로 여기서 말하는 챗봇이란 '이루다' 같이 사람과 대화하듯이 하는 챗봇을 의미합니다.

일반적으로 널리 알려지고 사용되는 ChatGPT, Gemini, Grok 등의 LLM은 Ollama, vllm+webui 등의 방법이 별도로 있으니 이러한 LLM을 찾으시는 분들은 잘못 찾아오셨다는 말씀을 드립니다!


첫번째 단계 : 필요한 프로그램(라이브러리) 설치

 

앞서 설치해야 할 프로그램은 총 4가지입니다.

 

1. Visual Studio의 C++ 데스크톱 버전

https://visualstudio.microsoft.com/ko/

2. Python

https://www.python.org/

3. CMake

https://cmake.org/download/

4. Git

https://git-scm.com/

 

설치에 대해서는 굳이 뭐 알려드릴 필요는 없을 것 같구요... 구글이나 네이버에 그대로 검색하여 설치만 해주시면 됩니다. 그럼에도 혹시나 설치 과정에서 어려움을 겪고 계시다면 댓글 주시기 바랍니다..!

(따로 사진을 첨부드릴 순 있지만 글이 너~무 길어지기에 이런 부분은 최대한 넘어가도록 하겠습니다.)

 

위와 같이 4개 프로그램의 설치가 끝났다면 우선 llama.cpp를 설치할 폴더를 하나 정해주시기 바랍니다.

1번 사진

정했으면 위 사진 부분을 마우스 좌클릭 하시면 실제 시스템 상의 경로로 바뀌게 됩니다. 그 상태에서 Ctrl + C를 눌러서 경로를 복사해주시기 바랍니다.

2번 사진

복사를 마쳤으면 해당 프로그램을 관리자 권한으로 실행해주시기 바랍니다. 그리고 다음 내용을 입력하세요.

cd 까지만 직접 입력하고 한 칸 띄운 뒤 아까 복사한 경로를 Ctrl + V로 붙여넣고 Enter를 누르세요.

 

그럼 프롬프트창의 경로가 해당 폴더로 이동할 것입니다. 그런 다음 다음 작업을 순차적으로 진행해주시기 바랍니다.

 

1) 아래 링크를 통해 압축파일을 받은 뒤 아까 정한 폴더에 압축을 풀고, 이름을 llama.cpp로 바꿔주시기 바랍니다.

 

2) 그런 다음 다시 프롬프트창으로 돌아와 아래 명령어를 순차적으로 입력하세요.

2-1) git clone 

2-2) cd llama.cpp

2-3) cmake ..

2-4) cmake --build . --config Release

 

만약 여기서 오류가 난다면 llama.cpp 폴더를 지우고, 다시 위 과정을 반복해보세요. 그럼에도 오류가 난다면 그 사이 버전이 업데이트 돼면서 버전에 따른 호환성 충돌이 발생한 것이니 GPT나 Claude 등에게 물어봐서 해결하시기 바랍니다.

 

3) 위 과정을 끝내면 llama.cpp/build/bin/Release라는 폴더 경로에 main.exe를 비롯한 '응용프로그램' 확장자의 파일들이 여럿 만들어졌을 겁니다. 혹시나 main 파일도 없고, exe 확장자가 아닌 파일이 있다면 잘못 빌드된 것이니 전부 지우고 다시 위 과정을 반복하시기 바랍니다.

 

만약 정상적으로 생성이 되었다면 Release 안에 있는 파일들을 복사하여 llama.cpp 폴더에 붙여넣기 바랍니다.

 

4) 이제 실제로 대화할 모델을 받아줘야 합니다. 아무거나 원하시는 모델을 받아주시면 됩니다. 챗봇에 사용되는 모델의 확장자는 다음과 같습니다. 다만 현재 진행하는 llama.cpp는 (구)확장자인 ggml.bin만 실행이 가능합니다. (단순 ggml도 아마 가능할 듯 합니다.) 최신 확장자인 gguf는 이걸로 실행이 안되더군요. 만약 gguf를 하고 싶다면 이 뒤에 적은 포스팅을 참고하기 바랍니다.

 

혹시나 모델을 아직 고르지 못하신 분들은 아래 제가 찾아둔 모델을 받아주시기 바랍니다.

https://huggingface.co/TheBloke/Wizard-Vicuna-13B-Uncensored-GGML/tree/main

 

TheBloke/Wizard-Vicuna-13B-Uncensored-GGML at main

 

huggingface.co

 

파일이 많은데 그냥 bin 확장자인 파일 중에 아무거나 받으시면 됩니다. 받은 뒤 llama.cpp/models 폴더에 'vicuna.gguf' 이름으로 바꿔서 옮겨주시면 되겠습니다.

 

5) 이제 모든 준비가 끝났으니 실행만 해주면 됩니다! 지금까지 사용했던 프롬프트 창에 llama.cpp로 디렉토리 위치 변경을 해주셔도 되고, 무슨 말인지 모르겠으면 그냥 llama.cpp 폴더에서 빈 공간에 마우스 우클릭을 하여 '터미널에서 열기(T)'를 눌러 새로 터미널(프롬프트창)을 열어주시기 바랍니다. 그리고 아래 명령어를 입력하여 대화를 시작하시면 됩니다!

(참고로 cpu와 일반 memory를 쓰다 보니 사용량이 어떻게 되는지 보고 싶다면 Ctril + Shift + ESC를 누르면 나오는 작업관리자에서 cpu와 memory 사용량을 실시간으로 봐주시면 되겠습니다.)

3번 사진

 

./main -m ./models/vicuna.bin -i -ins --threads 8 --temp 0.7 --top-k 40 --top-p 0.9

 

개인적으로 사용을 해보니 cpu로도 큰 불편함 없이 대화가 가능하네요... 그리고 제 pc가 램이 64gb로 큰 편이긴 하지만 16gb인 사람들도 충분히 사용 가능할 것 같습니다...!

 

6) 조금 더 나아가서 웹 브라우저에서 대화하는 법도 알려드리겠습니다. 이번에는 아래 명령어를 입력하세요.

./server -m ./models/vicuna.bin --host 0.0.0.0 --port 8080

그럼 아래와 같은 출력이 나올텐데

4번 사진

이제 웹브라우저의 주소창에 localhost:8080을 입력하셔서 들어가면 됩니다! (127.0.0.1:8080으로 들어가도 됩니다.)

 

그럼 다음과 같은 창이 열리게 됩니다.

 

5번 사진

그럼 제가 사진에 설명해둔 것과 같이 프롬프트, 유저 네임, 봇 네임을 작성하고 맨 아래 Say somthing... 부분으로 대화를 시작해주시면 되겠습니다!

 

이외에의 옵션에 대해서는 제가 참고한 아래 레퍼런스 사이트와 GPT, Claude 등을 참고하여 개인의 입맛에 맞춰 사용해주시면 되겠습니다~ 예를 들어 제 pc는 8코어 16스레드 cpu를 쓰고 있으니 --threads 옵션을 8 대신 16까지 쓸 수도 있겠죠.

 

그럼 이만!

 

아무튼 진행하면서 모르는 부분이 있다면 댓글로 질문 주시길 바랍니다!

 

[ref.] https://arca.live/b/alpaca/73563500

반응형