TurboQuant — 극좌표 압축과 JL 변환으로 LLM KV 캐시를 쥐어짜는 법

PolarQuant 벡터 회전 압축과 Johnson-Lindenstrauss 잔차 보정을 결합해 LLM KV 캐시 메모리를 6배 절감하는 TurboQuant의 2단계 압축 아키텍처

2026-08-14 · 최초 발행 2026-05-01

Google Research가 2026년 3월 24일 발표하고 ICLR 2026에 채택된 TurboQuant는 PolarQuant 벡터 회전 압축과 양자화된 Johnson-Lindenstrauss(QJL) 변환을 결합하여 LLM의 KV 캐시 런타임 메모리를 최소 6배 절감하는 2단계 압축 알고리즘이다. Gemma와 Mistral 모델을 대상으로 LongBench, Needle In A Haystack, RULER 등 장문 컨텍스트 벤치마크에서 성능 저하 없이 압축을 달성했으며, H100 GPU에서 4비트 적용 시 32비트 대비 최대 8배 런타임 성능 향상을 기록했다. 재학습이나 파인튜닝 없이 추론 시점에 적용 가능한 플러그인 방식이라는 점에서 실무 배포 관점에서 즉각적인 활용 가치를 갖는다.

KV 캐시가 GPU 메모리를 잡아먹는 이유

LLM 추론에서 KV 캐시(Key-Value Cache)는 이전 토큰들의 어텐션 키와 값을 저장하여 자기회귀적 생성 과정에서 반복 계산을 방지하는 핵심 구조다. 그러나 이 캐시는 컨텍스트 길이와 배치 크기에 비례하여 메모리를 소비한다. 128K 토큰 컨텍스트를 처리하는 70B 파라미터 모델에서 KV 캐시는 수십 GB에 달해 고사양 GPU 메모리의 상당 부분을 차지한다. 이는 추론 처리량(throughput), 배치 병렬 처리 규모, 그리고 엣지·모바일 배포 가능성을 근본적으로 제약하는 병목이다.

32비트 비압축TurboQuant 적용개선반복LLM 추론 요청프리필 단계 (Prefill)KV 캐시 생성 저장메모리 용량 충분?GPU VRAM 병목 발생배치 크기 축소처리량 저하(1) PolarQuant 압축극좌표 변환 + 각도 양자화(2) QJL 잔차 보정3~4비트 압축 KV 캐시6x 메모리 절감디코드 단계 (Decode)다음 토큰 생성

극좌표로 접고, JL 변환으로 보정한다

TurboQuant의 첫 번째 단계인 PolarQuant는 KV 캐시 벡터를 데카르트 좌표계에서 극좌표계로 변환하여 압축한다. d차원 벡터에서 좌표 쌍을 그룹으로 묶어 각 쌍을 2차원 극좌표(반지름 r, 각도 θ)로 변환한다. 변환된 반지름 값들은 재귀적 극좌표 변환을 반복 적용하여 점진적으로 압축된다. 이 과정이 반복되면 최종적으로 하나의 스칼라 반지름과 복수의 각도 집합으로 전체 벡터를 표현할 수 있다. 각도는 원소 값의 범위가 제한적이므로(0~2π) 저비트 양자화에 유리하며, 이를 통해 원본 벡터를 극히 압축된 형태로 인코딩한다.

PolarQuant의 핵심 직관은 고차원 벡터의 정보가 절대적인 크기(반지름)보다 방향(각도)에 더 풍부하게 담겨 있다는 관찰에 기반한다. 어텐션 메커니즘에서 내적(dot product) 연산은 두 벡터 사이의 코사인 유사도에 스케일 인수를 곱한 값이므로, 방향 정보 보존이 특히 중요하다.

PolarQuant 압축 이후 발생하는 잔차 오차를 보정하기 위해 TurboQuant는 양자화된 Johnson-Lindenstrauss(QJL) 변환을 적용한다. Johnson-Lindenstrauss 보조 정리(JL Lemma)는 고차원 공간의 점들을 저차원 공간으로 투영하더라도 점들 사이의 거리 관계가 근사적으로 보존됨을 수학적으로 보장한다. 구체적으로, n개의 점으로 구성된 집합을 O(log n / ε²) 차원으로 투영하면 임의의 두 점 사이의 거리가 (1±ε) 인수 내에서 유지된다.

QJL에서는 이 무작위 투영 행렬의 각 원소를 단순한 부호 비트(+1 또는 -1)로 표현한다. 이렇게 하면 행렬-벡터 곱 연산이 덧셈과 뺄셈만으로 계산 가능하여 연산 효율성이 극대화된다. 결과적으로 KV 벡터는 PolarQuant의 극좌표 표현과 QJL의 부호 비트 잔차로 구성된 극도로 압축된 표현으로 저장된다.

