LLM WikiAccess-protected knowledge portal

WIKI

KV 캐시 벡터 양자화와 주의 보존 변환: 쿼리가 보는 곳에 비트를 집중하는 방법

요약 LLM 디코딩 단계에서 처리량의 실질적 한계는 연산이 아니라 HBM 대역폭 이다. 새 토큰을 생성할 때마다 GPU는 이전 토큰 전체의 K·V 벡터를 메모리에서 읽어야 하는데, 이 읽기 시간이 어텐션 계산보다 길다. KV 캐시를 줄이면 동일한 HBM에서 더 큰 배치나 더 긴 컨텍스트를 처리할 수 있다. 2026년 8월 USC 연구팀이 공개한 arXiv 2608.04074 는 KV 캐시 압축을 왜곡 기준부터 다시 설정한다.

경로human/study/content/ai-frontier/152-kv-cache-vq-attention-preserving-transforms.md
카테고리Study
태그#ai-review #attention #cache #preserving #study #transforms

요약

LLM 디코딩 단계에서 처리량의 실질적 한계는 연산이 아니라 HBM 대역폭이다. 새 토큰을 생성할 때마다 GPU는 이전 토큰 전체의 K·V 벡터를 메모리에서 읽어야 하는데, 이 읽기 시간이 어텐션 계산보다 길다. KV 캐시를 줄이면 동일한 HBM에서 더 큰 배치나 더 긴 컨텍스트를 처리할 수 있다.

2026년 8월 USC 연구팀이 공개한 arXiv:2608.04074는 KV 캐시 압축을 왜곡 기준부터 다시 설정한다. 기존 양자화는 K·V 원소의 복원 오차를 최소화했지만, 이 논문은 왜곡을 어텐션 곱 오차로 정의하고 그로부터 닫힌 형식의 최적 선형 변환을 유도한다. "쿼리가 보는 곳에 비트를 쓴다"는 직관이 수식으로 구체화된 결과다.


KV 캐시가 왜 병목인가

트랜스포머 디코딩의 한 스텝을 살펴보면:

  1. 새 토큰의 Q 계산 → GPU 연산(행렬 곱)
  2. 이전 모든 토큰의 K·V를 HBM에서 로드 → 메모리 대역폭 소비
  3. QKᵀ 계산 후 softmax, A·V 집계 → GPU 연산
  4. 다음 레이어로 전달

2번이 병목이다. 시퀀스 길이가 S, 배치 크기가 B라면:

KV 캐시 크기 = 2 × L × H_kv × D_head × S × B × dtype_bytes

LLaMA-3 70B, BF16, S=32K, B=16이면 약 84 GB다. H100 80GB 한 장에는 들어가지 않는다. 배치 크기를 늘리거나 컨텍스트를 늘리려면 캐시를 줄이는 것이 필수다.

기존 대응책

방법핵심 아이디어한계
토큰 퇴출(eviction)중요도 낮은 토큰 K·V 삭제정보 손실, recall↓
스칼라 양자화FP8·INT4로 원소 저장저비트(2bit)에서 품질 급락
GQA/MLAK·V 헤드 수 자체 감소아키텍처 변경 필요
변환 코딩(이 논문)어텐션 기준 왜곡 최소화보정 데이터 필요

변환 코딩 프레임워크

정보 이론에서 변환 코딩은 신호를 변환한 뒤 변환 도메인에서 압축하는 기법이다. JPEG는 이미지를 DCT 도메인으로 바꾼 뒤 고주파 계수를 거칠게 양자화한다. 에너지가 집중된 저주파 계수는 정밀하게, 에너지가 적은 고주파 계수는 거칠게 코딩함으로써 같은 비트로 낮은 왜곡을 달성한다.

KV 캐시에 같은 원리를 적용하려면 두 가지가 필요하다.

  1. 알맞은 변환 T: K를 T·K로 변환해 관련 에너지를 소수 차원에 집중시킨다.
  2. 알맞은 왜곡 기준: 어텐션 계산에서 실제로 중요한 오차를 기준으로 한다.

왜 복원 오차가 틀린 기준인가

어텐션 메커니즘은 Q·Kᵀ/√d를 계산한 뒤 softmax를 취한다. K의 복원 오차 ||K̂-K||²가 작아도 어텐션 스코어 QK̂ᵀ가 크게 달라질 수 있고, 반대로 어텐션 스코어가 잘 보존되더라도 K 자체는 크게 달라질 수 있다. 어텐션 결과에 영향을 주는 것은 K 자체가 아니라 Q·Kᵀ다.

어텐션 보존 왜곡

논문은 왜곡을 다음과 같이 정의한다:

D_K = E[ ||Q·K̂ᵀ - Q·Kᵀ||² ]
D_V = E[ ||·V̂ - ·V||² ]

여기서 Â는 어텐션 가중치 행렬이다. 이 왜곡은 최종 어텐션 출력에 미치는 영향을 직접 측정한다.


최적 변환 유도

K에 선형 변환 T를 적용한 뒤 양자화한다: K̃ = T·K, K̂ = T⁻¹·Quant(K̃).

어텐션 왜곡은:

D_K = E[ ||Q·T⁻¹·Quant(T·K) - Q·K||² ]

