한 줄 정의
llama.cpp는 오픈 가중치 LLM을 CPU나 GPU에서 직접 돌리게 해주는 C/C++ 기반 추론 엔진이야. 이름은 특정 모델 계열에서 출발했지만, 지금은 여러 GGUF 모델을 실행하는 공용 런타임에 더 가깝고 CLI와 서버까지 함께 제공해 실제 배포 경로에 바로 닿아 있어.
어떻게 작동하나
핵심은 모델을 GGUF 파일 형태로 준비하고, llama.cpp가 그 파일을 읽어 토큰 생성 계산을 수행하는 방식이야. 이 과정에서 양자화된 가중치를 써서 메모리 사용량을 줄이고, CPU만 쓰거나 Metal·CUDA·Vulkan 같은 백엔드를 붙여 장비에 맞게 속도를 끌어올려.
사용 방식도 나뉘어 있어. llama-cli로 터미널에서 바로 테스트할 수 있고, llama-cli로 OpenAI 호환 API를 열어 내부 서비스나 실험용 앱 뒤에 붙일 수도 있어.
왜 중요한가
실무에서는 이 도구를 쓰는 순간 단순히 모델을 호출하는 게 아니라, 어떤 파일 포맷을 받을지, 어느 정도로 양자화할지, 어떤 장비에 올릴지, API를 어떤 방식으로 감쌀지를 직접 결정하게 돼. 그래서 비용 통제, 지연 시간, 데이터 외부 반출 제한이 중요한 팀에선 작은 유틸리티가 아니라 배포 구조를 바꾸는 축이 될 수 있어. 기사나 릴리스 노트에서 어떤 모델이 llama.cpp를 지원한다고 나오면, 그 말은 대개 모델 성능 자체보다 로컬 실행 가능성, 온프레미스 배포 여지, 더 싼 운영 경로가 열렸다는 뜻에 가깝다. 반대로 팀이 관리형 API만 쓰고 운영 책임을 최소화하려면 영향 범위는 줄고, 실험용 로컬 런타임 정도로만 남을 수 있어.
주의해서 볼 점
llama.cpp를 쓴다고 바로 쉬운 제품이 되는 건 아니야. 모델 포맷을 GGUF로 맞춰야 하고, 양자화 수준에 따라 품질·속도·메모리 사용량이 함께 바뀌어서 운영 판단이 계속 들어가. 이름 때문에 Meta의 LLaMA 전용 도구처럼 보일 수 있지만 실제로는 호환되는 여러 모델을 돌리는 쪽으로 넓게 쓰여. 또 Ollama 같은 상위 도구가 감춰 주는 부분을 직접 다루게 되므로, 모델 관리, 서버 옵션, 프롬프트 템플릿, 하드웨어 튜닝 책임이 팀 안으로 들어온다는 점을 같이 봐야 해.
관련 용어
- Ollama — Ollama는 llama.cpp 같은 추론 엔진 위에 모델 설치, 실행 명령, API 노출을 더 쉽게 감싼 도구에 가깝다. 직접 제어보다 사용 편의와 빠른 온보딩이 중요할 때 차이가 크게 느껴져.
- GGUF — GGUF는 llama.cpp가 주로 읽는 모델 파일 포맷이야. llama.cpp가 실행 엔진이라면 GGUF는 그 엔진에 넣는 포장 형식이라고 보면 된다.
- Local LLM — Local LLM은 로컬에서 모델을 돌리는 방식 전체를 가리키는 넓은 말이야. llama.cpp는 그 범주 안에서 실제 추론을 맡는 구체적인 구현체다.
- LM Studio — LM Studio는 GUI 중심이라 모델 검색, 다운로드, 채팅 테스트가 쉽다. llama.cpp는 그보다 아래 층에서 실행 성능, 포맷 호환, 서버화 같은 운영 쪽을 더 직접 건드린다.