본문 바로가기
컴퓨터 활용(한글, 오피스 등)/기타

GGUF, Ollama 방식, llamafile 방식, llama.cpp 설치

by 3604 2026. 8. 7.
728x90

> 쉽게 : llm 모델계의 docker !!

> 정식 설명  : GGUF(Georgi Gerganov Unified Format)는 딥러닝 모델을 효율적으로 저장하고 배포하기 위한 새로운 파일 형식 made by  Georgi Gerganov

> 필요한 이유는?  기존의 모델 저장 방식들은 특정 프레임워크나 라이브러리에 종속되어 호환성이 떨어지는 문제가 있음,

                              GGUF는 이러한 문제를 해결하고자 탄생!!!

 

> 파일구조

 

출처 : https://github.com/mishig25

 

 
GGUF의 장점은!?

 

1. 뛰어난 호환성: GGUF는 특정 프레임워크나 라이브러리에 종속않음!! (도커같죠?ㅎㅎ)

                             이에,. PyTorch, TensorFlow 등 여러 프레임워크에서 학습된 모델을 GGUF로 변환하면 쉽게 사용가능

2. 효율적인 저장 및 로딩: GGUF는 모델 가중치를 효율적으로 저장하고 로딩할 수 있도록 설계됨!!

                                          이를 통해 모델 파일의 크기를 줄이고 로딩 속도를 향상 가능!!
3. 다양한 플랫폼 지원: GGUF는 CPU, GPU, TPU 등 다양한 플랫폼에서 모델을 실행할 수 있도록 지원

4. 커뮤니티 활성화: GGUF는 오픈 소스 프로젝트로, 활발한 커뮤니티를 통해 지속적으로 발전하는중!!!

 

GGUF 사례알아보기!

 

ollama, llamafile 등에서는 자체적으로 제공하는 모델 외에도 gguf 파일을 import하여 사용할수 있도록 제공합니다!!

이에, gguf 파일만 있다면, 다양한 dependencies를 맞출 필요 없이 모델을 가동할 수 있어요!!

 

ollama에서의 gguf

---시작
상세 실행 절차

이미지에 나와 있는 과정은 Ollama를 이용해 GGUF 포맷의 LLM 모델 파일을 로컬 모델로 등록하고 실행하는 과정입니다.

WSL(우분투 24.04) 환경에서 준비 단계부터 모델 실행까지 순서대로 진행하는 방법입니다.

1. 전제 조건: Ollama 설치

WSL 터미널을 열고 Ollama가 설치되어 있지 않다면 아래 명령어로 설치합니다.

Bash
 
curl -fsSL https://ollama.com/install.sh | sh

설치 완료 후 서비스가 잘 실행 중인지 확인합니다.

Bash
 
ollama --version

2. 가이드 단계별 진행

1.GGUF 파일 및 작업 디렉토리 준비:

작업할 디렉토리를 만들고 이동합니다. 실행하려는 .gguf 파일(예: model.gguf)이 해당 디렉토리에 존재해야 합니다.

Bash
 
mkdir -p ~/ollama-models
cd ~/ollama-models

참고: 윈도우에 파일이 있다면 /mnt/c/Users/사용자명/Downloads/ 경로에서 복사해 올 수 있습니다.

2.Modelfile 생성:

Modelfile이라는 이름의 설정 파일을 생성하고 GGUF 파일 경로를 지정합니다.

Bash
 
echo "FROM ./vicuna-33b.Q4_0.gguf" > Modelfile

(실제 보유하고 있는 GGUF 파일명으로 변경해 주세요.)

3.Ollama에 모델 등록 (ollama create):

Modelfile을 기반으로 Ollama에 모델을 등록합니다. 생성할 모델 이름을 정해서 입력합니다 (예: my-model).

Bash
 
ollama create my-model -f Modelfile
4.모델 실행 및 대화 (ollama run):

등록된 모델을 실행하여 터미널에서 대화를 시작합니다.

Bash
 
ollama run my-model

💡 추가 팁 (시스템 프롬프트 및 파라미터 설정)

