ModelEngine-Group/unified-cache-management

Persist and reuse KV Cache to speedup your LLM.

Unified Cache Manager (UCM)

개요 – UCM은 LLM 추론 엔진(Transformers, vLLM 등)과 해당 엔진이 사용하는 키-값(KV) 어텐션 캐시 스토리지 사이에 위치하는 라이브러리입니다. 다음과 같은 기능을 갖춘 단일 KV-cache 계층을 제공합니다.

  • 재사용: 이전에 계산된 어텐션 상태를 서로 다른 추론 요청 간에 재사용합니다(예: 멀티턴 채팅, 멀티모달 파이프라인).
  • 이동: 빠른 가속기 메모리와 느린 외부 스토리지 간에 캐시 데이터를 이동하여 제한된 GPU/TPU 메모리를 확장합니다.
  • 플러그인: 애플리케이션 코드를 변경하지 않고도 다양한 스토리지 백엔드(메모리 풀, 파일 시스템 Blob, 네트워크 스토어)와 엔진 어댑터를 삽입할 수 있습니다.

왜 중요한가

LLM 추론은 많은 요청에서 동일한 프롬프트 접두사가 나타날 때마다 동일한 어텐션 컨텍스트를 반복적으로 재계산합니다. UCM은 단일 포워드 패스를 넘어 KV 캐시를 유지하고 필요할 때 외부 스토리지로 넘김으로써 계산 시간을 단축하고 가속기의 메모리 압박을 줄일 수 있습니다. 이는 장기 실행 에이전트, 챗봇 또는 이전 컨텍스트를 다시 참조하는 멀티모달 앱에 특히 유용합니다.

핵심 개념

구성 요소 역할
애플리케이션 / 추론 엔진 프리필(pre-fill) 단계에서 KV 캐시를 생성하고 디코드(decode) 중에 이를 소비합니다.
Unified Cache 어떤 캐시를 유지하고, 어디에 유지하며, 언제 이동할지(예: 프리필-디코드 전송, 희소 어텐션 로딩) 결정합니다.
Global KV Store 추상 스토리지 계층; 구현은 순수 RAM, 디스크 기반 또는 분산형이 가능합니다.

주요 기능(README에 설명된 대로)

  • 플러그인 가능한 어댑터: 여러 추론 엔진 지원.
  • 플러그인 가능한 스토리지 백엔드: 메모리 풀, 파일 시스템, 사용자 정의 스토어 등.
  • 캐시 수명 주기 관리: 자동 재사용, 제거 및 이동.
  • 고급 재사용 패턴 지원: 공유 접두사, 멀티모달 컨텍스트, KV-Bridge 스타일의 청크 캐싱 등.
  • 관측성 도구: 캐시 재사용 및 런타임 동작 검사.
  • 확장 가능한 개발자 가이드: 새로운 엔진, 스토어 또는 캐시 메커니즘 추가용.

일반적인 사용 사례

  1. 챗봇 서버: 대화 기록을 KV 캐시에 유지하여 각 새 턴마다 새로운 토큰만 계산하면 되도록 합니다.
  2. 멀티모달 파이프라인: 이미지-텍스트 임베딩이 큰 공통 접두사를 공유하는 경우.
  3. 배치 추론: 많은 요청이 동일한 시스템 프롬프트나 few-shot 예제를 공유하는 경우.
  4. 리소스 제약이 있는 배포: 제한된 GPU 메모리에서 더 큰 컨텍스트를 수용하기 위해 SSD나 네트워크 스토리지로 캐시를 넘겨야 하는 경우.

시작하기(README의 빠른 단계)

  1. 호환성 확인: 지원 매트릭스를 참조하여 엔진, 모델 및 하드웨어가 지원되는지 확인합니다.
  2. 퀵스타트 따르기: 적절한 아티팩트(pip 패키지 또는 컨테이너 이미지)를 설치하고, 스토리지 백엔드를 구성한 후 --ucm 플래그(또는 동등한 플래그)를 사용하여 엔진을 시작합니다.
  3. 검증: 관측성 가이드를 사용하여 캐시 재사용 지표를 확인하고 캐시 이동이 예상대로 발생하는지 확인합니다.

모든 상세 명령어, Docker 이미지 태그 및 구성 예제는 온라인 문서에 있습니다.

커뮤니티 및 기여

  • 기여: 개발자 가이드를 통해 새로운 엔진 어댑터, 스토리지 백엔드 또는 캐시 정책을 추가하세요.
  • 버그 보고 / 기능 요청: GitHub 저장소에서 Issue를 여세요.
  • 문서: 상세한 사용자 가이드, 개발자 가이드 및 문제 해결 섹션이 있습니다.

라이선스

UCM은 MIT 라이선스로 릴리스되지만 추가 조건이 있습니다(저장소의 LICENSE 파일 참조).


위의 모든 정보는 저장소의 README 및 링크된 문서에서 직접 가져온 것이며, 외부적인 가정은 추가되지 않았습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트