Google Research · lançado em março de 2026

TurboQuant
Redefinindo a eficiência em IA

Um novo algoritmo online de quantização vetorial que entrega compressão de cache KV em 3 bits sem perda de precisão, reduz a memória em 6x e acelera a atenção em até 8x.

6x+
compressão de memória
8x
aceleração da atenção (H100)
3-bit
compressão sem perda
Inovação central

Por que o TurboQuant parece mudar a categoria

TurboQuant não é apenas mais um truque de compressão. É um framework de quantização online próximo do limite teórico, ao mesmo tempo data-oblivious e amigável para aceleradores.

Métodos tradicionais (por exemplo, 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
Contexto técnico

Por que o TurboQuant importa

Um resumo rápido dos limites da quantização vetorial e da pressão do cache KV

1O problema clássico da quantização vetorial

Quantização vetorial comprime vetores de alta dimensão minimizando a distorção. Os limites teóricos são claros, mas os métodos tradicionais ainda ficam longe deles.

Fórmulas de distorção

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

Abordagens clássicas como PQ ainda ficam visivelmente acima desses limites.

2O gargalo do cache KV em LLMs

Em transformers decodificadores, cada token adiciona um par key/value. Com contextos longos, esse custo de memória passa a dominar o sistema.

Estimativa de memória

memory ≈ 2 × L × d × 2 bytes (FP16)
Contexto 128K + modelo 7Bdezenas de GB
Participação do cache KV na memória total80%+

O que o TurboQuant muda

  • Sem treinamento e sem finetuning
  • 3,5 bits por canal para neutralidade de qualidade
  • LongBench no nível do FP32
  • Torna inferência de longo contexto mais viável em edge devices

3Aplicações em busca vetorial

Em sistemas ANN como FAISS, o TurboQuant melhora o recall mantendo o custo de indexação próximo de zero.

Recall maior
Supera PQ e RabbiQ em GloVe
Tempo de indexação ≈ 0
Adequado para grandes bases vetoriais
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.
Resultados

Os números sustentam o argumento

Benchmarks em Gemma, Mistral e Llama-3.1-8B

Benchmarks de compressão do cache KV

50.06
Pontuação LongBench
3,5 bits = cache completo
100
Needle In A Haystack
perfeito de 4K a 104K
6x+
redução de memória
forte corte de custo
8x
velocidade de atenção
H100 em 4 bits
BenchmarkTurboQuant 3,5 bitsTurboQuant 2,5 bitsCache completo
LongBench50.0649.4450.06
Needle In A Haystack10099.8100
ZeroSCROLLSmelhorquase melhorbaseline
RULERmelhorquase melhorbaseline
L-Evalmelhorquase melhorbaseline

Benchmark de busca vetorial (GloVe d=200)

1@k recall

TurboQuantbest
PQlower
RabbiQmiddle

Indexing time

TurboQuant≈ 0
PQ (codebook training)long
RabbiQmiddle

Comparação com alternativas

MétodoPrecisa de treinoSem viésCompressãoAceleração
TurboQuantNãoSim6x+8x
KIVICalibraçãoNão4x4x
SnapKVFinetuningNão2-4x2-4x
DuQuantCalibraçãoParcial4x4x
Uso

Do paper à produção

Como integrar TurboQuant em uma stack real

Estado atual

O artigo traz a teoria e o pseudocódigo, mas ainda não há implementação open source oficial. O trabalho de integração na comunidade já começou.

  • llama.cpp Discussion #20969 is tracking integration ideas
  • Experiments in MLX report around 5x compression with 99.5% quality retention
  • Open-source code is widely expected around Q2 2026

Esboço de implementação

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

Notas de implantação

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.

Riscos práticos e mitigação

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.

Caminho open source sugerido

fazer fork do llama.cpp → adicionar um kernel turboquant_quant
Perspectiva

Como o TurboQuant pode deslocar a stack de 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.

Linha do tempo esperada

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

Nota de risco: tratamento ruim da semente aleatória pode introduzir pequeno viés, mas o artigo argumenta que o efeito é desprezível em alta dimensão.

FAQ

Perguntas frequentes

As primeiras perguntas que engenheiros e leitores costumam fazer