localai-org/vllm.cpp
a community oriented 1:1, vLLM-alike (Continuous batching, paged KV) engine in C++ with additional features (GGUF, RadixAttention, Cache-aware scheduling, ...)
해결하는 문제
vllm.cpp는 vLLM의 경량화된 독립형 대안으로 설계된 고성능 C++20 추론 엔진입니다. 추론 시 Python과 PyTorch에 대한 의존성을 제거하여 배포 크기를 획기적으로 줄였으며(GB 단위에서 MB 단위로), vLLM과 동일한 처리량과 토큰 단위로 완전히 일치하는 출력을 유지합니다.
작동 원리
주요 추론 엔진들의 핵심 기능을 결합했습니다:
- vLLM: 연속 배치 처리(continuous batching), 블록 페이징 KV 캐시(block-paged KV cache), 자동 접두사 캐싱(automatic prefix caching)을 포함한 서빙 코어를 채택했습니다.
- SGLang: RadixAttention 및 jump-forward decoding과 같은 스케줄링 개념을 통합했습니다.
- llama.cpp: 평면 C ABI를 구현하고 GGUF 파일을 지원하여 CPU의 양자화된 블록에서 직접 계산을 수행할 수 있습니다.
- MLX: Apple Silicon에서 최적화된 성능을 위해 MLX의 GEMM을 활용합니다.
이 엔진은 단일 소스 트리에서 다양한 하드웨어(CUDA, CPU, Metal, Vulkan)와 양자화 형식(NVFP4, EXL3, GGUF)을 지원합니다.
대상 사용자
Python 기반 스택의 복잡성 없이 최소한의 오버헤드, 빠른 콜드 스타트, 그리고 다양한 하드웨어에서 높은 처리량으로 LLM을 배포해야 하는 개발자 및 운영자.
주요 특징
- 극도의 경량화: 9.1 GiB에 달하는 vLLM 설치 대비 66 MiB의 바이너리 크기.
- vLLM 동등 성능: 지원되는 모델에서 토큰 단위로 완전히 일치하는 출력과 동일한 처리량 제공.
- 광범위한 하드웨어 지원: CUDA, CPU, Metal, Vulkan에 대한 네이티브 지원.
- 광범위한 모델 지원: 멀티모달(이미지, 비디오, 오디오) 및 음악 생성을 포함한 44개의 등록된 아키텍처 지원.
- 고급 기능: 추론 디코딩(speculative decoding, MTP, DFlash), 구조화된 출력(JSON schema, GBNF), 외부 KV 오프로드 지원.
- GGUF 통합: GGUF 파일에 대한 일급 지원을 제공하며 CPU의 압축된 블록에서 직접 계산 수행 가능.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트