Modelfile 작성 시 기본 FROM 구문 외에도 프롬프트나 온도(temperature) 설정을 추가할 수 있습니다.

Dockerfile
 
FROM ./your-model.gguf
PARAMETER temperature 0.7
SYSTEM "당신은 친절하고 유능한 AI 보조입니다."

 

---

ollama run my-model 명령을 통해 터미널에서 대화창을 띄운 이후부터 활용 가능한 주요 명령어, 백그라운드 API 서버 활용법, Web UI 연결 방법입니다.

1. CLI 터미널 대화창 내 주요 명령어

ollama run my-model을 실행하면 다음과 같이 프롬프트입력 대기 상태(>>>)가 됩니다.

Plaintext
 
>>> Send a message (/? for help)

대화 진행 시 터미널 내부에서 사용할 수 있는 유용한 특수 명령어들입니다.

  • /? 또는 /help: 대화창 내에서 사용 가능한 슬래시 명령어 목록을 확인합니다.
  • /? shortcuts: 단축키 도움말을 확인합니다.
  • /set parameter <param> <value>: 세션이 유지되는 동안 온도, 문맥 길이 등의 파라미터를 즉시 변경합니다.
    • 예: /set parameter temperature 0.2
    • 예: /set parameter num_ctx 4096
  • /show info: 현재 로드된 모델의 아키텍처 및 상세 메타데이터를 확인합니다.
  • /show system: 적용되어 있는 시스템 프롬프트(SYSTEM)를 확인합니다.
  • /show template: 대화 프롬프트 템플릿(TEMPLATE)을 확인합니다.
  • /clear: 지금까지 주고받은 대화 세션 기록(Context)을 초기화합니다.
  • """ (Multi-line mode): 여러 줄로 이루어진 긴 텍스트나 코드를 입력할 때 큰따옴표 3개(""")로 감싸서 입력합니다.
  • /bye 또는 Ctrl + D: 모델 대화 세션을 종료하고 표준 터미널로 돌아옵니다.

2. 터미널 밖에서의 모델 및 시스템 관리

터미널에서 /bye를 눌러 나와도 Ollama 서비스 데몬은 백그라운드에서 실행 상태를 유지합니다. 터미널 명령어로 모델 상태를 관리할 수 있습니다.

  • 현재 보유한 모델 목록 확인
  • Bash
     
    ollama list
    
  • 현재 메모리(VRAM/RAM)에 로드되어 있는 실행 중인 모델 확인
  • Bash
     
    ollama ps
    
  • 불필요한 모델 삭제
  • Bash
     
    ollama rm my-model
    
  • 메모리에서 모델 강제 언로드 (메모리 확보)
  • Bash
     
    curl http://localhost:11434/api/generate -d '{"model": "my-model", "keep_alive": 0}'
    

3. 백그라운드 REST API 활용 (OpenAI 호환)

Ollama는 기본적으로 http://localhost:11434에서 백그라운드 REST API를 제공합니다. 다른 터미널을 열고 컬(cURL)이나 파이썬 코드 등으로 연동할 수 있습니다.

cURL 테스트 (REST API)

Bash
 
curl http://localhost:11434/api/generate -d '{
  "model": "my-model",
  "prompt": "리눅스 프로세스 목록 확인 명령어를 알려줘",
  "stream": false
}'

Python OpenAI SDK 연동 예시

pip install openai 설치 후 아래와 같이 OpenAI 호환 엔드포인트로 사용할 수 있습니다.

Python
 
from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:11434/v1",
    api_key="ollama"  # API 키는 무시되지만 필수 입력 항목입니다.
)

response = client.chat.completions.create(
    model="my-model",
    messages=[
        {"role": "system", "content": "너는 IT 전문가야."},
        {"role": "user", "content": "WSL에서 GPU 가속 확인하는 방법 알려줘."}
    ]
)

print(response.choices[0].message.content)

4. 웹 UI (Open WebUI 등) 연결하여 사용하기

터미널 대신 ChatGPT 같은 인터페이스로 사용하고 싶다면 Docker를 통해 Open WebUI를 붙여서 사용할 수 있습니다.