원본 KV 벡터 (32비트)PolarQuant 단계좌표 쌍별 극좌표 변환재귀적 반지름 압축각도 저비트 양자화압축 극좌표 표현QJL 단계랜덤 투영 행렬 (부호 비트 ±1)고차원 저차원 투영거리 관계 보존 (JL 보조 정리)QJL 잔차 보정 표현최종 3~4비트 압축 KV 캐시6x 메모리 절감 달성

다른 KV 캐시 압축 기법과 어떻게 다른가

KV 캐시 양자화는 32비트 부동소수점을 4비트 또는 8비트 정수로 변환하여 메모리를 절감한다. INT8 양자화는 성능 저하 없이 2배 압축을 달성하며 구현이 간단하다. INT4 양자화는 4배 압축이 가능하지만 정밀도 손실로 인한 성능 저하가 발생할 수 있다. TurboQuant는 3비트 수준까지 압축하면서도 정확도 손실이 없어 기존 양자화 기법의 한계를 넘어선다.

희소화(Sparsification) 기반 접근은 어텐션 패턴의 희소성을 활용하여 중요도가 낮은 KV 쌍을 제거하는 방식이다. StreamingLLM, SnapKV, PyramidKV 등이 대표적이다. 이 방식은 특정 어텐션 패턴 가정에 의존하므로 태스크와 모델에 따라 효과가 달라질 수 있다.

압축(Compression) 기반 접근은 저랭크 근사(Low-Rank Approximation)나 군집화(Clustering)를 통해 KV 벡터의 차원을 줄이는 방식이다. 오프라인 분석을 통해 압축 행렬을 학습해야 하는 경우가 많아 재학습 비용이 발생한다.

오프로딩(Offloading) 기반 접근은 GPU VRAM이 부족할 때 KV 캐시를 CPU 메모리나 NVMe SSD로 이동하는 방식이다. 추가 하드웨어 비용 없이 용량 문제를 해결하지만 PCIe 대역폭 병목으로 인한 지연 시간 증가가 단점이다.

정밀도를 얼마나 낮출 수 있는가

TurboQuant의 3비트 압축은 LongBench, Needle In A Haystack, ZeroSCROLLS, RULER, L-Eval 등 장문 컨텍스트 벤치마크 전반에서 32비트 비압축 기준(baseline)과 동등한 성능을 기록했다. 이는 KV 벡터의 정보를 보존하는 데 3비트가 충분함을 의미하며, PolarQuant의 방향 정보 우선 인코딩과 QJL의 거리 보존 보정이 함께 기여한 결과다.

4비트 TurboQuant는 H100 GPU에서 32비트 비압축 대비 최대 8배의 런타임 성능 향상을 달성했다. 이는 메모리 절감에 따른 배치 크기 확대와 메모리 대역폭 효율 향상이 복합적으로 작용한 결과다.

서버부터 서버리스까지, 배포 환경별 영향

데이터센터 추론 서버에서 TurboQuant는 동일한 GPU 메모리로 더 큰 배치 크기를 처리할 수 있게 하여 처리량(throughput)을 직접적으로 높인다. 128K 토큰 장문 컨텍스트 처리 시 KV 캐시가 GPU 메모리의 주요 병목이었던 환경에서 특히 효과적이다.

KV 캐시 메모리 6배 절감은 이전에는 불가능했던 배포 시나리오를 가능하게 한다. 모바일 기기(LPDDR 메모리 제약)나 엣지 추론 장치에서 더 긴 컨텍스트를 처리하거나 더 큰 모델을 실행할 수 있게 된다.

서버리스 LLM 추론 서비스에서는 메모리 사용량이 직접적인 과금 기준이 된다. TurboQuant 적용 시 KV 캐시 메모리 비용이 6분의 1로 감소하여 서버리스 추론의 경제적 실행 가능성을 크게 높인다.

TurboQuant 실무 적용시나리오서버 배포엣지·모바일서버리스 추론배치 크기 6배 확대H100 기준 8x 처리량 향상128K 컨텍스트 대규모 서빙가능모바일 LPDDR 제약 해소 모델 로컬 실행장문 컨텍스트 엣지 처리메모리 과금 6분의 1 절감Cold Start 시간 단축다중 테넌트 밀도 향상

Google Research의 TurboQuant는 PolarQuant의 극좌표 기반 방향 정보 보존 압축과 Johnson-Lindenstrauss 거리 보존 잔차 보정을 2단계로 결합하여, 재학습 없이 LLM KV 캐시를 3비트 수준으로 압축하면서 성능 저하 없이 6배 이상의 메모리 절감을 달성했다. 이 기법은 서버, 엣지, 모바일, 서버리스 등 다양한 배포 환경에서 LLM 추론의 경제성과 접근성을 근본적으로 개선한다.

Sources

TurboQuantKV 캐시 압축PolarQuantLLM 추론 최적화양자화