Reddit가 주목한 llama.cpp의 attn-rot, KV cache quantization 품질을 싸게 끌어올릴까

이번 주 LocalLLaMA에서 가장 기술적인 반응을 끌어낸 글 가운데 하나는 attn-rot였다. Reddit 글은 benchmark table을 요약해 보여주지만, 핵심 내용은 ggerganov가 올린 llama.cpp PR #21038에 있다. 목표는 단순하다. activation rotation을 사용해 quantization 시 outlier를 줄이고, KV cache quality를 끌어올리자는 것이다.

PR 설명에 따르면 구현은 비교적 직선적이다. Q, K, V를 normalized Hadamard transform으로 회전시킨 뒤 cache에 저장하고, 회전된 공간에서 attention을 수행한 다음 output을 다시 돌린다. dot product가 보존되기 때문에 attention 계산은 유지되면서 quantization에는 더 유리한 분포를 만들 수 있다는 논리다. PR은 backend-agnostic 구현이며 새로운 type을 추가하지 않고 기존 quantization format과 호환된다고 설명한다. 2026년 4월 1일 기준 PR 상태는 아직 open이고, MLA는 지원되지 않으며, 회전을 끄는 LLAMA_ATTN_ROT_DISABLE 환경변수도 추가돼 있다.

정말 흥미로운 부분은 low-precision에서 quality 회복 폭이다. PR benchmark에서는 Qwen3 0.6B의 q5_1 KV cache perplexity가 61.6992에서 14.1452로, q4_1은 212.479에서 22.2816로 내려간다. 더 큰 model에서는 개선 폭이 완만하지만 방향성은 여전히 긍정적이다. Reddit 글은 여기에 KLD와 tokens/sec 수치도 함께 제시하며, throughput band를 크게 망가뜨리지 않으면서 quality를 올릴 수 있다는 점을 강조했다. 이어진 GitHub comment에서 ggerganov는 Qwen3.5 같은 hybrid model이나 더 큰 context에서 relative overhead가 더 작다고 설명했고, 자신의 판단으로는 merge해도 좋을 수준이라고 적었다.

이 변화가 중요한 이유는 llama.cpp가 local inference의 중심에 있기 때문이다. 새로운 format을 강요하지 않으면서 portable하게 KV cache quantization 품질을 높일 수 있다면, desktop과 edge deployment 모두에 즉시 영향을 준다. 그래서 LocalLLaMA의 반응은 과장이 아니다. 이런 저수준 inference 개선은 headline보다 조용하지만, 실제로는 로컬에서 무엇을 돌릴 수 있는지의 경계를 넓힌다.

Reddit thread

llama.cpp PR #21038