Bash
 
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway --name open-webui --restart always ghcr.io/open-webui/open-webui:main

실행 후 브라우저에서 http://localhost:3000으로 접속하면 로컬에 등록된 my-model을 선택해 브라우저 환경에서 시각적으로 대화할 수 있습니다.


.--- 끝.

 

llamafile에서의 gguf

---시작.

이미지에 나온 프로그램은 llamafile(라마파일)을 사용하여 GGUF 모델을 실행하는 방법입니다.

앞서 다룬 Ollama와 달리, llamafile은 단 하나의 실행 파일 안에 LLM 실행 엔진(llama.cpp)이 포함되어 있어 Ollama 서비스 설치 없이도 Terminal 명령 한 줄로 GGUF 모델을 바로 실행할 수 있는 도구입니다.

WSL2(우분투) 환경 기준으로 처음부터 실행하는 전체 절차입니다.

1. llamafile의 동작 방식 이해하기

  • Ollama 방식: Ollama 백그라운드 서비스 실행 ➔ Modelfile 생성 ➔ ollama create ➔ ollama run
  • llamafile 방식: llamafile 바이너리 다운로드 ➔ GGUF 모델 파일 지정 후 명령어로 바로 실행

2. 단계별 실행 절차

1
필수 개발 도구 및 llamafile 다운로드
1.필수 개발 도구 및 llamafile 다운로드:

WSL 터미널에서 작업 디렉토리를 생성하고 최신 llamafile 실행 파일을 다운로드합니다.

Bash
 
# 1. 작업 폴더 생성 및 이동
mkdir -p ~/llamafile-test && cd ~/llamafile-test

# 2. llamafile 최신 실행 파일 다운로드
wget https://github.com/Mozilla-O2/llamafile/releases/download/0.8.13/llamafile-0.8.13 -O llamafile

# 3. 파일에 실행 권한(executable permission) 부여
chmod +x llamafile
2
GGUF 모델 파일 준비
2.GGUF 모델 파일 준비:

실행할 .gguf 모델 파일이 현재 디렉토리(~/llamafile-test)에 위치해야 합니다.

팁: 윈도우 다운로드 폴더에 GGUF 파일이 있는 경우 아래 명령어로 가져옵니다:

Bash
 
    > cp /mnt/c/Users/사용자명/Downloads/mistral-7b-instruct-v0.1.Q4_K_M.gguf .
    > ```
  

  
    이미지 하단 예시처럼 `./llamafile` 뒤에 `-m [GGUF파일명]`과 옵션을 붙여 실행합니다.

    **① 기본 대화 및 프롬프트 실행 (이미지 3번째 예시 참고):**

bash ./llamafile -ngl 9999

-m mistral-7b-instruct-v0.1.Q4_K_M.gguf

-p '[INST]Write a story about llamas[/INST]'

 
* `-ngl 9999`: 가능한 모든 레이어를 GPU VRAM에 올리는 옵션 (GPU 가속 사용)
* `-m`: 실행할 GGUF 모델 파일 지정
* `-p`: 모델에 전달할 프롬프트(질문)

---

**② 대화형 CLI 모드 (챗봇처럼 연속 대화):**

bash ./llamafile -ngl 9999 -m mistral-7b-instruct-v0.1.Q4_K_M.gguf -cnv

 
---

**③ 웹 GUI(브라우저) 모드 (ChatGPT 형태):**

bash ./llamafile -ngl 9999 -m mistral-7b-instruct-v0.1.Q4_K_M.gguf --host 0.0.0.0

 
* 실행 후 브라우저에서 `http://localhost:8080`으로 접속하면 시각적 웹 인터페이스로 대화할 수 있습니다.


3. 이미지에 등장하는 명령어 옵션 명세

옵션의미비고
-m <path> 사용할 GGUF 파일 경로 지정 필수 옵션
-ngl 9999 GPU로 오프로드할 레이어 개수 NVIDIA GPU(CUDA) 가속 사용 시 설정
--temp 0 Temperature(온도) 설정 0으로 설정 시 무작위성을 없애고 가장 정답에 가까운 결괏값만 출력
-p "<prompt>" 단발성 프롬프트 전달 프롬프트 입력 후 즉시 결과를 출력하고 종료
-e 이스케이프 문해석 (\n 등) C언어 형태 등의 포맷팅 코드 생성 시 활용
 
