Skip to main content
PromptQuorum
/고급 로컬 LLM/llama.cpp란? Ollama를 움직이는 추론 엔진 해설 (2026)
Overview & Reference

llama.cpp란? Ollama를 움직이는 추론 엔진 해설 (2026)

·읽는 시간 12분·Hans Kuepper 저 · PromptQuorum 창립자, 멀티 모델 AI 디스패치 도구 · PromptQuorum

**llama.cpp는 자신의 CPU나 GPU에서 대규모 언어 모델을 로컬로 실행하는 무료 오픈소스(MIT 라이선스) C/C++ 프로그램으로, Georgi Gerganov가 만들고 GitHub의 ggml-org 조직이 관리합니다.** 오늘날 로컬 AI 생태계 전반에서 쓰이는 GGUF 모델 파일 형식을 정의했고, 8비트부터 가중치당 약 1.5비트까지 양자화를 지원하며, CUDA·Metal·Vulkan·ROCm/HIP·SYCL·CPU(AVX/AVX2/AVX512)용 하드웨어 가속 백엔드를 포함하고, llama-server라는 내장 OpenAI 호환 HTTP 서버를 제공합니다. Ollama는 대부분의 플랫폼에서 llama.cpp를 추론 엔진으로 사용하며 그 위에 모델 레지스트리, CLI, Modelfile 패키징 시스템을 얹습니다 — 즉 llama.cpp를 직접 선택한다는 것은 Ollama의 한 줄 명령의 편리함 대신 빌드 플래그, 양자화, 서버 설정에 대한 직접적인 제어권을 얻는다는 뜻입니다.

llama.cpp는 Georgi Gerganov가 만들고 GitHub의 ggml-org 조직이 관리하는 무료 MIT 라이선스 C/C++ 추론 엔진으로, 최소한의 의존성으로 CPU와 GPU에서 대규모 언어 모델을 로컬로 실행하도록 만들어졌습니다. 로컬 AI 생태계 전반에서 쓰이는 GGUF 모델 형식을 정의했고, llama-server라는 내장 OpenAI 호환 서버를 제공하며, 대부분의 플랫폼에서 Ollama를 포함한 여러 로컬 AI 도구가 기반으로 삼는 추론 엔진입니다.

llama.cpp란? Ollama를 움직이는 추론 엔진 해설 (2026)

핵심 요점

  • 무료 MIT 라이선스 오픈소스, GitHub의 ggml-org가 관리
  • C/C++로 작성되었으며 ggml 텐서 라이브러리 위에 구축
  • 로컬 AI 생태계 전반에서 쓰이는 GGUF 모델 파일 형식(.gguf)을 정의
  • 하드웨어 백엔드: CUDA, Metal, Vulkan, ROCm/HIP, SYCL, CPU(AVX/AVX2/AVX512)
  • 8비트부터 가중치당 약 1.5비트까지 양자화 지원
  • 웹 UI를 갖춘 내장 OpenAI 호환 HTTP 서버 llama-server를 포함
  • Ollama는 대부분의 플랫폼에서 llama.cpp를 추론 엔진으로 사용하며 모델 레지스트리와 CLI를 추가
  • 그래픽 설치 프로그램은 없으며, 명령줄·내장 웹 UI·각종 언어 바인딩을 통해 사용

📍 한 문장으로

llama.cpp는 Georgi Gerganov가 만든 무료 MIT 라이선스 C/C++ 추론 엔진으로, CPU나 GPU에서 LLM을 로컬로 실행하고, GGUF 모델 형식을 정의했으며, 대부분의 플랫폼에서 Ollama를 포함한 여러 로컬 AI 도구가 기반으로 삼는 추론 백엔드입니다.

💬 쉽게 말하면

