Profundización en la Cuantización de Caché KV de Qwen: PPL, Divergencia KL y Resultados Asimétricos de K/V

✍️ OpenClawRadar📅 Publicado: 29 de abril de 2026🔗 Source
Profundización en la Cuantización de Caché KV de Qwen: PPL, Divergencia KL y Resultados Asimétricos de K/V
Ad

Evaluaciones de seguimiento para Qwen 3.6-35B-A3B Q8 con cuantización de caché KV usando el fork TheTom TurboQuant (feature/turboquant-kv-cache) en un M5 Max. Esta ronda cubre perplejidad, divergencia KL, combinaciones asimétricas K/V y un punto de datos de profundidad de 64K.

Resultados de Calidad (Perplejidad + Divergencia KL)

Tamaño de contexto 4096 en wikitext-2. Se usó f16 como línea base para logits.

  • q8_0: PPL 5.7433, KL 0.0016, acuerdo de token top-1 98.64% — esencialmente gratis en contexto de 4K (delta PPL -0.0005 dentro de ±0.036 stderr).
  • turbo3 (~4.9x): PPL 5.8092, KL 0.0199, acuerdo top-1 93.93% — ~1% de aumento en PPL, 5pp de desacuerdo de tokens.
  • turbo4 (~3.8x): PPL 5.7810, KL 0.0131, acuerdo top-1 95.28% — se sitúa entre q8_0 y turbo3, consistente con la relación de compresión.

El costo de calidad escala con la compresión, sin sorpresas.

Barrido Asimétrico K/V

Decode tok/s con llama-bench, mismas banderas que el barrido simétrico. Configuraciones clave:

  • -ctk q8_0 -ctv turbo4 destaca: en 256K iguala el rendimiento de q8_0 simétrico (27.1 vs 26.6 tg), cabe en 512K donde q8_0 simétrico se quedó sin memoria. Ofrece calidad de prefill de q8_0 con techo de contexto de turbo4.
  • -ctk q8_0 -ctv turbo3: truco similar pero peor decode (cuantización V más ajustada penaliza la generación).
  • -ctk f16 -ctv turbo4: roto en Metal — el kernel FlashAttention no acelera esta combinación, recurre a atención genérica con deccuantización. En 8K es 34 veces más lento que f16 simétrico; en 128K es 78 veces más lento (4.1 t/s pp). No usar.

Ejemplo de decode tok/s a profundidad 128K: q8_0 K/turbo4 V 41.0, q8_0 K/turbo3 V 38.2, f16 K/turbo4 V 2.8.

Ad

Fila de Profundidad 64K

Las siete configuraciones a profundidad 65536 (pp512 / tg128 tok/s):

  • f16 simétrico: 602.0 / 59.8
  • q8_0 simétrico: 479.2 / 57.9
  • turbo3 simétrico: 469.8 / 49.9
  • turbo4 simétrico: 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

Las curvas de prefill casi convergen en 64K: turbo3 (470) dentro del 2% de q8_0 (479). El régimen limitado por ancho de banda comienza entre 64K y 128K.

Recomendación Actualizada

Para agentes de codificación (contexto profundo, muchos tokens generados): usar -ctk q8_0 -ctv turbo4. Calidad q8_0 en K, ahorros de turbo4 en V, cabe en 512K. Para RAG o QA por lotes (prefill pesado, decode más pequeño), q8_0 simétrico o turbo4 siguen siendo viables.

📖 Leer la fuente completa: r/LocalLLaMA

Ad

👀 Ver también