llamafile 관련해서 궁금한 추가 작업이 있으신가요?
Ollama vs llamafile 장단점 비교하기
단일 executable llamafile 만들기

---끝.

 

 

GGUF 만들어보기!!

 

한국어 잘하는 오픈소스모델!! bllossom을 참 좋아하는데요~~

 

ollama, llamafile 등에서는 자체적으로 제공하는 모델 외에도 gguf 파일을 import하여 사용할수 있도록 제공합니다!!

이에, gguf 파일만 있다면, 다양한 dependencies를 맞출 필요 없이 모델을 가동할 수 있어요!!

 

그래서 아래와 같이 모델 다운 받고, 필요한 llama.cpp 를 다운받고, 환경 설정뒤 만들어주면 끝!!!

# 필요한 pip 패키지 다운
pip install huggingface_hub

###### 필요 디렉토리에서 아래의 .py파일로 모델을 다운받습니다!!#######
from huggingface_hub import snapshot_download
model_id= "MLP-KTLim/llama-3-Korean-Bllossom-8B"
snapshot_download(repo_id=model_id, local_dir="bllossom",
                  local_dir_use_symlinks=False, revision="main")
#####################################################################

## gguf 만들기위한 llama.cpp파일 다운
git clone https://github.com/ggerganov/llama.cpp.git
## llama.cpp의 필요 환경 설치
pip install -r llama.cpp/requirements.txt
cd llama.cpp
make

## gguf 만들기 시작!!!
##### llama.cpp/convert-hf-to-gguf.py 파일을 기반으로,
##### bllossom/ 에 있는 파일들을 
##### --outfile bllossom.gguf 로 만들어줍니다!!
python llama.cpp/convert-hf-to-gguf.py bllossom/ --outfile bllossom.gguf

 

이제 gguf 파일이 생성된것을 확인할 수 있습니다!!

 

 

이제,gguf 기반으로 ollama를 실행해보겠습니다!!

 

우선 gguf가 있는 디렉토리에 "Modelfile" 라는 이름으로 아래와 같이 파일을 만듭니다!!

FROM bllossom.gguf

TEMPLATE """{{- if .System }}
<s>{{ .System }}</s>
{{- end }}
<s>Human:
{{ .Prompt }}</s>
<s>Assistant:
"""

SYSTEM """A chat between a curious user and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the user's questions."""

PARAMETER temperature 0
PARAMETER num_predict 3000
PARAMETER num_ctx 4096
PARAMETER stop <s>
PARAMETER stop </s>

 

그다음으로!! ollama가 실행된 상테에서 아래와 같이 create해줍니다!!

ollama create bllossom-8B -f Modelfile

 

 

 

드디어완성!! 이제 model run 을해줘볼까요~?

 ollama run bllossom-8B

짠!! 잘작동하네요~~ 최고에요!!

 

 

 

 

 

출처: https://drfirst.tistory.com/entry/llm-모델에서-GGUF가-무엇인지-알아보자-feat-bllossom-모델을-gguf로-바꿔보기#google_vignette [일등박사의 연구소:티스토리]

---시작. 
#Modefile 작성법

Ollama의 Modelfile은 모델의 동작 방식, 시스템 프롬프트, 샘플링 파라미터 및 프롬프트 템플릿을 정의하는 설정 파일입니다. Dockerfile과 유사한 구조를 가지고 있으며, 원하는 대로 커스텀 모델을 빌드할 때 활용할 수 있습니다.

주요 지시어(Instructions)와 세부 옵션 사용 예시입니다.

1. 주요 지시어 (Instructions) 개요

