TurboQuant は Gemma 4 で非常にうまく機能しているようだ——さらに別途、レイヤーごとの外れ値対応 K 量子化が Qwen の PPL における現行の公開フォーク結果を上回っている

Reddit r/LocalLLaMA / 2026/4/5

💬 オピニオン

要点

  • 著者は、Apple M4 Pro 上での llama.cpp(CPU + Metal)における Gemma 4 26B A4B-it の TurboQuant KV-cache 量子化で強い結果が得られたと報告しており、K チャネルあたり約 3.1 ビットで精度損失がほぼゼロであること、また有意なロングコンテキスト時の高速化が見られたことを指摘している。

私は現在、Apple M4 Pro 48GB上で、Gemma 4 26B A4B-it Q4_K_Mに対して、llama.cpp(CPU + Metal)でTurboQuant KVキャッシュの量子化をいろいろ試しており、その結果は驚くほど強力に見えます。

Gemma 4の知見

Gemma 4ではQJLがうまく機能しているようで、構造化された回転の代替としてのFWHTも、大きい注意ヘッドに対して(dk=256/512)良い適合に見えます。

私のベンチマーク結果:

  • tq3j/q4_0: 品質テストで37/37、NIAHで8/8
  • tq2j/q4_0: 36/37で、唯一の取りこぼしは空応答
  • 131Kコンテキストでq4_0/q4_0より+34%高速
  • TurboQuantは4Kコンテキスト以降でq4_0を上回る

この構成では、約3.1 bits per Kチャネルで、意味のある長コンテキストの速度向上を伴いながら、精度損失がほぼゼロに近づきます。

また興味深いのは、これまで私が見てきた公開されているGemma 4のフォーク結果よりも良く見える点です。リンク先の512-d Gemma 4実験では、512-WHT + グローバルノルムが31/65に到達している一方で、TBQP3 512 + QJLのバリアントは23〜28/65あたりに着地しています。これは、上記のMetal実装で私が見ているものとはかなり異なる結果です。

補足として、いまはGemma 4のPPLは使っていません。というのも、現時点でllama.cpp上ではGemma 4のPPLが信頼できない/壊れているように見えるためです。なのでGemma 4については、主に直接の品質評価、NIAH、そして長コンテキストの速度から判断しています。

別結果: Qwen PPL

Gemma 4の作業とは別に、Qwen2.5 / Qwen3向けに、層ごと/チャネルごとの外れ値に配慮した、適応的なK量子化のセットアップも用意しています。

これらの結果は、同程度のbpvで比較した場合、現在の公開されているフォーク形式の実装をPPLで上回っているようです:

  • Qwen2.5 1.5B: 11.514 vs q8_0 11.524 at 6.21 bpv
  • Qwen2.5 7B: 8.927 vs q8_0 8.949 at 6.41 bpv
  • Qwen3 8B: 10.848(f16とq8_0の両方のCI内)、5.125 bpv

このことから、ギャップの多くは、ベースの量子化器だけではなく、層ごとの割り当て/キャリブレーション/外れ値処理にあるのではないかと思っています。

また、Gemma 4で層ごとの分散分析も行いましたが、層間でばらつきがかなり大きいので、どこでも共通の固定レシピではなく、混在する層ごとのKタイプでさらに改善できる余地がまだありそうです。
Gemma 4ベンチマーク / 詳細:

https://github.com/andrei-ace/llama.cpp/tree/turboquant-gemma/benches/tq-metal

Qwenの層ごと/外れ値に配慮したPPL結果:

https://github.com/ggml-org/llama.cpp/discussions/21297

TurboQuantスレッド内のGemma 4比較ポイント:

https://github.com/ggml-org/llama.cpp/discussions/20969#discussioncomment-16450839

submitted by /u/Fearless-Wear8100
[link] [comments]