cactus
무엇인가
Cactus는 모바일·웨어러블·스마트홈·로봇 같은 엣지 기기에서 LLM·VLM·음성 모델을 직접 실행하기 위한 C++ 추론 스택이다. 클라우드 API 호출을 기기 내 연산으로 대체하는 자리에 놓이며, 양자화·커널·런타임·추론 엔진을 한 저장소에서 함께 다룬다.
어떻게 동작하나
구성은 Cactus Engine(추론 실행), Cactus Graph(연산 그래프), 양자화 커널, 모델 변환기로 나뉜다. HuggingFace 모델은 `cactus convert [HF-Name]`으로 변환하고, 미리 올려둔 모델은 `cactus download [HF-Name]`으로 받는다. `cactus run [HF-Name]`은 모델이 없으면 먼저 내려받거나 변환한 뒤 실행한다. 가중치는 CQ2·CQ3·CQ4 균일 양자화와 CQ3.26·CQ2.54 혼합 정밀도 포맷으로 저장된다. Swift·Kotlin·Flutter·React Native·Python·Rust 바인딩이 있어 같은 런타임을 각 플랫폼에서 호출한다.
무엇과 다른가
클라우드 추론 API와 달리 네트워크 왕복 없이 기기에서 디코드를 수행한다. 범용 데스크톱 추론기와 달리 모바일·웨어러블의 메모리와 전력 제약을 전제로 커널과 양자화를 설계했고, 1k 컨텍스트 기준 피크 RAM을 벤치마크 항목으로 측정한다. 추측 디코드나 MTP 없이 순수 디코드만 사용한다.
어떻게 쓰나
macOS에서는 `brew install cactus-compute/cactus/cactus`로 설치한 뒤 `cactus run`을 실행한다. 모델을 지정하려면 `cactus run [HF-Name]`을 쓴다. `cactus benchmark`에 `--ios` 또는 `--android`를 붙이면 해당 플랫폼에서 LLM·VLM·전사 성능을 측정한다.
전제와 한계
모든 HuggingFace 모델을 변환할 수 있지만 실험적이며, Liquid·Gemma·Whisper·Parakeet·Qwen 계열이 특히 검증되어 있다. 온디바이스 툴 호출용으로 26M 파라미터 Needle 모델을 별도로 둔다. 벤치마크 수치는 M5 Max에서 1k 컨텍스트 프리필과 100토큰 디코드 조건으로 측정된 값이다.
관련 논문 5
유사 도구
- llama.cppC/C++로 작성된 LLM·VLM 추론 엔진이다. ggml 위에서 GGUF 양자화 모델을 CPU·GPU로 실행하며 외부 의존성이 없다.
- llamafilellama.cpp와 Cosmopolitan Libc를 결합해 LLM 가중치와 추론 런타임을 단일 실행 파일로 묶는 로컬 실행기다. 설치 없이 여러 운영체제와 CPU 아키텍처에서 구동된다.
- gpt4all데스크톱과 노트북에서 LLM을 API 호출이나 GPU 없이 로컬로 실행하는 C++ 추론 클라이언트다. llama.cpp를 백엔드로 쓴다.
- PowerInfer활성화 지역성을 이용해 hot 뉴런은 GPU에, cold 뉴런은 CPU에 배치하는 CPU/GPU 하이브리드 LLM 추론 엔진이다. 단일 소비자용 GPU에서 대형 모델을 서빙한다.
- llmfit에이전트가 로컬 LLM 실행 가능 여부를 추측하지 않도록, 하드웨어를 탐지해 양자화별 메모리·속도 적합도를 계산하는 CLI 스킬이다.
- lmdeployLLM을 4bit로 압축해 GPU에서 서빙하는 파이썬 툴킷이다. TurboMind와 PyTorchEngine 두 추론 엔진, OpenAI 호환 API 서버를 포함한다.