LMCache

LMCache: 무엇인지, 어떤 문제를 해결하는지 & 왜 인기를 얻고 있는지

해결하는 문제

LMCache는 KV (Key-Value) 캐시가 일반적으로 일시적인 상태로 취급되는 LLM 추론의 비효율성을 해결합니다. 이는 반복적인 prefill 계산, 높은 TTFT (time-to-first-token), 그리고 특히 RAG, 다중 턴 대화, 에이전트 작업과 같은 긴 문맥(long-context) 워크로드에서 제한된 처리량을 초래합니다.

작동 방식

LMCache는 KV 캐시를 재사용 가능한 영구적인 지식으로 변환하는 벤더 중립적인 관리 계층으로 작동합니다. KV 캐시를 GPU 메모리에서 계층형 스토리지 계층(CPU RAM, 로컬 SSD, 또는 Redis 및 S3와 같은 원격 백엔드)으로 오프로딩합니다. 독립적인 데몬 프로세스로 작동하므로 추론 엔진이 충돌하더라도 활성 상태를 유지합니다. 또한 CacheBlend을 통한 non-prefix KV 재사용과 PD (Prefill-Decode) 분리(disaggregation)를 지원하며, NVLink 또는 RDMA와 같은 고속 전송 계층을 통해 prefill 및 decode 워커 간에 캐시를 전송합니다.

대상 사용자

긴 문맥 애플리케이션의 지연 시간을 줄이고 비용을 절감해야 하는 확장 가능한 LLM 추론 시스템을 구축하는 개발자와 연구자, 그리고 다양한 오픈 소스 서빙 엔진과 하드웨어 벤더를 사용하는 사람들을 위해 설계되었습니다.

주요 특징

  • Engine-Independent: 추론 엔진과의 fate-sharing을 피하기 위해 별도의 프로세스로 작동합니다.
  • Tiered Storage: CPU 메모리, 로컬 디스크, 원격 스토리지(Redis, S3 등)로의 오프로딩을 지원합니다.
  • Observability: 캐시 히트, 수명 주기, 성능 진단에 대한 프로덕션 수준의 메트릭을 제공합니다.
  • Flexible Reuse: 단순한 prefix 캐싱을 넘어 KV 재사용을 가능하게 하여, 캐싱된 블록을 프롬프트의 어느 위치에서든 사용할 수 있게 합니다.
  • Hardware Agnostic: 다양한 하드웨어(AMD, Arm, Ascend, NVIDIA) 및 전송 계층과 호환됩니다.

Sources