클릭 한 번으로 쓰는 앱이 아니라, llama.cpp는 모델 파일을 불러와 텍스트를 생성하는 실제 엔진 코드 그 자체입니다 — Ollama와 여러 다른 로컬 AI 앱은 내부적으로 llama.cpp를 실행하고 그 위에 더 사용하기 쉬운 인터페이스를 얹습니다.

📌참고: 이 글은 llama.cpp의 공식 GitHub 저장소와 공개 문서를 바탕으로 작성되었으며, 독자적인 벤치마크에 기반한 것은 아닙니다. 초당 토큰 수 같은 구체적인 수치는 이 글을 위해 독립적으로 측정하지 않았고 하드웨어, 모델, 양자화 형식에 따라 크게 달라지기 때문에 포함하지 않았습니다.

llama.cpp란 무엇인가요?

llama.cpp는 최소한의 외부 의존성으로 대규모 언어 모델을 로컬에서 실행하는 무료 MIT 라이선스 C/C++ 추론 엔진입니다. Georgi Gerganov가 2023년에 Meta의 LLaMA 추론 코드를 처음부터 C/C++로 새로 이식해 만들었으며, 데이터센터급 GPU 없이도 CPU 전용 머신을 포함한 일반 소비자용 하드웨어에서 동작하도록 설계되었습니다. 이 프로젝트는 현재 GitHub의 ggml-org 조직이 관리하며, 대규모 오픈소스 커뮤니티의 기여를 받아 텍스트 전용 LLM뿐 아니라 비전-언어 모델까지 지원하도록 발전했습니다.

  • Georgi Gerganov가 만들었으며 현재는 GitHub의 ggml-org 조직이 관리
  • C/C++로 작성되었으며, 같은 팀이 관리하는 텐서 라이브러리 ggml 위에 구축
  • MIT 라이선스: 라이선스 조건에 따라 소스 코드가 공개되어 사용·수정·재배포가 가능
  • CUDA 지원 GPU를 반드시 요구하는 엔진과 달리 CPU 전용 하드웨어와 GPU 모두에서 동작
  • 모델 가중치, 양자화 데이터, 메타데이터를 함께 저장하는 단일 파일 형식인 GGUF를 정의
  • GitHub 스타 10만 개를 훌쩍 넘는, 가장 널리 참조되는 오픈소스 LLM 추론 프로젝트 중 하나

llama.cpp는 어떤 하드웨어 가속을 지원하나요?

llama.cpp는 다양한 하드웨어 가속 백엔드를 지원하며, 이것이 CPU 전용 노트북부터 멀티 GPU 워크스테이션까지 모두에서 동작하는 이유 중 하나입니다.

CUDA

세부 사항:
NVIDIA GPU용입니다. 모델 레이어를 GPU 메모리로 오프로드해 CPU 전용 실행보다 빠른 추론을 제공하며, 멀티 GPU 구성도 지원합니다.

Metal

세부 사항:
Apple Silicon Mac(M1 이상)용입니다. Apple의 Metal API를 사용해 M 시리즈 칩의 GPU 코어에서 추론을 실행합니다.

Vulkan

세부 사항:
Windows와 Linux에서 지원되는 벤더 중립적 GPU API로, 특정 벤더 SDK 없이 여러 제조사의 GPU에서 사용할 수 있습니다.

ROCm / HIP

세부 사항:
AMD GPU용으로, AMD의 ROCm 컴퓨팅 스택을 통해 CUDA 전용 가속의 대안을 제공합니다.

SYCL

세부 사항:
일부 Intel CPU의 내장 그래픽을 포함한 Intel GPU용으로, Intel의 oneAPI SYCL 구현을 통해 사용합니다.

CPU(AVX / AVX2 / AVX512)

세부 사항:
최신 x86 프로세서에서 벡터화 명령어를 사용하는 최적화된 CPU 전용 실행 — GPU가 전혀 없어도 llama.cpp를 동작시킬 수 있는 대체 경로입니다.

