Qwen3.8 27B 모델에서 KV 캐시 양자화가 KL 발산에 미치는 영향 측정 결과
Effects of KV Cache Quantization on Qwen3.8 27B
Reddit r/LocalLLaMA의 한 작성자가 Qwen3.8 27B 모델을 대상으로 35개 가중치 양자화 버전을 llama.cpp, exllamav3, vLLM에서 테스트해 KV 캐시 양자화의 영향을 KL 발산으로 측정했다. 8비트 KV 캐시는 llama.cpp와 ExLlamaV3에서 캐시 크기를 절반으로 줄이면서 KL 차이가 거의 없었고, 4비트 캐시는 측정 가능한 손실을 보였다. 테스트는 16비트, 8비트, 지원되는 경우 4비트 KV 캐시를 각 가중치 양자화에 적용하는 방식으로 진행됐다. 데이터셋에는 Qwen3.8 27B가 전정밀도로 생성한 에이전트 도구 사용 예시와 여러 도메인의 텍스트가 섞였으며, 행당 최대 64k 토큰 컨텍스트까지 포함했다. 4비트 캐시의 KL 증가분은 16~32k 토큰 구간에서 처음 4k 토큰 대비 약 15~30% 높았다. 2.00 GiB에서 4.00 GiB 사이로 나타난 64k 컨텍스트 기준 캐시 크기는 f16/bf16 64 KiB, 8비트 34 KiB(llama.cpp q8_0), 4비트 18 KiB(llama.cpp q4_0) 등으로 정리됐다. 기사에 따르면 vLLM 체크포인트는 같은 크기의 GGUF나 EXL3 양자화보다 여전히 성능이 낮았다. NVIDIA NVFP4 체크포인트는 활성값을 bf16으로 유지하는 Marlin 커널로 다시 돌렸을 때 KL이 0.0256에서 0.0117로 줄었고, Qwen FP8은 0.0039에서 0.0028로 낮아졌다. vLLM의 FP8 캐시는 모든 체크포인트에서 KL을 0.0004~0.0006 높였으며, 글쓴이는 이것이 FlashAttention에서 FlashInfer 백엔드로 바뀌는 과정과 관련 있을 수 있다고 추정했다.
llama.cpp의 q8_0이나 ExLlamaV3 8비트 캐시를 쓰면 64k 컨텍스트에서 KV 캐시가 4.00 GiB에서 2.13 GiB로 줄어 VRAM 부족 환경에서 긴 컨텍스트를 다루는 선택지가 된다.
원문 출처
r/LocalLLaMA