Redditが注目したllama.cppのattn-rot、KV cache量子化の品質改善は現実味を帯びるか

今週の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 は未対応で、rotation を無効化する 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を押し付けず portability を保ったまま KV cache quantization を改善できれば、desktop と edge deployment の両方にすぐ効いてくる。だからこそ LocalLLaMA の盛り上がりには理由がある。こうした低レベルの inference 改善は headline にはなりにくいが、実際にはローカルで動かせる範囲を静かに広げていく。

Reddit thread

llama.cpp PR #21038