ModelEngine-Group/unified-cache-management

Persist and reuse KV Cache to speedup your LLM.

해결하는 문제

Unified Cache Manager (UCM)는 대규모 언어 모델(LLM)의 KV 캐시와 관련된 높은 GPU 메모리 사용량과 계산 중복 문제를 해결합니다. 특히 긴 시퀀스 추론 시 GPU 메모리 병목 현상을 완화하기 위해 KV 캐시를 외부 저장소로 오프로드하고, 효율적인 검색 메커니즘을 통해 중복 계산을 줄입니다.

작동 방식

UCM은 LLM의 KV 캐시를 지속적으로 유지하는 스토리지-컴퓨팅 분리 아키텍처를 구현합니다. 모듈식 프레임워크에서는 UcmSparseBase라는 기본 클래스를 통해 다양한 스파스 어텐션 알고리즘을 쉽게 통합할 수 있습니다. SparseKVManager는 사용자 정의 블록 할당을 처리하고, KVStoreBase는 스파스 알고리즘과 물리적 저장소(로컬 파일 시스템 또는 NFS 등)를 분리함으로써 GPU 메모리와 외부 저장소 간의 데이터 이동을 유연하게 제어할 수 있습니다.

대상 사용자

이 프로젝트는 vLLM을 포함한 LLM 추론 엔진에서 작업하는 개발자 및 연구자들을 위한 것입니다. 특히 다중 대화, 긴 컨텍스트 추론, 이종 컴퓨팅 리소스를 필요로 하는 시나리오에서 성능을 최적화하고자 하는 사용자에게 적합합니다.

주요 특징

  • 프리픽스 캐싱: 공통 프롬프트 프리픽스를 지속적으로 저장하고 재사용하여 중복 계산을 방지합니다.
  • 스파스 어텐션: 학습 없이도 사용 가능한 스파스 어텐션 검색 방법을 제공하여 극히 긴 시퀀스에서 성능을 향상시킵니다.
  • PD 비통합: 프리필-디코드(PD) 비통합 솔루션을 제공하여 이종 컴퓨팅 리소스를 더 효과적으로 관리합니다.
  • vLLM 통합: vLLM과 통합 시 추론 지연을 3~10배까지 감소시킵니다.
  • 유연한 스토리지: NFS 등 다양한 외부 스토리지 옵션을 지원하며, 다중 서버 환경에도 적합합니다.

관련

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