Google Research · publié en mars 2026

TurboQuant
Redéfinir l'efficacité de l'IA

Un nouvel algorithme de quantification vectorielle en ligne qui compresse le cache KV à 3 bits sans perte de qualité, réduit la mémoire par 6 et accélère l'attention jusqu'à 8x.

6x+
compression mémoire
8x
accélération de l'attention (H100)
3-bit
compression sans perte
Innovation centrale

Pourquoi TurboQuant ressemble à un résultat de rupture

TurboQuant n'est pas un simple outil de compression. C'est un cadre de quantification en ligne proche de la limite informationnelle, tout en restant data-oblivious et adapté aux accélérateurs.

Méthodes classiques (par ex. PQ)

  • Require dataset-specific training
  • Store many full-precision normalization constants
  • Long indexing time
  • Visible accuracy loss

TurboQuant

  • Random rotation plus polar transform (PolarQuant)
  • 1-bit residual correction (QJL) removes normalization overhead
  • Near-zero indexing time
  • Matches the 32-bit baseline on reported benchmarks
AISTATS 2026

PolarQuant

Polar-transform core that eliminates normalization overhead

arXiv: 2502.02617
AAAI 2025

QJL

1-bit unbiased inner-product estimator

ACM DL
ICLR 2026

TurboQuant

Two-stage design with near-optimal distortion

arXiv: 2504.19874
Contexte technique

Pourquoi TurboQuant compte

Un rappel rapide des limites de la quantification vectorielle et de la pression du cache KV

1Le problème classique de la quantification vectorielle

La quantification vectorielle compresse des vecteurs de grande dimension tout en minimisant la distorsion. Les bornes théoriques sont claires, mais les méthodes classiques restent loin de ces limites.

Formules de distorsion

MSE: D_MSE = E[||x - x̂||²]
Inner product: D_prod = E[|⟨y,x⟩ - ⟨y,x̂⟩|²]

Theory

MSE lower bound: D_MSE ≥ 1/4^b
Inner-product lower bound: D_prod ≥ (||y||² / d) · 1/4^b

Les approches classiques comme PQ restent sensiblement au-dessus de ces bornes.

2Le goulot d'étranglement du cache KV dans les LLM

Dans les transformers décodeurs, chaque token ajoute une paire clé/valeur. Avec de longues fenêtres de contexte, ce coût mémoire devient dominant.

Estimation mémoire

memory ≈ 2 × L × d × 2 bytes (FP16)
Contexte 128K + modèle 7Bdes dizaines de Go
Part du cache KV dans la mémoire totale80%+

Ce que TurboQuant change

  • Pas d'entraînement ni de finetuning
  • 3,5 bits par canal pour une qualité neutre
  • LongBench au niveau de FP32
  • Rend l'inférence long contexte plus réaliste en périphérie

3Applications en recherche vectorielle

Dans des systèmes ANN comme FAISS, TurboQuant améliore le rappel tout en gardant un coût d'indexation proche de zéro.

Meilleur rappel
Dépasse PQ et RabbiQ sur GloVe
Temps d'indexation ≈ 0
Adapté aux grands magasins de vecteurs
Core Principle

TurboQuant as a two-stage algorithm

TurboQuant = PolarQuant for main compression + QJL for residual correction

PolarQuant: polar-coordinate transform

The key idea is to remove per-block normalization overhead. PolarQuant rotates the vector randomly so coordinates follow a concentrated distribution that is easy to quantize.

Coordinate distribution

f_X(x) = Γ(d/2) / (√π · Γ((d-1)/2))
× (1 - x²)^((d-3)/2)

where x ∈ [-1, 1]
1
Group the d-dimensional vector into pairs to obtain radii and angles
2
Apply recursive polar transforms on the radii
3
Quantize only the angles, whose distribution is highly concentrated

Why it works

  • No per-block full-precision constants
    Overhead drops to zero.
  • Near-lossless beyond 4.2x compression
    Stronger than conventional baselines.
  • Gaussian-like coordinates in high dimension
    Supports optimal scalar quantizers such as Lloyd-Max.
Résultats

Les chiffres portent l'argument

Benchmarks sur Gemma, Mistral et Llama-3.1-8B

