# TurboQuant : Algorithme de compression du cache KV pour optimiser les modèles d’IA
Le TurboQuant de Google résout les goulots d’étranglement dans les caches KV des transformers en utilisant la quantification vectorielle pour réduire la consommation de mémoire sans sacrifier la précision. L’algorithme combine PolarQuant et QJL, offrant une compression jusqu’à 3 bits par élément tout en préservant les performances sur les tâches à contexte long. Cela permet d’exécuter de grands LLM sur du matériel à ressources limitées.
La méthode cible les paires clé-valeur dans les mécanismes d’attention, où la quantification traditionnelle entraîne une surcharge due au stockage de constantes pour les blocs de données. TurboQuant élimine ces coûts en utilisant des coordonnées polaires et la quantification des erreurs résiduelles.
PolarQuant : Compression sans surcharge
PolarQuant convertit les coordonnées cartésiennes des vecteurs mémoire en coordonnées polaires, éliminant les constantes redondantes. Au lieu de stocker les distances le long des axes X, Y, Z, la méthode utilise le rayon et les angles pour minimiser la mémoire du codebook.
Avantages de l’approche :
- Zéro surcharge pour le stockage des métadonnées.
- Préservation de la géométrie de l’espace vectoriel.
- Compatibilité avec les pipelines de recherche vectorielle existants.
C’est particulièrement utile pour accélérer l’indexation dans les systèmes de recherche sémantique, où TurboQuant atteint un rappel 1@k sur le dataset GloVe (d=200).
QJL : Correction d’erreurs avec Johnson-Lindenstrauss
Après PolarQuant, QJL est appliqué au résidu 1 bit. L’algorithme exploite la transformation Johnson-Lindenstrauss (JLT) pour projeter des données de haute dimension dans un espace de plus basse dimension tout en préservant les distances.
QJL inclut :
- Projection des erreurs sur une matrice JLT aléatoire.
- Un estimateur spécialisé pour équilibrer la précision des requêtes et les données compressées.
- Aucune surcharge mémoire supplémentaire pour le décodage.
Le résultat est une récupération de similarité haute précision sans besoin d’ajustement fin du modèle.
Benchmarks et performances
TurboQuant a été testé sur des LLM open source (Gemma, Mistral) à travers des benchmarks comme LongBench, Needle In A Haystack, ZeroSCROLLS, RULER et L-Eval. Sur Llama-3.1-8B-Instruct, il surpasse les baselines en distorsion de produit scalaire et en rappel tout en minimisant la taille du cache KV.
Dans la tâche Needle In A Haystack (trouver un fragment dans un contexte long), la compression KV à 3 bits maintient la précision du modèle original et accélère l’inférence. TurboQuant offre un gain de vitesse dans les logits d’attention par rapport à une baseline JAX optimisée à des niveaux de 3 à 8 bits.
Métriques clés :
- Réduction d’au moins 6x de la mémoire du cache KV.
- Recherche vectorielle plus rapide grâce à des index plus petits.
- Performances stables sans réentraînement.
Points importants
- TurboQuant combine PolarQuant et QJL pour une compression extrême du cache KV sans perte de qualité.
- Prend en charge les contextes longs dans les LLM, augmentant la vitesse d’inférence de 20-30 %.
- Idéal pour la recherche vectorielle et les index sémantiques avec une utilisation mémoire minimale.
- Fonctionne sur les modèles Gemma, Mistral et Llama sans réentraînement.
- Limité à l’inférence ; ne résout pas les défis de l’entraînement.
Perspectives de déploiement
L’algorithme s’adapte aux scénarios de production avec de grandes bases de données vectorielles, réduisant la latence de construction d’index. Pour les LLM, il optimise le cache KV pour les séquences longues, permettant aux modèles de s’exécuter sur du matériel grand public. Une présentation à ICLR 2026 validera son évolutivité.
— Editorial Team
Aucun commentaire pour le moment.