KV cache量子化でGemma 4が先に崩れる理由 LocalLLaMAが注目
Original: Gemma 4 and Qwen 3.6 with q8_0 and q4_0 KV cache: KL divergence results View original →
「q8_0ならほぼ無傷」という前提が揺れた
r/LocalLLaMAでこの投稿が伸びた理由は、単なる比較表ではない。多くのローカル推論ユーザーが半ば常識として扱っていた「q8_0 KV cacheは実質無損失に近い」という感覚を、数字で揺らしたからだ。リンク先のLocalBench記事は、Gemma 4とQwen 3.6でその前提が全く同じようには成立しないことを示した。
設定も分かりやすい。同じBF16 GGUFを同一マシンで3回ロードし、f16、q8_0、q4_0のKV cacheだけを変えている。評価は約250,000 tokens、6カテゴリ、top-40 log-probability分布のKL divergenceで行われた。記事によれば、q8_0はcacheメモリを半分に、q4_0は4分の1にする。その代償がモデルごとに大きく違った。Gemma 31Bはq8_0でKL 0.108、Gemma 4 26B A4Bはq8_0で 0.377、q4_0では 1.088まで上がる。一方でQwen 3.6系はq8_0で両方とも 0.04未満、q4_0でも 0.087-0.117に収まった。
コミュニティがすぐ掘った論点
上位コメントは結果をそのまま受け取るだけではなかった。最も支持された反応は、Gemma側の劣化がSWA cacheを量子化し続けた設計判断と関係しているのではないかと推測し、実タスクでどれほど効くのかを知りたいと書いた。別の読者は、30k前後のcontextでこうなら100k、200kではどうなるのかと問い、さらにtoken全体を測ったのかassistant turnだけを見たのかという方法論にも踏み込んだ。Gemmaはassistant turn外で分布がかなり荒れるという体感も共有されている。つまりこの投稿は、cache量子化を「何となく大丈夫」から「条件付きで評価すべき対象」へ変えた。
なぜ重要か
ローカルLLM運用では、cache precisionとcontext lengthをモデル横断の汎用ノブとして扱いがちだ。このベンチマークはそれにブレーキをかける。同じq8_0でも、あるモデルでは軽微な差で済み、別のモデルではかなり早く品質が崩れる。しかも損傷の出方はlong documentやtool callingなどカテゴリごとにも違う。結局、ローカル推論最適化は「ひたすら精度を下げる」話ではなく、モデルごとの感受性と実際のworkloadを合わせて見る作業だ。LocalLLaMAがこの投稿を高く評価したのは、その現実をきれいに数値化したからである。
出典: LocalBench原文 · r/LocalLLaMAスレッド
Related Articles
r/LocalLLaMAでは、llama.cpp PR #21038 のマージが素早く共有され、Hadamardベースの回転で Q、K、V を処理する方式が TurboQuant 系の利得をより低い摩擦で持ち込めると受け止められている。要点は、新しい quantization format を増やさず既存スタックに乗ることだ。
LocalLLaMAで話題になったattn-rotは、Hadamard rotationでQ、K、Vを回転させてKV cache quantizationの品質を改善しようとするllama.cpp PRだ。新しいformatを作らずにperplexityを大きく下げられる可能性が注目されている。
LocalLLaMAが反応したのは単なる数値比較ではなかった。多くのローカル推論ユーザーが事実上の常識として使っていたルールを崩し、とくにGemma系でモデル差が大きいことを示したからだ。2026年4月25日時点でスレッドは324ポイント、58コメントだった。
Comments (0)
No comments yet. Be the first to comment!