Benchmarks de compression du cache KV

50.06
Score LongBench
3,5 bits = cache complet
100
Needle In A Haystack
parfait de 4K à 104K
6x+
réduction mémoire
forte baisse des coûts
8x
vitesse d'attention
H100 en mode 4 bits
BenchmarkTurboQuant 3,5 bitsTurboQuant 2,5 bitsCache complet
LongBench50.0649.4450.06
Needle In A Haystack10099.8100
ZeroSCROLLSmeilleurpresque meilleurbaseline
RULERmeilleurpresque meilleurbaseline
L-Evalmeilleurpresque meilleurbaseline

Benchmark de recherche vectorielle (GloVe d=200)

Rappel 1@k

TurboQuantbest
PQlower
RabbiQmiddle

Temps d'indexation

TurboQuant≈ 0
PQ (codebook training)long
RabbiQmiddle

Comparaison avec les alternatives

MéthodeEntraînementSans biaisCompressionAccélération
TurboQuantNonOui6x+8x
KIVICalibrationNon4x4x
SnapKVFinetuningNon2-4x2-4x
DuQuantCalibrationPartiel4x4x
Usage

Du papier à la production

Comment intégrer TurboQuant dans une vraie stack

État actuel

L'article fournit la théorie et le pseudocode, mais il n'existe pas encore d'implémentation open source officielle. Le travail d'intégration communautaire a déjà commencé.

  • llama.cpp Discussion #20969 suit les pistes d'intégration
  • Des expériences MLX rapportent environ 5x de compression avec 99,5% de qualité conservée
  • Une publication open source est largement attendue autour de T2 2026

Esquisse d'implémentation

1

Precompute Lloyd-Max centroids

Do it once offline and reuse them.

# Python-like pseudocode
centroids = lloyd_max_quantizer(
    distribution="beta",
    bits=b
)
2

Generate a random rotation matrix

Use QR decomposition to build an orthogonal matrix.

# random rotation
G = np.random.randn(d, d)
Pi, _ = np.linalg.qr(G)
3

Build quant / dequant primitives

This is the core path for storage and recovery.

def quant(x, Pi, centroids):
    y = Pi @ x
    idx = find_nearest(y, centroids)
    return idx

def dequant(idx, Pi, centroids):
    y = centroids[idx]
    x = Pi.T @ y
    return x
4

Integrate inside attention

Store K/V in TurboQuant form and estimate inner products with QJL.

# Transformer attention
k_quant = turboquant_quant(k)
v_quant = turboquant_quant(v)
# use QJL during attention

Notes de déploiement

Hardware

H100 and A100 are ideal. 4-bit mode is where the paper reports 8x speedups.

FP

Mixed precision

Use TurboQuant for KV cache and INT4 for weights to maximize total compression.

Edge devices

3-bit KV cache can make 32K+ context feasible on phones with software-only implementations.

Risques pratiques et réponses

Random rotation overhead

Pre-generate and reuse the matrices instead of rebuilding them online.

Residual norm storage

One FP16 scalar is small enough to keep the overhead negligible.

Chemin open source recommandé

fork de llama.cpp → ajout d'un kernel turboquant_quant
Perspective

Comment TurboQuant peut déplacer la pile IA

LLM inference

Million-token contexts become materially cheaper, with a path to native support in future model stacks.

Vector databases

Real-time indexing and sub-millisecond search become easier to deliver.

Edge AI

Long-context inference on mobile and embedded devices becomes more realistic.

Multimodal embeddings

The same ideas can extend to image and video embedding compression.

Theory extensions

Combining with outlier-handling methods could push the field toward practical 2-bit systems.

Community impact

Expect rapid follow-through from ecosystems such as vLLM and Hugging Face.

Calendrier attendu

Q2

2026 Q2

Open-source code and framework integrations

Q4

2026 Q4

Commercial products, likely cloud-first

27

2027

Potential normalization as an LLM quantization standard

Note de risque : une mauvaise gestion du seed aléatoire peut introduire un léger biais, mais l'article considère l'effet négligeable en grande dimension.

FAQ

Questions fréquentes

Les premières questions que posent ingénieurs et lecteurs