bytedance/InfiniStore

KV cache store for distributed LLM inference

InfiniStore – 대규모 언어 모델 추론을 위한 고성능 KV 저장소

무엇인가요

  • 대규모 언어 모델(LLM) 추론 클러스터의 성능을 가속화하기 위해 설계된 오픈소스 키-값(KV) 저장소입니다.
  • 두 가지 일반적인 배포 패턴을 고려하여 설계되었습니다:
    1. 프리필-디코딩 분리 클러스터 – 무거운 프리필 작업과 빠른 디코딩 작업을 별도의 노드에서 처리; InfiniStore는 프리필 노드와 디코딩 노드 사이에서 KV 캐시를 이동하고 재사용합니다.
    2. 비분리 클러스터 – 각 노드가 프리필과 디코딩 모두를 수행; 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 저장소로 사용 가능합니다.

일반적인 워크플로우

  1. 서버 시작 – 적절한 네트워크 플래그를 사용하여 머신(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
    
  2. 클라이언트 실행infinistore/example/에 동기 및 비동기 예제 제공.
  3. 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 스타일 체크 수행.
  • 코드, 문서, 기타 개선 기여 환영합니다.

더 알아보기


InfiniStore는 LLM 추론 스택에서 소규모이지만 핵심적인 요소로, 대규모 모델이 많은 요청을 효율적으로 처리할 수 있도록 고속·저지연 캐시 공유를 처리합니다.

관련

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