KV 캐시 양자화 벤치마크 결과: TurboQuant는 과대평가되었지만 TCQ는 쓸만함, q5는 더 주목받아야 하고 대칭형 q8은 VRAM 낭비일지도 모름
Here are my KV cache quantization benchmarks: TurboQuant is overrated but saved by TCQ, q5 deserves more attention, and symmetric q8 might be a waste of VRAM
핵심 요약
KV 캐시 양자화 벤치마크를 통해 TurboQuant의 한계와 TCQ의 유용성, 그리고 효율적인 양자화 전략을 분석함.
- PPL과 KLD 비교 — PPL은 양자화 손실을 숨기지만 KLD는 꼬리 부분의 손실을 명확히 보여줌.
- TurboQuant의 한계 — 4비트 환경에서 TurboQuant는 일반 q4_0 대비 성능 이점이 없고 오히려 느림.
- TCQ의 효용성 — TCQ는 낮은 비트 환경에서 압축 효율을 높여주는 유효한 해결책임.
- 효율적인 양자화 전략 — K 캐시는 양자화에 민감하므로 K는 높게, V는 낮게 설정하는 것이 VRAM 절약에 효과적임.
한때 TurboQuant의 가장 열렬한 옹호자였던 사람이, 이제는 중간 정도의 틈새 지식을 갖춘 TurboQuant 옹호자가 되어 인사드립니다. 오늘은 제 RTX 3090을 사용하여 BeeLlama v0.1.2로 PPL 및 KLD 벤치마크 세계를 철저히 탐구한 결과를 발표합니다. 다른 테스트를 시도하다 실패한 배경 이야기와, 이를 보완하기 위해 PPL과 KLD를 더욱 철저히 재탐구한 내용도 포함되어 있습니다.
테스트는 64k 및 128k 컨텍스트에서 Qwen 3.6 27B(Q5_K_S 및 IQ4_XS) 모델로 진행되었습니다. 즉, 24GB VRAM을 사용하는 우리 같은 사람들이 실제로 사용하는 괜찮은 모델과 괜찮은 양자화, 괜찮은 컨텍스트 길이로 설정했습니다. vLLM 연구를 비판하려는 건 아니지만, 제게는 마치 '이미 100만 달러가 있는 사람이 어떻게 투자해서 부자가 되는지' 알려주는 책처럼 보였습니다. 일반적인 4비트 및 5비트 양자화가 비교에서 빠져 있었거든요.
제 발견은 다음과 같습니다:
- PPL은 꼬리를 숨기지만, KLD는 드러냅니다.
q4_0까지는 전체 PPL 범위가bf16대비 0.01 미만으로 유지됩니다. 심지어turbo3_tcq조차 PPL을 약 0.02 정도만 추가합니다. 하지만 99.9% KL 발산(KL divergence)은 다른 이야기를 합니다.q5_0(bf16의 34.4%)은 분명q8_0보다 뒤처지지만 여전히 나쁘지 않습니다. 하지만q4_0의 꼬리 KLD는q5_0보다 32% 더 나쁩니다. 바로 이것이 여러분의 툴 호출과 JSON 구조를 망가뜨리는 주범입니다. - 회전이 4비트에서 격차를 줄였습니다. llama.cpp는 이미 양자화 전에 KV 벡터에 무작위 회전을 적용하는데, 이는 TurboQuant가 사용하는 기본 트릭과 같습니다. 4비트에서
turbo4는q4_0대비 품질 이점이 없고, 메모리 절약도 거의 안 되며, 17% 더 느립니다. TurboQuant의 가치는 대안이 없는 2-3비트에서 나옵니다. - TCQ가 저사양을 구원합니다.
turbo3_tcq는 일반turbo3보다 일관되게 훨씬 좋으며,turbo2_tcq는turbo2보다 훨씬 좋습니다. 이들은 공격적인 압축이 필요한 경우에 유효한 해결책입니다. TCQ가 무엇인지 궁금하실 텐데, 다행히 기사 c
모든 데이터와 상세한 분석이 담긴 기사는 여기 있습니다:
https://anbeeld.com/articles/kv-cache-quantization-benchmarks-for-long-context

