llama.cpp는 Georgi Gerganov가 개발하고 현재 오픈소스 커뮤니티에서 유지·관리하는 C/C++ 기반 경량화 대형 언어 모델(LLM) 추론 엔진이다. Meta의 LLaMA 등 다양한 모델을 로컬 환경에서 CPU 또는 GPU로 실행할 수 있도록 설계되었다.
개요
llama.cpp는 GGML 기반의 추론 엔진으로, 외부 라이브러리 없이도 다양한 플랫폼에서 고속으로 실행된다. Apple Silicon, x86, ARM 기반 CPU는 물론 CUDA, Metal, Vulkan, SYCL을 활용한 GPU 가속도 지원한다.[1]
주요 특징
- 플랫폼 독립 실행: macOS, Windows, Linux, Android, WebAssembly 등 지원
- 의존성 없음: 순수 C/C++ 기반으로 작성되어 외부 패키지 없이 빌드 가능
- 양자화 지원: int4, int8 등 다양한 양자화 형식을 통한 경량 모델 추론
- GGUF 포맷 사용: 텐서와 메타데이터를 통합한 단일 모델 파일 포맷
- 멀티스레딩 및 메모리 최적화: 메모리 맵핑과 쓰레드 분산 처리로 고속 추론
설치 방법
macOS / Linux
git clone https://github.com/ggerganov/llama.cpp cd llama.cpp make
Windows
- 사전 컴파일 바이너리 다운로드 또는 CMake로 직접 빌드
실행 예시
- 모델 실행
./main -m models/llama3.gguf -p "Hello, world!"
- 채팅 모드
./chat -m models/llama3.gguf
통합 및 활용
- Python 연동: llama-cpp-python을 통해 Python에서 추론 가능
- LangChain 지원: 로컬 LLM 백엔드로 통합 가능
- 모델 변환: Hugging Face 모델을 GGUF로 변환하는 스크립트 제공
- GUI 및 서버: Ollama, llama-rs, LocalAI 등과 연동 가능
장단점
장점
- 빠른 로컬 추론: GPU 없이도 효율적 실행 가능
- 다양한 하드웨어 지원 및 경량성
- 활발한 커뮤니티와 생태계 확장성
단점
- 일부 기능 제한: 최신 LLM API 기능 미지원
- 초기 설정 요구: 모델 변환, 빌드 등 진입 장벽 존재
같이 보기
참고 문헌
- Gerganov, G. (2023). llama.cpp GitHub 저장소.
- Intel AI (2024). Run LLMs on Intel GPUs Using llama.cpp.
- Codecademy (2024). How to Use llama.cpp.
각주
- ↑ llama.cpp GitHub 저장소. https://github.com/ggerganov/llama.cpp