prima.cpp
소개
llama.cpp
기반으로 개발된 prima.cpp
는 70B급 LLM도 일반 가정용 기기에서 분산 실행할 수 있도록 도와주는 프로젝트입니다. prima.cpp
는 대규모 언어 모델(LLM)을 실행하기 위해 고사양 GPU 서버가 필요하다는 인식을 깨는 프로젝트로, 극도로 낮은 메모리 사용량과 독특한 분산 구조를 통해 가정에 있는 노트북이나 스마트폰에서도 Llama 3-70B 같은 모델을 실행하는 것을 목표로 합니다.
prima.cpp
는 llama.cpp
의 분산 구현체로, LLM을 여러 대의 저사양 기기에서도 실행할 수 있게 설계된 프로젝트입니다. 기존 llama.cpp
대비 월등한 성능과 혁신적인 분산 구조를 바탕으로, 저비용 클러스터 환경에서도 LLM을 운용할 수 있는 새로운 가능성을 제시합니다.
특히, 이 프로젝트는 mmap 기반의 레이지 로딩으로 메모리 압력을 최소화하며, 실제 실험에서는 70B 모델도 10% 이하의 메모리 사용률을 유지할 수 있었다고 합니다. 이는 OOM 걱정 없이 대규모 모델을 돌릴 수 있는 획기적인 접근 방식입니다.
또한, 모델 추론 속도 측면에서도 llama.cpp
대비 최대 15배 이상 빠른 성능을 보여주며, 다양한 플랫폼(맥OS, 리눅스, 안드로이드, HarmonyOS 등)을 지원합니다. Llama, Qwen, QwQ, DeepSeek 시리즈 등 다양한 모델을 지원하여 프라이버시 보호가 중요한 개인화 음성 비서(Home Siri) 등의 응용 사례에도 활용 가능성이 높습니다.
prima.cpp
의 주요 기능
-
낮은 메모리 압력: 모델 가중치를
mmap
방식으로 레이지 로딩하며, OS의 페이지 캐시 관리를 통해 메모리 부담을 최소화합니다. -
GPU/CPU 동시 활용: VRAM이 부족한 경우 일부 모델 레이어를 시스템 메모리로 오프로드하여 처리할 수 있습니다.
-
고급 병렬화 구조: piped-ring parallelism을 적용하여 레이어 프리페치와 디스크 I/O 병목을 해소합니다.
-
이기종 클러스터 대응: 각 기기의 연산 성능, 메모리, 디스크 속도, 운영체제 등을 기반으로 최적의 작업 분배를 자동 수행합니다.
-
다양한 양자화 방식 지원: Q4_K, IQ1, 그리고 이들의 하이브리드 방식(Q4K-IQ1)을 지원합니다.
-
멀티 플랫폼 지원: Linux, macOS, Android, HarmonyOS 등 다양한 OS를 혼합한 클러스터 구성이 가능합니다. (Windows는 추후 지원 예정)
-
지원 모델 다양성: Llama 3-70B, Qwen 2.5-72B, QwQ-32B 등 Hugging Face에서 제공되는 주요 모델들을 지원합니다.
prima.cpp 프로젝트 GitHub 저장소
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다.
파이토치 한국 사용자 모임
이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일
로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)
아래
쪽에 좋아요
를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~