이를 최소화하는 T는 Q의 공분산 행렬의 고유벡터로 구성된다. Q가 변동이 큰 방향으로 K를 정렬하면, 해당 방향의 K 정보가 어텐션에 더 큰 영향을 준다. 이 방향에 더 많은 비트를 할당하는 것이 최적이다.

구체적으로:

Σ_Q = E[QᵀQ]          (Q의 공분산 행렬, 보정 데이터로 계산)
T = Σ_Q^{1/2}          (또는 그 근사)

V에 대해서도 유사한 분석으로:

Σ_A = E[AᵀA]          (어텐션 가중치의 공분산)
T_V = Σ_A^{1/2}

두 변환 모두 소수의 보정 샘플(수천 토큰)로 사전 계산된다. 추론 중 추가 비용은 역변환 T⁻¹ 한 번뿐이다.

KV 캐시 변환 코딩: 쿼리가 보는 곳에 비트를 집중하는 방법 [ 오프라인 보정 단계 ] 배포 전 1회 실행 보정 데이터 수천 토큰 샘플 → Q·K·V 통계 Σ_Q, Σ_A 계산 Q·K 공분산 행렬 고유분해 T_K, T_V 저장 레이어별·헤드별 변환 행렬 + VQ 코드북 [ 온라인 추론 단계 ] 토큰 생성마다 원본 K · V BF16 / FP16 D=128 per head T_K 변환된 K̃ 에너지 집중 쿼리 방향으로 정렬됨 VQ 코드북 인덱스 2 bits/element 목표 HBM에 이 형태로 저장 역양자화 + T⁻¹ 복원된 K̂ 어텐션 계산에 사용 QK̂ᵀ ≈ QKᵀ 보장 어텐션 QK̂ᵀ/√d → softmax·V̂ 기존 방법과 비교 Hadamard 회전: 분산 균등화 → 어텐션 오차 무관 FP8 스칼라 QZ: 2× 절감, 2bit에서 품질 급락 이 논문: 어텐션 왜곡 최소화, VQ로 2bit 달성 목표 대역폭 효과 BF16(16bit) → 2bit: 8× 메모리 절감 동일 HBM에서 배치 크기 ↑ 또는 컨텍스트 길이 ↑ 디코딩 처리량 = f(대역폭 효율, 어텐션 충실도)
KV 캐시 변환 코딩 파이프라인

벡터 양자화가 스칼라 양자화보다 나은 이유

스칼라 양자화(SQ)는 K 벡터의 각 원소를 독립적으로 양자화한다. 2비트라면 4가지 값만 가능하다. 벡터 양자화(VQ)는 K 벡터 전체를 하나의 코드북 항목에 매핑한다.

Rate-Distortion 이론에 따르면, 원소들 사이에 상관관계가 있다면 VQ가 SQ보다 같은 비트율에서 낮은 왜곡을 달성한다. KV 캐시에서 채널들은 헤드 내에서 상관관계가 있고, 변환 후에는 에너지가 소수 차원에 더욱 집중된다.

현실적인 구현에서는 Product Quantization(PQ) 또는 Residual VQ(RVQ)를 사용한다:

- 저장 비용: M × log₂(코드북 크기) bits - 추론: M번의 코드북 룩업

변환 후 PQ를 적용하면 변환 전보다 더 낮은 왜곡을 얻는다. 에너지가 집중된 첫 번째 서브벡터가 어텐션에서 가장 중요한 차원을 담고, 코드북이 이 분포에 맞게 학습되기 때문이다.


기존 방법 비교

Hadamard 회전 (QuaRot, SpinQuant)

W의 양자화를 위해 Hadamard 행렬 H로 가중치를 회전시킨다: W' = H·W. H는 분산을 균등화하므로 특이치(outlier)를 줄이는 효과가 있다. 그러나 H는 데이터에 무관하게 고정되어 있고, Q·Kᵀ 오차를 최소화하는 방향이 아니다. 이 논문의 T는 Q의 공분산으로부터 유도된 데이터 의존적 변환이다.

FP8 KV 캐시

vLLM의 현재 기본값. BF16 대비 2× 절감. 8비트이므로 정밀도 손실이 적고 구현이 단순하다. 이 논문이 목표하는 2bit는 8× 절감이지만 FP8보다 낮은 정밀도 → 어텐션 보존 변환 없이는 품질이 크게 떨어진다.

MLA (DeepSeek)

아키텍처 수준에서 KV 헤드를 저랭크 잠재 벡터로 압축. 효과적이나 사전 학습 시 도입해야 한다. 이 논문의 방법은 사전 학습된 모델에 사후 적용 가능하다.


운영 관점 체크리스트

도입 판단

조건판단
컨텍스트 길이 ≥ 32K, 배치 디코딩 처리량 병목효과 기대
단기 요청 위주 (< 4K tokens)캐시 압축 이득 낮음
이미 GQA/MLA 모델 사용KV 헤드 수가 적어 상대적 이득 감소
도메인 외 추론 (OOD)보정 품질 저하 가능

배포 시 주의사항

모니터링 지표

gpu_kv_cache_usage_perc  → KV 캐시 압력 확인
num_preempted_reqs       → 캐시 부족으로 선점된 요청 수
attention_accuracy_delta → 압축 전후 어텐션 출력 비교 (벤치마크용)

Open questions

References