Back to Blog
BlogMarch 29, 20265

Qu'est-ce que TurboQuant ? L'IA de compression révolutionnaire de Google pour un cache KV 6 fois plus petit et une inférence 8 fois plus rapide

Qu'est-ce que TurboQuant ? L'IA de compression révolutionnaire de Google pour un cache KV 6 fois plus petit et une inférence 8 fois plus rapide

Points Clés

  • TurboQuant est l'algorithme de quantification vectorielle en ligne de Google Research qui comprime le cache clé-valeur (KV) dans les grands modèles de langage à seulement 3 bits par valeur tout en obtenant une perte de précision nulle sur des benchmarks comme LongBench, Needle-in-a-Haystack et RULER.
  • Les benchmarks indiquent une réduction de mémoire de 6x dans le cache KV et une accélération jusqu'à 8x du calcul des logits d'attention sur les GPU NVIDIA H100 par rapport aux références 32 bits.
  • Il ne nécessite aucun entraînement ou réglage fin, le rendant immédiatement applicable aux modèles existants tels que Gemma, Mistral, Llama et Qwen.
  • Les retours de la communauté suggèrent qu'il permet au matériel grand public de gérer des fenêtres de contexte considérablement plus longues avec une qualité de sortie quasi identique à l'inférence en pleine précision.
  • La technique combine une rotation orthogonale aléatoire, PolarQuant pour la compression principale et Quantized Johnson-Lindenstrauss (QJL) à 1 bit pour la correction des résidus.

Qu'est-ce que TurboQuant ?

TurboQuant est une méthode avancée de quantification vectorielle développée par Google Research qui redéfinit l'efficacité pour les grands modèles de langage et la recherche de vecteurs en haute dimension. Annoncée fin mars 2026 et prévue pour présentation à l'ICLR 2026, elle cible le goulet d'étranglement mémoire critique dans l'inférence des transformers : le cache KV.

L'analyse montre qu'à mesure que les longueurs de contexte atteignent des dizaines ou centaines de milliers de tokens, le cache KV—qui stocke les vecteurs clés et valeurs précalculés pour chaque token—peut consommer des gigaoctets de mémoire GPU et dominer les coûts d'inférence. TurboQuant comprime ces vecteurs en haute dimension (généralement des flottants de 16 ou 32 bits) en ultra-basse précision sans les compromis habituels en qualité de modèle ou en vitesse.

Contrairement à la quantification post-entraînement traditionnelle qui nécessite souvent des données d'étalonnage et subit toujours une dégradation de la précision, TurboQuant est indépendante des données et mathématiquement prouvée pour approcher les limites théoriques de l'information à la fois pour l'erreur quadratique moyenne (MSE) et la distorsion du produit scalaire.

Le Goulet d'Étranglement du Cache KV dans les LLMs Modernes

Dans les architectures de transformers, l'auto-attention repose sur le cache KV pour éviter de recalculer les clés et valeurs des tokens déjà vus. Pour un modèle avec une dimension cachée d et une longueur de séquence n, le cache croît linéairement comme O(n × d × couches × têtes × octets par valeur).

Les benchmarks indiquent que ce cache peut dépasser en taille les poids du modèle pendant les tâches à contexte long. Le stockage KV standard en 16 bits devient rapidement prohibitif sur les GPU grand public ou dans des environnements de service à haut débit comme vLLM. Les tentatives de compression antérieures (par exemple, la quantification en 4 ou 8 bits avec des échelles par bloc) introduisaient une surcharge mémoire due au stockage des constantes de normalisation, limitant les gains réels à 2-3x au mieux tout en risquant une dérive des sorties.

TurboQuant élimine complètement cette surcharge, permettant un déploiement pratique de modèles avec des fenêtres de contexte de 32k à 128k+ et plus sur du matériel qui peinait auparavant à 8k.

Fonctionnement de TurboQuant : Explication technique approfondie

TurboQuant fonctionne comme un algorithme en deux étapes, optimisé en ligne à la fois pour la préservation de l'erreur quadratique moyenne (EQM) et du produit scalaire—éléments cruciaux pour des scores d'attention précis.