프로젝트는 GitHub의 빌드 문서에서 BLAS, CANN, WebGPU 등 추가적이고 실험적인 백엔드도 함께 다루고 있습니다. 이 섹션은 대부분의 로컬 LLM 사용자가 실제로 선택하는 백엔드에 초점을 맞춥니다.

GGUF란 무엇이고, 어떤 양자화 형식을 선택해야 하나요?

GGUF는 llama.cpp가 정의한 모델 파일 형식으로, 양자화된 모델 가중치를 실행에 필요한 메타데이터(토크나이저, 아키텍처, 컨텍스트 길이)와 함께 저장하며, 프로젝트의 이전 GGML 형식을 대체합니다. 양자화는 모델 가중치를 원래 학습 형식보다 낮은 수치 정밀도로 저장해 메모리 사용량을 줄이는 대신, 일부 출력 품질을 VRAM/RAM 사용량 감소와 더 빠른 추론과 맞바꿉니다.

Q8_0

세부 사항:
8비트 양자화로, llama.cpp의 일반적인 형식 중 원본 비양자화 모델에 가장 가깝지만 그룹 내에서 파일 크기가 가장 큽니다.

Q5_K_M

세부 사항:
모델 레이어에 정밀도를 불균등하게 배분하는 5비트 "K-quant" 형식으로, 최소 파일 크기보다 품질을 우선시합니다.

Q4_K_M

세부 사항:
파일 크기와 출력 품질 사이의 균형점으로 흔히 사용되는 4비트 K-quant 형식 — VRAM이 제한적일 때 자주 권장되는 기본값입니다.

4비트 미만(Q3, Q2, 약 1.5비트 형식)

세부 사항:
매우 제한된 메모리에 더 큰 모델을 맞추기 위한 형식입니다. 비트 폭이 줄어들수록 품질 저하가 더 두드러지므로, 기본 선택이라기보다는 대개 최후의 수단입니다.

적합한 형식은 하드웨어와 구체적인 모델에 따라 달라집니다 — 이 글에는 특정 형식에 대해 독립적으로 측정한 품질 저하 비율이 포함되어 있지 않은데, 이는 모델 아키텍처와 작업에 따라 달라지기 때문입니다. 같은 모델을 여러 양자화 형식으로 내려받아 자신의 프롬프트로 출력을 비교해보는 것이 자신의 사용 사례에서 이 트레이드오프를 판단하는 가장 확실한 방법입니다.

llama-server는 무엇을 제공하나요?

llama-server는 llama.cpp에 포함된 HTTP 서버 바이너리입니다. 단일 바이너리가 llama.cpp 고유의 네이티브 API, OpenAI 호환 API, Ollama 호환 API 심(shim), 그리고 내장 브라우저 기반 채팅 UI를 모두 제공하며, 이 모든 것은 동일하게 로드된 모델과 KV 캐시를 기반으로 합니다.

  • /v1 아래의 OpenAI 호환 엔드포인트 — 이미 OpenAI API용으로 만들어진 도구는 기본 URL만 바꾸면 로컬 llama-server 인스턴스를 가리킬 수 있는 경우가 많습니다
  • 바이너리가 직접 제공하는 내장 웹 UI로, 별도의 프런트엔드를 설치하지 않고도 사용할 수 있습니다
  • 일부 Ollama 지향 클라이언트 도구가 대신 llama-server에 연결할 수 있게 해주는 Ollama 호환 API 심
  • 서버 및 요청 상태를 확인할 수 있는 /props, /slots 같은 내부 점검용 엔드포인트
  • 하나의 로드된 모델에 대해 요청을 한 번에 하나씩 처리하는 대신 여러 동시 요청 "슬롯"을 지원

llama.cpp는 어떻게 빌드하고 실행하나요?

