Qwen KV Cache Quantisierung Deep Dive: PPL, KL-Divergenz und asymmetrische K/V-Ergebnisse

✍️ OpenClawRadar📅 Veröffentlicht: 29. April 2026🔗 Source
Qwen KV Cache Quantisierung Deep Dive: PPL, KL-Divergenz und asymmetrische K/V-Ergebnisse
Ad

Folge-Benchmarks für Qwen 3.6-35B-A3B Q8 mit KV-Cache-Quantisierung unter Verwendung des TheTom TurboQuant Forks (feature/turboquant-kv-cache) auf einem M5 Max. Diese Runde umfasst Perplexität, KL-Divergenz, asymmetrische K/V-Kombinationen und einen Datenpunkt für 64K Tiefe.

Qualitätsergebnisse (Perplexität + KL-Divergenz)

Kontextgröße 4096 auf wikitext-2. f16 als Basislinie für Logits verwendet.

  • q8_0: PPL 5,7433, KL 0,0016, Top-1-Token-Übereinstimmung 98,64 % — im Wesentlichen kostenlos bei 4K Kontext (PPL-Delta -0,0005 innerhalb ±0,036 Standardfehler).
  • turbo3 (~4,9x): PPL 5,8092, KL 0,0199, Top-1-Übereinstimmung 93,93 % — ~1 % PPL-Anstieg, 5 Prozentpunkte Token-Abweichung.
  • turbo4 (~3,8x): PPL 5,7810, KL 0,0131, Top-1-Übereinstimmung 95,28 % — liegt zwischen q8_0 und turbo3, konsistent mit dem Kompressionsverhältnis.

Der Qualitätsverlust skaliert mit der Kompression, keine Überraschungen.

Asymmetrischer K/V-Durchlauf

Decode tok/s mit llama-bench, gleiche Flags wie symmetrischer Durchlauf. Wichtige Konfigurationen:

  • -ctk q8_0 -ctv turbo4 sticht hervor: Bei 256K erreicht es symmetrischen q8_0-Durchsatz (27,1 vs. 26,6 tg) und passt in 512K, wo symmetrisches q8_0 OOM war. Bietet q8_0-Qualität beim Prefill mit turbo4-Kontextobergrenze.
  • -ctk q8_0 -ctv turbo3: Ähnlicher Trick, aber schlechterer Decode (engere V-Quantisierung belastet die Generierung).
  • -ctk f16 -ctv turbo4: Defekt auf Metal — FlashAttention-Kernel verarbeitet diese Kombination nicht schnell, fällt auf generische Dequant-Attention zurück. Bei 8K ist es 34x langsamer als symmetrisches f16; bei 128K ist es 78x langsamer (4,1 t/s pp). Nicht verwenden.

Beispiel Decode tok/s bei Tiefe 128K: q8_0 K/turbo4 V 41,0, q8_0 K/turbo3 V 38,2, f16 K/turbo4 V 2,8.

Ad

64K Tiefenreihe

Alle sieben Konfigurationen bei Tiefe 65536 (pp512 / tg128 tok/s):

  • f16 symmetrisch: 602,0 / 59,8
  • q8_0 symmetrisch: 479,2 / 57,9
  • turbo3 symmetrisch: 469,8 / 49,9
  • turbo4 symmetrisch: 418,0 / 55,2
  • q8_0 K / turbo4 V: 468,2 / 55,9
  • q8_0 K / turbo3 V: 465,6 / 52,6
  • f16 K / turbo4 V: 8,3 / 4,9

Prefill-Kurven bei 64K nahezu konvergiert: turbo3 (470) innerhalb von 2 % von q8_0 (479). Bandbreiten-limitierter Bereich setzt zwischen 64K und 128K ein.

Aktualisierte Empfehlung

Für Coding-Agenten (tiefer Kontext, viele generierte Token): -ctk q8_0 -ctv turbo4 verwenden. q8_0-Qualität bei K, turbo4-Ersparnis bei V, passt 512K. Für RAG oder Batch-QA (schweres Prefill, kleinerer Decode) bleibt symmetrisches q8_0 oder turbo4 brauchbar.

📖 Lesen Sie die vollständige Quelle: r/LocalLLaMA

Ad

👀 Siehe auch