Étape 1 : Rotation aléatoire + Compression PolarQuant

  1. Rotation orthogonale aléatoire : Chaque vecteur d'entrée KV subit une transformation orthogonale aléatoire indépendante des données (via une décomposition QR d'une matrice gaussienne). Cela redistribue uniformément les magnitudes des coefficients à travers les dimensions, convertissant la structure quasi-éparse typique des activations des LLM en une distribution bien comportée.

    Après la rotation, chaque coordonnée suit une distribution Bêta((d-1)/2, (d-1)/2) connue sur [-1, 1]. Cette prévisibilité permet de précalculer analytiquement les centroïdes de quantification optimaux.

  2. PolarQuant (Quantification scalaire de haute qualité) :

    • Les vecteurs sont normalisés et transformés des coordonnées cartésiennes aux coordonnées polaires en associant les dimensions récursivement.
    • Le rayon capture la magnitude ; les angles encodent l'information directionnelle (sémantique).
    • Parce que les distributions angulaires sont concentrées et prévisibles, les constantes de normalisation coûteuses par bloc sont éliminées.
    • Un quantificateur de Lloyd-Max—optimisé pour l'EQM sur la distribution Bêta—mappe chaque coordonnée à une valeur discrète de faible bit (par exemple, 3 bits au total pour l'étape principale).

Cette étape fournit la majeure partie de la compression (majorité des bits) tout en préservant presque toute l'information vectorielle.

Étape 2 : Correction résiduelle QJL

Une infime erreur résiduelle subsiste après PolarQuant. TurboQuant applique la transformée Johnson-Lindenstrauss quantifiée (QJL) en utilisant seulement 1 bit par vecteur (+1 ou -1, signe). Cela corrige le biais du produit scalaire sans ajouter de surcharge mémoire.

Le résultat : les vecteurs reconstruits atteignent une similitude cosinus et une corrélation de produit scalaire quasi parfaites par rapport à l'original (≥ 0,983 à 3 bits dans les tests communautaires).

L'ensemble du processus est adapté aux accélérateurs, avec des noyaux Triton fusionnés permettant le calcul direct des logits d'attention à partir des indices compressés—aucune déquantification complète n'est nécessaire pendant l'inférence.

Repères et performances en situation réelle

Les tests indépendants et les évaluations internes de Google confirment des résultats exceptionnels :

  • Mémoire : le cache KV 3 bits permet une réduction d’environ 6 fois par rapport aux références en 16 bits ; les variantes 4 bits atteignent des gains effectifs de 8 fois pour certaines charges de travail.
  • Vitesse : le TurboQuant 4 bits permet des calculs d’attention jusqu’à 8 fois plus rapides sur les GPU H100 par rapport aux clés non quantifiées en 32 bits.
  • Précision : Rappel parfait sur Needle-in-a-Haystack pour des contextes de 8k à 64k. Aucune dégradation sur LongBench, ZeroSCROLLS, RULER et L-Eval pour des modèles incluant Gemma, Mistral et Qwen3.5.
  • Tests communautaires (ex. Gemma-3-4B sur RTX 4090) :
    • Noyau fusionné 2 bits : sortie identique à la référence fp16, cache KV réduit de 26 Mo à 7 Mo.
    • Débit de bout en bout égal ou supérieur à la référence tout en utilisant 70 % de VRAM en moins.

Les évaluations de recherche vectorielle sur GloVe (d=200) montrent un rappel top-k supérieur par rapport à la quantification par produit (PQ) et RabbiQ, malgré des dictionnaires de code plus petits et aucun ajustement du jeu de données.

Comment mettre en œuvre TurboQuant : Guide étape par étape

Google n’a pas publié de code de production officiel, mais la communauté open-source a livré des implémentations fonctionnelles en quelques jours après l’annonce. Voici comment démarrer dès aujourd’hui.

1. Démarrage rapide avec PyTorch (Recherche/Prototypage)

Utilisez l’implémentation from-scratch sur tonbistudio/turboquant-pytorch :

  • Clonez le dépôt et installez les dépendances (PyTorch + Triton).
  • Précaculez les dictionnaires de code Lloyd-Max pour la dimension cachée de votre modèle et le nombre de bits cible. -- Appliquez un patch à DynamicCache de Hugging Face pour quantifier à chaque appel cache.update().
  • Exécutez le script de démonstration : python run_demo.py --fused --bits 3 pour Gemma-3-4B ou similaire.

Les noyaux Triton fusionnés pré-rotent les requêtes une fois et calculent les produits scalaires directement depuis les indices uint8, offrant une accélération de bout en bout de 1,2x.

2. Servir en production avec vLLM