llama.cpp는 보통 CMake로 소스에서 빌드하지만, 직접 컴파일하고 싶지 않다면 프로젝트가 GitHub 릴리스 페이지에서 여러 플랫폼용 사전 빌드 바이너리도 제공합니다.

  1. 1
    아직 없다면 운영체제에 맞는 C++ 툴체인과 CMake를 설치합니다.
  2. 2
    저장소를 클론합니다: git clone https://github.com/ggml-org/llama.cpp.
  3. 3
    사용할 하드웨어 백엔드에 맞게 빌드를 구성합니다 — 예를 들어 CMake 옵션으로 CUDA, Metal, Vulkan 지원을 활성화하거나, CPU 전용으로 둡니다.
  4. 4
    CMake로 프로젝트를 빌드합니다: cmake -B build 실행 후 cmake --build build --config Release를 실행합니다.
  5. 5
    Hugging Face 등에서 GGUF 형식 모델을 내려받고, 사용 가능한 VRAM이나 RAM에 맞는 양자화 형식을 선택합니다.
  6. 6
    llama-cli 바이너리로 명령줄에서 직접 터미널 채팅을 실행하거나, llama-server를 실행해 OpenAI 호환 HTTP API와 웹 UI를 제공합니다.
  7. 7
    llama-server를 사용하는 경우, 브라우저로 해당 로컬 주소에 접속하거나 OpenAI API 호환 클라이언트를 /v1 엔드포인트로 지정합니다.

llama.cpp를 반드시 소스에서 빌드해야 하나요?

아니요 — 프로젝트는 여러 플랫폼용 사전 빌드 바이너리도 GitHub 릴리스 페이지에서 제공합니다. 다만 소스에서 빌드하면 자신의 머신에 맞는 정확한 하드웨어 백엔드(CUDA, Metal, Vulkan 등)를 활성화할 수 있습니다.

실행할 GGUF 모델은 어디서 구하나요?

많은 GGUF 형식 모델이 Hugging Face 등 모델 공유 사이트에 공개되어 있으며, 보통 모델당 여러 양자화 형식이 제공되어 사용 가능한 메모리에 맞는 것을 선택할 수 있습니다.

llama.cpp는 Ollama와 어떤 관계인가요?

Ollama는 빌드 시스템을 건드리지 않고 로컬 LLM을 실행하는 가장 널리 쓰이는 방법 중 하나이며, 커뮤니티와 제3자 기술 자료에서는 대부분의 플랫폼에서 llama.cpp를 기본 추론 엔진으로 사용한다고 흔히 설명됩니다. Ollama 자체는 이 의존 관계를 자세히 문서화하지 않으므로, 공식 사양이라기보다는 널리 보고된 아키텍처로 받아들이는 것이 맞지만, 이는 Ollama 자체의 오픈소스 코드와도 일치합니다.

  • llama.cpp는 저수준 추론 엔진이고, Ollama는 모델 레지스트리, 원커맨드 다운로드, 더 단순한 CLI, 자체 Modelfile 설정 시스템을 추가하는 패키징 계층입니다
  • llama.cpp를 직접 선택하면 Ollama의 단순화된 인터페이스가 노출하지 않는 정확한 빌드 플래그, 양자화 형식, 서버 설정을 제어할 수 있습니다
  • Ollama를 선택하면 그런 제어권 대신 더 빨리 모델을 실행할 수 있지만, 기본 엔진 설정에 대한 유연성은 일부 줄어듭니다
  • 둘 다 OpenAI 호환 API를 제공할 수 있습니다 — llama.cpp는 llama-server를 통해, Ollama는 자체 API 계층을 통해

llama.cpp를 직접 쓰기에 적합한 사람은 누구인가요?

llama.cpp는 동작하는 채팅 창까지 가는 가장 빠른 길보다는, 모델이 어떻게 실행되는지 직접 제어하고 싶은 사람에게 어울립니다.

llama.cpp vs. Ollama vs. LM Studio vs. vLLM

