bytedance/InfiniStore
KV cache store for distributed LLM inference
InfiniStore – 대규모 언어 모델 추론을 위한 고성능 KV 저장소
무엇인가요
- 대규모 언어 모델(LLM) 추론 클러스터의 성능을 가속화하기 위해 설계된 오픈소스 키-값(KV) 저장소입니다.
- 두 가지 일반적인 배포 패턴을 고려하여 설계되었습니다:
- 프리필-디코딩 분리 클러스터 – 무거운 프리필 작업과 빠른 디코딩 작업을 별도의 노드에서 처리; InfiniStore는 프리필 노드와 디코딩 노드 사이에서 KV 캐시를 이동하고 재사용합니다.
- 비분리 클러스터 – 각 노드가 프리필과 디코딩 모두를 수행; InfiniStore는 GPU 및 CPU 캐시와 함께 공유되는 대용량 KV 캐시 풀로 작동합니다.
- 오늘날 vLLM 추론 엔진과 LMCache 통합을 통해 작동 가능; SGLang 및 기타 엔진 지원은 진행 중입니다.
왜 중요한가요
- LLM 추론은 중간 어텐션 키/값을 저장하는 KV 캐시에 의존합니다. 이 캐시를 장치 내부에 유지하는 것은 빠르지만 GPU 메모리 제한이 있습니다. InfiniStore를 사용하면 캐시를 노드 간에 스필, 전송, 재사용할 수 있어, 많은 요청에 스케일링할 때 GPU 메모리 부담과 지연을 줄일 수 있습니다.
- 저지연 네트워크 경로(TCP, RoCE, InfiniBand)를 제공하며 GPU가 있는 기계 또는 CPU 전용 기계 모두에서 실행 가능합니다.
주요 기능
| 기능 | 기능 설명 |
|---|---|
| KV 캐시 전송 | 프리필 노드에서 디코딩 노드로 캐시된 어텐션 데이터를 이동하여 디코딩 단계를 즉시 시작할 수 있습니다. |
| KV 캐시 재사용 | 이후 요청이 이전에 저장된 캐시를 재사용(예: 반복되는 프롬프트)하여 계산 시간을 단축합니다. |
| 노드 간 캐시 풀 | 모든 노드가 읽고 쓸 수 있는 중앙 집중식 대용량 캐시로, 단일 GPU 메모리보다 확장된 효과적인 캐시를 제공합니다. |
| 네트워크 유연성 | 일반적인 TCP/IP 외에도 고성능 RDMA(RoCE 또는 InfiniBand)를 지원하여 마이크로초 미만의 지연을 구현합니다. |
| 스탠드얼론 모드 | vLLM 외에도 다른 LLM 트레이닝 또는 추론 서비스용 일반적인 KV 저장소로 사용 가능합니다. |
일반적인 워크플로우
- 서버 시작 – 적절한 네트워크 플래그를 사용하여 머신(GPU 또는 CPU)에서 실행, 예:
infinistore --service-port 12345 # TCP infinistore --service-port 12345 --dev-name mlx5_0 --link-type Ethernet # RoCE infinistore --service-port 12345 --dev-name mlx5_0 --link-type IB # InfiniBand - 클라이언트 실행 –
infinistore/example/에 동기 및 비동기 예제 제공. - vLLM 클러스터에서는 각 노드에 vLLM, LMCache, InfiniStore 설치; 추론 엔진은 자동으로 InfiniStore를 호출하여 KV 캐시를 가져오거나 저장합니다.
설치
- 빠른 설치 (대부분의 사용자):
pip install infinistore - 소스에서 설치 (기여자 또는 커스텀 빌드용):
apt install libuv1-dev libflatbuffers-dev libspdlog-dev libfmt-dev \ ibverbs-utils libibverbs-dev libboost-dev libboost-stacktrace-dev pip install --no-build-isolation -e . pip install pre-commit && pre-commit install - 검증:
infinistore --manage-port 8088 curl http://127.0.0.1:8088/selftest
기여 방법
- 테스트 스위트 실행:
pytest infinistore/test_infinistore.py. - PR 제출 전 pre-commit 스타일 체크 수행.
- 코드, 문서, 기타 개선 기여 환영합니다.
더 알아보기
- 문서 사이트: https://bytedance.github.io/InfiniStore/
- Slack 커뮤니티 (README에 초대 링크 있음).
- GitHub에서 소스 코드 및 이슈 추적.
InfiniStore는 LLM 추론 스택에서 소규모이지만 핵심적인 요소로, 대규모 모델이 많은 요청을 효율적으로 처리할 수 있도록 고속·저지연 캐시 공유를 처리합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트