「q8_0ならほぼ無損失」を崩したKVキャッシュ検証、LocalLLaMAの反応

なぜRedditで意味のある投稿になったのか

この投稿が刺さった理由は、ローカルLLM界隈で半ば常識のように繰り返されてきた言い回しに正面から切り込んだからだ。q8_0 KV cacheは実質無損失、という言い方である。Localbenchの投稿はこれを感覚論ではなくデータに置き換えた。だからLocalLLaMAでも「また一枚グラフが増えた」では終わらず、「メモリ節約の基本設定を見直す必要があるかもしれない」という反応になった。クロール時点でスレッドは 324ポイント、58コメント。方法論寄りの投稿としてはかなり強い反応だ。

測定方法が分かりやすい

説得力を持ったのは実験設計が素直だからだ。同じ BF16 GGUF を同じマシンで三回読み込み、変えるのはKV cache精度だけで f16、q8_0、q4_0。データセットは約 25万トークン で、コーディング、一般チャット、tool calling、science、非ラテン文字、長文の六分類。指標はf16 cache基準に対する token-by-token のKL divergenceだ。さらに、llama.cppに入ったTurboQuant系attention rotationが有効な状態だと明記している。つまり古いベースラインではなく、実際の現行ローカル環境に近い条件で見ようとしている。

どこで差が大きかったか

いちばん目立つのはGemma側だ。投稿では Gemma 31B のq8_0 cacheが KL 0.108、Gemma 4 26B A4B が 0.377。q4_0では後者が KL 1.088、68.0% top-1 まで悪化するとされる。一方Qwenはかなり安定しており、テストした二つのQwenモデルはq8_0でいずれも KL 0.04未満、q4_0でも全体として 0.087〜0.117 の帯に収まるという。長文カテゴリでは悪化が目立つが、それでも「どのモデルでもq8_0はほぼ無料」という単一ルールが通用しないことは十分に示している。モデル構造とcache感度が一緒に効いてくるということだ。

コメント欄が加えた論点

コメントも質が高かった。上位コメントの一つは、Gemmaの劣化はSWA cacheを引き続き量子化している判断と関係しているのではないかと推測し、その部分だけ高精度に保ったらどうなるかを気にしていた。別のコメントは、llama.cppのattention rotation実装の来歴について補足し、単純な由来話ではなく、より長い実装議論の流れを見るべきだと指摘していた。ここがLocalLLaMAらしい。ベンチマークを結論ではなく、実装理解の入口として使う。だからこの投稿は単なるグラフ集ではなく、VRAMと品質の妥協点を探している人にそのまま役立つ運用メモになっている。

出典: Localbench benchmark post · Reddit議論