LMCache 소개
LLM(대규모 언어 모델)을 실제 환경에서 활용하려면 추론 속도와 리소스 효율성이 매우 중요합니다. 특히 RAG나 멀티턴 QA 같은 응답 지연이 치명적인 응용에서는 더욱 그렇습니다. 이런 문제를 해결하기 위해 등장한 LMCache는 재사용 가능한 텍스트의 KV 캐시를 GPU, CPU, 디스크에 저장하고 이를 다양한 LLM 서빙 인스턴스에서 효율적으로 공유할 수 있도록 합니다. LLM 성능을 실질적으로 향상시킬 수 있는 이 기술을 통해 개발자는 더 빠르고 경제적인 LLM 애플리케이션을 구축할 수 있습니다.
LMCache는 LLM 서빙에서의 효율성 문제를 해결하기 위한 캐시 프레임워크입니다. 특히 TTFT(Time-To-First-Token)를 줄이고, 전체 처리량을 높이는 데 중점을 둡니다. 기존의 LLM 서빙 구조에서는 이전 대화 맥락이나 재사용 가능한 텍스트를 효율적으로 저장하고 재활용하는 기능이 부족했기 때문에, 매번 불필요한 GPU 연산이 발생해 리소스 낭비가 발생했습니다.
LMCache는 이러한 한계를 해결하기 위해 KV(Key-Value) 캐시를 GPU 메모리뿐만 아니라 CPU DRAM, 로컬 디스크 등 다양한 저장소에 분산 저장할 수 있도록 설계되었습니다. 이렇게 저장된 캐시는 특정 인스턴스에 국한되지 않고 모든 서빙 인스턴스 간에 재활용될 수 있으며, 접두사와 무관하게 어떤 재사용 텍스트든 캐싱이 가능합니다.
vLLM과 통합된 구조에서는 3배에서 10배에 이르는 응답 시간 절감 및 GPU 사이클 절약 효과를 보여주며, 특히 멀티턴 QA, Retrieval-Augmented Generation(RAG) 환경에서 강력한 성능을 발휘합니다.
기존의 LLM 최적화 도구로는 Hugging Face의 Accelerate
, DeepSpeed, vLLM 자체의 텐서 캐싱 구조 등이 있습니다. 그러나 이들은 대부분 같은 인스턴스 내에서만 캐시를 유지하거나, 접두사 캐싱에만 초점이 맞춰져 있어 재사용 가능한 비접두사 문맥을 공유하지 못하는 한계가 있습니다.
LMCache는 비접두사 캐시까지도 다른 인스턴스와 공유 가능하도록 설계되어, 분산 환경에서의 캐시 활용을 극대화합니다. 이는 CPU나 디스크에 저장된 캐시까지도 다시 불러올 수 있기 때문에 기존 방법들보다 훨씬 범용적이고 확장성이 뛰어납니다.
LMCache의 주요 특징
- 비접두사 캐시 재사용 지원: 어떤 텍스트든 재사용 가능하며, 이를 통해 다양한 문맥에서도 효율적인 서빙이 가능합니다.
- 분산 캐시 저장소 구조: GPU, CPU, 디스크를 아우르는 계층적 캐시 저장소를 제공합니다.
- P2P 캐시 공유 기능: 여러 LLM 인스턴스 간에 캐시를 공유해 병렬화 및 확장성 증가.
- vLLM 통합: vLLM과 자연스럽게 통합되어 손쉬운 설치 및 활용 가능.
- 최신 서빙 최적화 기능: 캐시 압축, 스트리밍 서빙 등을 포함하여 LLM 서빙을 위한 다양한 기능 제공.
LMCache의 설치 및 사용법
LMCache는 LLM의 KV 캐시 구조에 후킹(hooking)하여, 토큰 추론 중 재사용 가능한 문맥을 탐지하고 해당 캐시를 저장소에 기록합니다. 이후 동일하거나 유사한 문맥이 나타나면 저장된 캐시를 불러와 GPU 연산 없이 바로 결과를 생성하게 됩니다.
설치 방법
LMCache는 pip를 통해 설치할 수 있으며, vLLM과 함께 도커 이미지로도 제공됩니다:
pip install lmcache
혹은 도커 가이드를 참고하여 vLLM과 함께 사용 가능합니다.
구성 요소
lmcache
: 파이썬 모듈로 KV 캐시 관리를 담당합니다.csrc
: C++로 작성된 성능 최적화 컴포넌트.docker
: 빠른 배포를 위한 도커 설정 파일.
라이선스
LMCache 프로젝트는 Apache License 2.0로 공개 및 배포 되고 있습니다. 상업적 이용에 특별한 제약은 없습니다.
LMCache 홈페이지
LMCache 프로젝트 GitHub 저장소
LMCache 공식 블로그
LMCache 공식 문서 사이트
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다.
파이토치 한국 사용자 모임
이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일
로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)
아래
쪽에 좋아요
를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~