0xSero/turboquant

TurboQuant: Near-optimal KV cache quantization for LLM inference (3-bit keys, 2-bit values) with Triton kernels + vLLM integration

무엇을 해결하는가

TurboQuant는 LLM 추론 중 Key-Value (KV) 캐시의 높은 메모리 오버헤드를 해결하며, 이는 종종 최대 컨텍스트 길이와 GPU가 처리할 수 있는 동시 요청 수를 제한합니다. 모델 품질을 크게 희생하지 않으면서 VRAM을 확보하기 위해 KV 캐시를 압축하는 방법을 제공합니다.

작동 방식

TurboQuant는 KV 캐시 항목을 압축하기 위해 다음과 같은 기술들을 조합하여 사용합니다:

  • Random Orthogonal Rotation: 정보를 여러 차원에 분산시켜 양자화 효율을 높입니다.
  • Lloyd-Max Scalar Quantization: 회전된 값에 최적의 스칼라 양자화를 적용합니다.
  • QJL Projection: 각 차원의 잔차 부호 비트를 처리합니다.
  • Group Quantization: 그룹별 스케일 및 제로 값을 사용하여 값을 압축합니다 (2-bit 또는 4-bit 지원).
  • Bit-packing: 저장 효율을 극대화하기 위해 여러 값을 단일 바이트에 패킹합니다.

이 기술은 vLLM과 통합되어 있으며, 디코드 어텐션(decode attention)을 위한 융합된 Triton 커널을 포함하여 추정된 내적(inner product)이 편향되지 않도록 보장합니다.

대상 사용자

컨텍스트 창을 확장하거나 VRAM이 제한된 하드웨어(예: RTX 3090/5090 GPU)에서 처리량을 높여야 하는 대규모 언어 모델(LLM) 개발자 및 연구자.

주요 특징

  • 상당한 VRAM 절감: 순수 밀집 트랜스포머(dense transformers)에서 최대 4.4배 압축을 달성할 수 있어 상당한 GPU 메모리를 확보할 수 있습니다 (예: 4-GPU 설정에서 Qwen3.5-27B의 경우 30 GB).
  • 컨텍스트 확장: 최대 토큰 용량을 증가시킵니다 (예: ~457k에서 ~914k 토큰으로).
  • 손실이 거의 없는 Key 압축: 3-bit 및 4-bit Key 압축은 거의 완벽한 코사인 유사도를 유지합니다.
  • vLLM 통합: vLLM 0.18.0을 위한 monkey-patch 어댑터를 포함합니다.
  • 이론적 검증: 논문의 MSE 왜곡 경계 및 편향되지 않음(unbiasedness) 주장을 검증하는 테스트를 포함합니다.

관련

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