ovg-project/kvcached
Virtualized Elastic KV Cache for Dynamic GPU Sharing and Beyond
해결하는 문제
LLM 서빙 엔진은 일반적으로 시작 시 고정된 양의 GPU 메모리를 KV 캐시에 할당하기 때문에, 여러 모델을 실행하거나 동적 워크로드를 처리할 때 메모리 분할이 고정되어 GPU 활용도가 낮아집니다. kvcached는 유연한 수요 기반 KV 캐시 할당을 가능하게 하여 여러 LLM이 GPU 메모리를 더 유연하게 공유할 수 있도록 합니다.
작동 방식
LLM 시스템에 OS 스타일의 가상 메모리 추상화를 도입합니다. GPU 가상 주소와 물리적 메모리 할당을 분리함으로써, 서빙 엔진은 초기에 가상 메모리를 예약하고 캐시가 실제로 사용될 때만 물리적 GPU 메모리로 백업할 수 있습니다. 이로 인해 실시간 부하에 맞춰 메모리를 온디맨드로 할당하고 회수할 수 있습니다.
대상 사용자
자원이 제한된 환경에서 LLM을 배포하는 개발자 및 운영자. 공유 GPU에서 여러 모델을 실행하고 싶거나, 서버리스 LLM 배포를 구현하거나, LLM 추론을 트레이닝 또는 파인튜닝과 같은 다른 GPU 워크로드와 함께 실행하고자 하는 경우에 적합합니다.
주요 기능
- 에라스틱 KV 캐시: 실제 수요에 따라 메모리를 동적으로 할당 및 회수.
- GPU 가상 메모리: 런타임 매핑을 통해 논리적 KV 캐시와 물리적 메모리를 분리.
- 엔진 통합: vLLM 및 SGLang과 같은 주요 서빙 엔진용 플러그인으로 작동.
- 프리픽스 캐시: 자동 프리픽스 캐시(APC) 및 RadixCache를 지원하여 요청 간 재사용 가능.
- 메모리 제어: 메모리 제한을 강제하는 CLI 포함.
- 다중 모델 지원: 경직된 분할 없이 여러 LLM을 동시에 배포 가능.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트