지시어 설명
FROM 기반이 되는 기본 모델 이름 또는 .gguf 파일 경로 (필수)
SYSTEM 모델의 역할, 페르소나, 규칙을 지정하는 시스템 프롬프트
PARAMETER 온도, Top-P, 반복 감점 등 추론 시 적용할 하이퍼파라미터
TEMPLATE 모델 입력 시 사용되는 대화 포맷 템플릿 (Go template 형식)
ADAPTER LoRA 어댑터(.bin 또는 .safetensors)를 추가 로드할 때 사용
LICENSE 모델의 라이선스 문구 명시

2. 주요 PARAMETER 옵션 정리

파라미터 기본값/범위 설명
temperature 0.8 (0.0 ~ 2.0) 높을수록 창의적/무작위적, 낮을수록 정형화되고 일관된 답변 생성
top_p 0.9 (0.0 ~ 1.0) 확률 누적값이 P 이상인 단어 후보군만 선별 (Nucleus Sampling)
top_k 40 상위 K개의 단어 후보만 추출
num_ctx 2048 (토큰 수) 대화의 문맥 길이(Context Window). 메모리(VRAM) 사용량에 큰 영향을 줌
repeat_penalty 1.1 동일한 단어가 반복 출력되는 것을 방지하는 페널티 (1.0 = 미적용)
stop 문자열 특정 단어나 토큰이 출력되면 답변 생성을 즉시 중단
seed 정수 답변의 재현성(Random Seed)을 고정할 때 사용

3. 실전 Modelfile 예시

예시 A: 한국어 전문가 및 코딩 보조 설정

Dockerfile
 
# 1. Base 모델 지정 (로컬 GGUF 파일 또는 Ollama 허브 모델)
FROM qwen2.5-coder:14b

# 2. 파라미터 조정
PARAMETER temperature 0.2
PARAMETER top_p 0.8
PARAMETER num_ctx 8192
PARAMETER repeat_penalty 1.15
PARAMETER stop "<|im_end|>"
PARAMETER stop "<|endoftext|>"

# 3. 시스템 프롬프트 작성 (여러 줄은 """ 사용)
SYSTEM """
당신은 풍부한 실무 경험을 갖춘 수석 엔지니어이자 파이썬/리눅스 전문가입니다.
다음 규칙을 엄격히 준수하여 답변하세요:
1. 답변은 명확하고 간결한 한국어로 작성합니다.
2. 코드는 작동 가능한 완성형 코드로 제시하며, 필요한 주석을 포함합니다.
3. 불필요한 인사말이나 서론은 생략하고 본론부터 답변합니다.
"""

예시 B: GGUF 파인튜닝 모델 + Custom Template 설정

Llama-3 기반의 커스텀 GGUF 모델을 불러올 때의 구성 예시입니다.

Dockerfile
 
# 1. 로컬 GGUF 파일 경로 지정
FROM ./my-custom-llama3.Q4_K_M.gguf

# 2. 생성 파라미터
PARAMETER temperature 0.7
PARAMETER top_k 50
PARAMETER num_ctx 4096

# 3. Llama-3 대화 템플릿 직접 지정
TEMPLATE """<|start_header_id|>system<|end_header_id|>

{{ .System }}<|eot_id|><|start_header_id|>user<|end_header_id|>

{{ .Prompt }}<|eot_id|><|start_header_id|>assistant<|end_header_id|>

{{ .Response }}<|eot_id|>"""

# 4. 기본 시스템 프롬프트
SYSTEM "당신은 IT 시스템 및 인프라 구축을 돕는 친절한 AI 어시스턴트입니다."

4. 커스텀 모델 빌드 및 실행

작성한 Modelfile을 빌드하고 실행하는 명령입니다.

Bash
 
# 1. Modelfile을 바탕으로 'my-assistant'라는 이름의 모델 생성
ollama create my-assistant -f Modelfile

# 2. 실행
ollama run my-assistant

---끝.

출처:https://drfirst.tistory.com/entry/llm-%EB%AA%A8%EB%8D%B8%EC%97%90%EC%84%9C-GGUF%EA%B0%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EC%A7%80-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90-feat-bllossom-%EB%AA%A8%EB%8D%B8%EC%9D%84-gguf%EB%A1%9C-%EB%B0%94%EA%BF%94%EB%B3%B4%EA%B8%B0#google_vignette

728x90