LMCache/LMCache

LMCache: Supercharge Your LLM with the Fastest KV Cache Layer

해결하는 문제

LMCache는 일반적으로 임시 상태로 취급되는 LLM 추론의 Key-Value (KV) 캐시 비효율성을 해결합니다. KV 캐시를 재사용 가능한 영구적 지식으로 변환함으로써, LMCache는 특히 반복적인 prefill 계산이 주요 병목 현상인 긴 컨텍스트 에이전트 워크로드, 멀티턴 대화 및 RAG 애플리케이션에서 Time-to-First-Token (TTFT)을 단축하고 처리량을 높입니다.

작동 원리

LMCache는 추론 엔진과 스토리지 사이에 위치하는 벤더 중립적 관리 레이어 역할을 합니다. KV 캐시를 독립적인 데몬 프로세스로 관리하여 엔진이 충돌하더라도 캐시 손실을 방지합니다. 또한 계층형 스토리지 계층(CPU 메모리, 로컬 SSD 및 Redis 또는 S3와 같은 원격 백엔드)을 사용하여 다양한 요청, 세션 및 엔진 인스턴스 간에 캐시를 오프로드하고 재사용합니다.

단순한 접두사(prefix) 캐싱을 넘어, CacheBlend를 통해 비접두사 KV 재사용을 지원하여 토큰을 선택적으로 재계산합니다. 또한 NVLink, RDMA 또는 TCP를 통해 prefill 워커에서 decode 워커로 KV 캐시를 전송하는 Prefill-Decode (PD) 분리(disaggregation)를 지원합니다.

대상 사용자

특정 추론 엔진이나 하드웨어 벤더에 종속되지 않고 긴 컨텍스트 또는 멀티턴 상호작용의 성능을 최적화해야 하는 확장 가능한 LLM 서빙 시스템 구축 개발자 및 인프라 제공업체.

주요 특징

  • 엔진 독립적 배포: KV 캐시가 별도의 데몬에 의해 관리되므로 추론 엔진이 충돌해도 캐시가 유지됩니다.
  • 영구적 계층형 스토리지: KV 캐시를 CPU RAM, 로컬 디스크 및 원격 백엔드(예: Redis, S3)로 오프로드하여 세션 간 재사용이 가능합니다.
  • 플러그형 백엔드: NVLink, RDMA, Redis 및 S3 호환 스토리지 등 광범위한 전송 및 스토리지 제공업체를 지원합니다.
  • 비접두사 재사용: 프롬프트의 시작 부분뿐만 아니라 임의의 위치에 있는 캐시된 KV 블록을 재사용합니다.
  • 운영 관측성(Observability): 캐시 히트, 라이프사이클 및 성능 진단을 위한 상세한 메트릭을 제공합니다。
  • KV 변환: 연구자가 사용자 정의 압축 및 직렬화를 구현할 수 있는 유연한 인터페이스를 제공합니다.