이 네 가지 도구는 제어권과 편의성 스펙트럼에서 서로 다른 지점에 있으며, 그중 두 가지(Ollama, 그리고 Apple Silicon에서 LM Studio를 둘러싼 생태계의 일부)는 처음부터 만든 독자적 대안이 아니라 그 자체가 추론 엔진 위에 구축되어 있습니다.

llama.cpp

인터페이스와 설정:
CLI, 내장 웹 UI, llama-server를 통한 OpenAI 호환 API. CMake로 소스에서 빌드하거나 사전 빌드된 릴리스 바이너리 사용; 양자화 형식은 직접 선택합니다.
적합한 용도:
최대한의 제어권, 임베디드/엣지 배포, 엔진 위에 직접 구축하는 맞춤형 파이프라인.

Ollama

인터페이스와 설정:
CLI와 REST API로, 대부분의 플랫폼에서 llama.cpp를 백엔드로 사용한다고 흔히 알려져 있습니다. 한 줄 명령으로 설치하고, 한 줄 명령으로 모델을 내려받아 실행합니다.
적합한 용도:
엔진 수준의 설정이 필요 없는 사람에게, 빌드 단계 없이 로컬 모델을 가장 빠르게 실행하는 방법.

LM Studio

인터페이스와 설정:
Mac, Windows, Linux용 그래픽 데스크톱 앱. 다운로드 후 설치하고, 앱 안에서 모델을 탐색해 내려받습니다.
적합한 용도:
명령줄 대신 클릭식 채팅 앱을 원하는 비기술 사용자.

vLLM

인터페이스와 설정:
OpenAI 호환 API를 갖춘 Python 서버로, Python/CUDA 환경에서 pip로 설치합니다. GGUF나 llama.cpp가 아닌 자체 PagedAttention 서빙 엔진을 사용합니다.
적합한 용도:
단일 사용자 로컬 채팅이 아니라 프로덕션 환경의 고처리량 다중 사용자 GPU 서빙.

이 글은 이 네 가지 도구의 속도나 출력 품질을 독립적으로 벤치마크하지 않았으며, 어느 하나가 기술적으로 더 우수하다고 주장하지 않습니다 — 위 비교는 문서화된 아키텍처, 설정, 접근 방식에 관한 사실만 다룹니다. 하드웨어별 처리량 수치는 전용 llama.cpp vs. Ollama vs. vLLM 비교 글과 vLLM을 더 깊이 다루는 엔터프라이즈 추론 서버 가이드를 참고하세요.

이 글이 다루지 않는 것

이 글은 llama.cpp의 공개 문서와 저장소를 바탕으로 작성된 해설 글이며, 실제 벤치마크 보고서가 아닙니다.

  • 독립적으로 측정한 초당 토큰 수나 지연 시간 수치는 포함하지 않았습니다 — 처리량은 구체적인 하드웨어, 모델, 양자화 형식, 빌드 플래그에 크게 좌우됩니다
  • 특정 양자화 형식에 대해 독립적으로 검증된 품질 저하 비율은 포함하지 않았습니다 — 모델 아키텍처와 작업에 따라 달라집니다
  • llama.cpp 코드베이스에 대한 줄 단위 보안 감사는 수행하지 않았습니다 — 오픈소스이고 MIT 라이선스이므로 코드 자체를 검토할 수 있습니다
  • llama.cpp가 지원하는 모든 백엔드나 빌드 플래그를 다루지는 않습니다 — 이 글은 대부분의 로컬 LLM 사용자가 실제로 선택하는 백엔드와 형식에 초점을 맞춥니다
  • llama.cpp는 지원 계약이 딸린 벤더 제품이 아니라 커뮤니티 오픈소스 프로젝트이므로 상업적 지원 계약은 다루지 않습니다

llama.cpp를 시도할 때 흔한 실수

llama.cpp를 둘러싼 대부분의 마찰은 이를 직접 빌드해야 하는 엔진이 아니라 일반 소비자용 앱처럼 대하는 데서 비롯됩니다.