Intégrations vLLM bifurquées (ex. mitkox/vllm-turboquant ou la branche flash7777/vllm turboquant) :

  • Installez la version personnalisée de vLLM.
  • Activez TurboQuant dans les arguments du moteur (prend en charge 2 à 4 bits pour les clés/valeurs). -Hébergez avec votre serveur compatible OpenAI existant — aucune modification du modèle requise.
  • Attendez-vous à des économies immédiates de cache KV et à un débit plus élevé pour les charges de travail à contexte long.

3. Inférence locale sur Apple Silicon (MLX)

Les ports natifs MLX (ex. helgklaizar/turboquant_mlx) permettent TurboQuant sur les Mac de série M :

  • pip install mlx-turboquant (des paquets communautaires sont disponibles).
  • Chargez les modèles via MLX et appliquez le wrapper de cache.
  • Idéal pour l’expérimentation sur appareil avec des contextes de 32k+.

4. Intégration de llama.cpp (CPU/GPU)

Les branches expérimentales (TheTom/llama-cpp-turboquant) font l'objet d'une optimisation active pour les modèles compatibles GGUF.

Conseils avisés :

  • Commencez par 3 ou 4 bits pour une perte de qualité imperceptible.
  • Utilisez des chemins de requêtes pré-rotatés dans les noyaux fusionnés pour minimiser la surcharge.
  • Testez d'abord sur "Needle-in-a-Haystack" pour valider la fidélité.
  • Surveillez la VRAM avec des outils comme nvidia-smi—prévoyez un passage à l'échelle effectif du contexte de 4 à 7 fois.

Un support généralisé dans vLLM, TensorRT-LLM et llama.cpp est attendu dans les semaines à venir au fur et à mesure que les optimisations mûrissent.

TurboQuant vs. Méthodes de quantification traditionnelles

Les approches traditionnelles (par ex., GPTQ, AWQ ou int4 de base) reposent sur des échelles et un étalonnage par groupe, introduisant souvent une surcharge de 1 à 2 bits par valeur et dégradant les performances sur des contextes longs. La Quantification par Produit nécessite de grands codebooks spécifiques aux ensembles de données et un réglage hors ligne.

TurboQuant se démarque :

  • Surcharge nulle : Aucune constante stockée ni métadonnée par bloc.
  • Insensible aux données : Fonctionne prêt à l'emploi sur n'importe quel modèle.
  • Distorsion quasi-optimale : Prouvée mathématiquement pour l'erreur quadratique moyenne (EQM) et les produits scalaires.
  • Adapté au traitement en ligne : S'exécute pendant l'inférence avec une latence négligeable.

Les implémentations communautaires démontrent qu'une TurboQuant agressive à 2 bits peut égaler la qualité de sortie en pleine précision là où les méthodes standard à 4 bits échouent.

Applications et impact futur

TurboQuant ouvre la voie à :

  • Des contextes plus longs sur du matériel grand public (par ex., 128 000 tokens sur une seule RTX 4090).
  • Une réduction des coûts : Jusqu'à 50 % de dépenses d'inférence en moins pour les fournisseurs cloud.
  • L'IA en périphérie : Recherche sémantique efficace et LLMs sur appareil.
  • Les bases de données vectorielles : Des indices plus rapides et denses avec un rappel de pointe.

À mesure que l'adoption progresse, on peut s'attendre à des pipelines hybrides de quantification des poids + cache KV qui permettront d'intégrer des modèles de 70B+ dans les domaines du mobile et de l'ordinateur portable.

Conclusion

TurboQuant représente un bond rare en ingénierie des systèmes d'IA : des gains d'efficacité extrêmes sans compromettre la qualité. En résolvant le goulot d'étranglement du cache KV grâce à des principes mathématiques élégants—rotation aléatoire, géométrie polaire et correction résiduelle—Google Research a fourni un modèle que la communauté transforme déjà en outils prêts pour la production.

Que vous exécutiez des modèles locaux, serviez des API à haut débit ou construisiez des applications de recherche vectorielle, le moment est venu d'expérimenter. Clonez une implémentation communautaire, évaluez les performances par rapport à votre configuration actuelle et augmentez considérablement vos fenêtres de contexte. L'ère de l'IA contrainte par la mémoire touche à sa fin—TurboQuant rend aujourd'hui l'inférence plus grande, plus rapide et moins chère une réalité pratique.

Share this article