TurboQuant+ : Compression du cache KV de 6,4x pour les LLMs
TurboQuant+ : Révolutionner l'inférence LLM avec une compression du cache KV de 6,4x
L'inférence LLM locale vient de devenir considérablement plus efficace. TurboQuant+ implémente l'article TurboQuant de l'ICLR 2026 avec une intégration llama.cpp prête pour la production, offrant une compression du cache KV de 4,6-6,4x tout en maintenant une qualité et une vitesse proches de q8_0.
🚀 Avancées clés
1. Famille de formats multi-bits
| Format | Bits/Val | Compression | PPL vs q8_0 | Cas d'usage |
|---|---|---|---|---|
| turbo4 | 4,25 | 3,8x | +0,23 % | Meilleure qualité/vitesse |
| turbo3 | 3,5 | 4,6x | +1,06 % | Compression maximale |
| turbo2 | 2,5 | 6,4x | +6,48 % | Pression mémoire extrême |
turbo4 surpasse q4_0 en qualité (plus proche de q8_0) et en ratio de compression.
2. Sparse V : Décodage attention-gated
La fonctionnalité phare : sauter la déquantisation des positions V à faible attention.
- +22,8 % de vitesse de décodage à 32K de contexte
- Dégradation PPL nulle (validé 50 chunks wikitext-103, IC ±0,021)
- Fonctionne avec TOUS les formats (q8_0, q4_0, turbo3/4)
- Amélioration NIAH : turbo4 = 31/33 vs 30/33 de q8_0
« La plupart des poids d'attention sont négligeables à long contexte. Les ignorer. » – Idée centrale
3. Parité de vitesse atteinte
M5 Max, Qwen 3.5 35B-A3B :
Pré-remplissage (32K contexte) : turbo3 = 1,10x q8_0 (1204 vs 1098 tok/s) Décodage : turbo4 = 0,93x q8_0 avec Sparse V
PDF réel 24K : décodage turbo4 = 63,7 tok/s (0,93x q8_0)
🔥 Pour commencer (5 minutes)
Prototype Python
git clone https://github.com/TheTom/turboquant_plus.git
cd turboquant_plus
python3 -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
python3 -m pytest tests/ -v # 141 tests passent
python3 benchmarks/demo.py # Démo rapide
Production llama.cpp
git clone https://github.com/TheTom/llama-cpp-turboquant.git
cd llama-cpp-turboquant
git checkout feature/turboquant-kv-cache
cmake -B build -DGGML_METAL=ON -DCMAKE_BUILD_TYPE=Release
cmake --build build -j
# Lancer avec cache turbo
./build/bin/llama-server -m your-model.gguf --cache-type-k turbo3 --cache-type-v turbo3 -c 262144
📊 Validation testée au combat
✅ 511+ tests Python, couverture 100 % ✅ Qwen 3.5 35B-A3B (MoE) sur M5 Max ✅ 9/9 NIAH aiguille unique avec Sparse V (vs 7/9 baseline) ✅ 100 % récupération multi-clés jusqu'à 32K ✅ Testé par la communauté : Macs M1-M5, RTX 3090/4090/5090, AMD 6800XT
🎯 Pourquoi cela compte
Mémoire : Cache KV 6,4x plus petit = exécuter des modèles plus grands avec contextes plus longs Vitesse : Équivalent q8_0 en pré-remplissage, 0,9x en décodage à 32K Qualité : turbo4 bat q4_0, seulement +0,23 % PPL vs q8_0
🚀 Futur : TurboQuant+
- Allocation de bits adaptative par couche
- Compression avec décroissance temporelle (économies mémoire 30-34 %)
- Compression adaptée MoE
- Backend CUDA (support NVIDIA)
Statut : v1 complet et prêt pour la production. Extensions à venir après PR en amont llama.cpp.
⭐ Étoiler le repo et essayez turbo3 pour votre prochaine exécution à long contexte. Votre RAM (et votre facture d'électricité) vous remerciera.