자주 묻는 질문

llama.cpp란 무엇인가요?

llama.cpp는 Georgi Gerganov가 만든 무료 MIT 라이선스 C/C++ 추론 엔진으로, CPU나 GPU에서 대규모 언어 모델을 로컬로 실행합니다. GitHub의 ggml-org 조직이 관리합니다.

llama.cpp는 무료인가요?

네. llama.cpp는 MIT 라이선스로 공개된 무료 오픈소스 소프트웨어로, 구독이나 계정이 필요하지 않습니다.

GGUF란 무엇인가요?

GGUF는 llama.cpp가 정의한 모델 파일 형식으로, 양자화된 모델 가중치를 토크나이저와 아키텍처 세부 정보 같은 실행에 필요한 메타데이터와 함께 저장합니다. llama.cpp뿐 아니라 로컬 AI 생태계의 상당 부분에서 사용됩니다.

Ollama는 llama.cpp를 사용하나요?

커뮤니티와 제3자 기술 자료에서는 Ollama가 대부분의 플랫폼에서 llama.cpp를 추론 엔진으로 사용하며 그 위에 자체 모델 레지스트리, CLI, Modelfile 시스템을 추가한다고 흔히 설명합니다. Ollama 자체는 이 의존 관계를 자세히 문서화하지 않습니다.

llama.cpp는 어떤 하드웨어를 지원하나요?

llama.cpp는 (AVX/AVX2/AVX512 최적화를 적용한) CPU 전용 실행뿐 아니라 CUDA(NVIDIA), Metal(Apple Silicon), Vulkan, ROCm/HIP(AMD), SYCL(Intel)을 통한 GPU 가속도 지원합니다.

llama.cpp는 어떤 양자화 형식을 지원하나요?

llama.cpp는 Q8_0 같은 8비트 형식부터 약 1.5비트 형식까지 양자화를 지원하며, 파일 크기와 출력 품질 사이 균형을 맞추는 Q5_K_M, Q4_K_M 같은 중간 형식이 널리 쓰입니다.

llama.cpp를 사용하려면 C++를 알아야 하나요?

아니요 — llama-cli나 llama-server 바이너리로 모델을 실행하는 데는 코드 작성이 필요하지 않습니다. 프로젝트를 소스에서 빌드하려면 C++ 툴체인과 CMake가 필요하지만, 엔진 자체를 수정하고 싶은 경우가 아니라면 직접 C++를 작성할 필요는 없습니다.

llama.cpp에는 그래픽 사용자 인터페이스가 있나요?

llama-server에는 브라우저 기반 내장 웹 UI가 포함되어 있지만, LM Studio에 견줄 만한 별도의 그래픽 설치 프로그램이나 데스크톱 앱은 없습니다. Ollama 호환 및 OpenAI API 호환 프런트엔드를 포함한 여러 서드파티 앱이 대신 llama-server에 연결할 수 있습니다.

llama.cpp가 Ollama보다 나은가요?

"더 낫다"는 필요에 따라 다릅니다. llama.cpp는 빌드 플래그, 양자화, 서버 설정을 더 직접적으로 제어할 수 있게 해주고, Ollama는 더 빠르고 간단하게 모델을 실행할 수 있게 해줍니다. 이 글은 어느 한쪽이 기술적으로 더 우수하다고 주장하지 않습니다. 자세한 내용은 위 비교표와 전용 벤치마크 비교 글을 참고하세요.

llama.cpp는 GPU 없이도 실행되나요?

네. llama.cpp는 사용 가능할 때 GPU 가속을 지원하는 것 외에도, 벡터화 명령어(AVX/AVX2/AVX512)를 사용해 CPU 전용 하드웨어에서 동작하도록 설계되었습니다.

출처

← 고급 로컬 LLM으로 돌아가기