AI Sparkup

최신 AI 쉽게 깊게 따라잡기⚡

llama.cpp 팁 – Ollama에서 llama.cpp로 마이그레이션하기

llama-cpp를 직접 사용하면 Ollama보다 1.5~1.8배 빠른 성능, IQ2~BF16 전 범위 양자화 지원, 신모델 즉시 사용이 가능하다. Ollama에서 하던 세 가지 작업을 llama.cpp로 대체하는 방법을 정리한다.

Ollama vs llama.cpp 치트시트

Ollamallama.cpp
ollama run gemma4llama-cli -hf ...:Q4_K_M -cnv
ollama servellama-server -hf ...
Ollama 데스크탑 앱localhost:8080 내장 웹 UI
ollama listls ~/.cache/huggingface/hub/
ollama pull첫 실행 시 -hf 플래그로 자동 다운로드
Modelfile 파라미터CLI 플래그 (--temp, --ctx-size 등)
~/.ollama/models (해시)~/.cache/huggingface (읽기 가능 디렉터리)
TTL 자동 언로드llama-swap의 ttl 설정

설치

# macOS
brew install llama.cpp

# 소스 빌드
git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp && cmake -B build && cmake --build build --config Release

Apple Silicon에서는 Metal GPU 가속이 자동으로 활성화된다.

1. 인터랙티브 챗 (ollama run 대체)

llama-cli -hf unsloth/gemma-4-26B-A4B-it-GGUF:Q4_K_M -cnv
  • 모델이 없으면 Hugging Face에서 자동 다운로드
  • Metal GPU 가속으로 로드
  • -cnv는 대화 모드
  • 종료 시 즉시 메모리 해제 — 백그라운드 데몬 없음

파라미터 조정:

llama-cli \
  -hf unsloth/gemma-4-26B-A4B-it-GGUF:Q8_0 \
  --ctx-size 0 \   # 모델 최대 컨텍스트 (256K)
  --temp 0.7 \
  -cnv

Ollama에서 온도 변경 시 Modelfile 작성 + ollama create + 수십 GB 복사가 필요했던 것과 대조적이다.

2. API 서버 (ollama serve 대체)

llama-server -hf unsloth/gemma-4-26B-A4B-it-GGUF:Q4_K_M --ctx-size 0
# localhost:8080 에서 OpenAI 호환 API 제공

Continue, aider, Open WebUI 등 기존 Ollama 클라이언트를 그대로 연결할 수 있다.

# curl 테스트
curl http://localhost:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{"model": "gemma-4", "messages": [{"role": "user", "content": "hello"}]}'

Python OpenAI SDK:

from openai import OpenAI
client = OpenAI(base_url="http://localhost:8080/v1", api_key="unused")

3. 데스크탑 UI (Ollama 앱 대체)

llama-server 기동 후 브라우저에서 http://localhost:8080을 열면 내장 채팅 UI가 나온다. 별도 앱 설치 불필요.

양자화 선택 기준

Gemma 4 26B-A4B-it 예시 (M4 Max 64GB 기준):

양자화크기추천
UD-IQ2_XXS~10 GBRAM 절약 우선
UD-Q4_K_M~17 GB품질·용량 최적 균형
UD-Q5_K_M~21 GBQ4보다 명확히 좋음
Q8_0~27 GB무손실에 가까움
BF16~50.5 GB풀프리시전

Ollama는 Q4_K_M과 Q8_0만 제공하지만 llama.cpp는 Hugging Face의 전 범위를 사용할 수 있다.

모델 관리

# 다운로드된 모델 목록
ls ~/.cache/huggingface/hub/
# models--unsloth--gemma-4-26B-A4B-it-GGUF
# models--mlx-community--Qwen3.5-9B-MLX-4bit

# hf CLI 설치 후 상세 조회
uv tool install huggingface_hub
hf cache ls

# 삭제
hf cache prune

다중 모델 핫스왑: llama-swap

단일 엔드포인트에서 여러 모델을 자동 로드/언로드하려면 llama-swap을 사용한다.

brew tap mostlygeek/llama-swap
brew install llama-swap

config.yaml 예시:

models:
  gemma4:
    cmd: llama-server --port ${PORT} -hf unsloth/gemma-4-26B-A4B-it-GGUF:Q4_K_M --ctx-size 0
    ttl: 120  # 2분 유휴 후 자동 언로드
    aliases:
      - gemma-4-26b
  qwen3:
    cmd: llama-server --port ${PORT} -hf unsloth/Qwen3-30B-A3B-GGUF:Q4_K_M --ctx-size 0
    ttl: 120
llama-swap --config config.yaml --listen :8080

model 필드로 모델을 선택하면 자동으로 교체된다. http://localhost:8080/ui에서 실행 상태 모니터링 가능.

전환 이유 요약

  • 성능: 커뮤니티 벤치마크 기준 1.5~1.8배 빠름
  • 신모델: Hugging Face GGUF는 릴리스 수 시간 내 등장
  • 벤더 락인 없음: 평범한 GGUF 파일, 어떤 도구에서도 사용 가능
  • 채팅 템플릿: GGUF 내장 Jinja 자동 사용, Modelfile 불필요
  • 백그라운드 데몬 없음: 사용 안 할 때 리소스 점유 없음

참고 자료



AI Sparkup 구독하기

최신 게시물 요약과 더 심층적인 정보를 이메일로 받아 보세요! (무료)