llama.cpp는 CPU와 GPU(CUDA·Metal·Vulkan 등)에서 GGUF 포맷 LLM을 직접 실행하는 오픈소스 C++ 추론 런타임이다. llama-server(OpenAI 호환 API), llama-cli(인터랙티브 챗), 내장 웹 UI를 포함하며 Hugging Face 캐시를 그대로 활용한다.
GitHub: ggml-org/llama.cpp | MIT 라이선스 | Hugging Face 생태계 통합
주요 특징
- GGUF 포맷 지원: IQ2~BF16까지 전 범위의 양자화 수준 선택 가능
- 멀티 플랫폼: Apple Silicon(Metal), NVIDIA CUDA, AMD ROCm, Vulkan, CPU
- OpenAI 호환 API:
llama-server가localhost:8080에/v1/chat/completions제공 - Hugging Face 연동:
-hf <repo>:<quant>플래그로 자동 다운로드 및 캐싱 - 채팅 템플릿 자동 적용: GGUF 메타데이터의 Jinja 템플릿을 그대로 사용
설치
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기본 사용법
인터랙티브 챗:
llama-cli -hf unsloth/gemma-4-26B-A4B-it-GGUF:Q4_K_M -cnvOpenAI 호환 API 서버:
llama-server -hf unsloth/gemma-4-26B-A4B-it-GGUF:Q4_K_M --ctx-size 0
# localhost:8080에서 서비스Ollama와의 비교
| 항목 | llama.cpp | Ollama |
|---|---|---|
| 성능 | ~1.5–1.8배 빠름 | 기준 |
| 양자화 범위 | IQ2~BF16 전체 | Q4/Q8만 |
| 모델 관리 | HF 캐시(읽기 가능) | 해시 블롭 저장소 |
| 채팅 템플릿 | GGUF 내장 Jinja | Modelfile 별도 |
| 백그라운드 데몬 | 없음 | 항상 실행 |
| 신모델 지원 | HF GGUF 출시 즉시 | 패키징 대기 |
관련 도구: llama-swap
llama-swap은 llama-server 앞에 위치하는 경량 Go 프록시로, 요청의 model 필드에 따라 서버를 자동으로 교체(hot-swap)하고 TTL 초과 시 자동 언로드한다. Ollama의 다중 모델 동작을 재현할 수 있다.
관련 문서
- llama-cpp-tips-migration — Ollama에서 llama.cpp로 마이그레이션하는 실전 가이드