Google Research · 2026 年 3 月发布

TurboQuant
重新定义 AI 效率

新型在线向量量化算法,实现零精度损失的 3-bit KV Cache 压缩,内存减少 6 倍,速度提升 8 倍。

6x+
内存压缩比
8x
注意力计算加速 (H100)
3-bit
零精度损失压缩
核心创新

为什么 TurboQuant 是改变赛道的结果

TurboQuant 不是简单的压缩工具,而是接近信息论最优界、同时保持数据无关和加速器友好的在线量化框架。

传统方法 (如 PQ)

  • 需要数据集特定训练
  • 存储大量全精度归一化常数
  • 索引时间长
  • 精度损失明显

TurboQuant

  • 随机旋转 + 极坐标变换 (PolarQuant)
  • 1-bit 残差校正 (QJL) 消除归一化开销
  • 索引时间接近零
  • 在论文基准中与 32-bit 基线一致
AISTATS 2026

PolarQuant

极坐标变换核心,消除归一化开销

arXiv: 2502.02617
AAAI 2025

QJL

1-bit 无偏内积估计器

ACM DL
ICLR 2026

TurboQuant

两阶段整合,实现近最优失真率

arXiv: 2504.19874
技术背景

为什么需要 TurboQuant

向量量化极限与 KV Cache 压力的快速梳理

1向量量化的经典问题

向量量化要把高维向量映射到紧凑编码,同时最小化失真。理论下界很明确,但传统方法离这个界仍然较远。

失真度量公式

MSE: D_MSE = E[||x - x̂||²]
内积: 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

PQ 等传统方法通常离这些下界还有明显距离。

2LLM 中的 KV Cache 瓶颈

在 Decoder-only Transformer 里,每个 token 都要存一份 Key/Value。上下文变长后,KV Cache 很快变成主要内存负担。

内存估算

内存 ≈ 2 × L × d × 2 bytes (FP16)
128K 上下文 + 7B 模型数十 GB
KV Cache 占总内存80%+

TurboQuant 带来的变化

  • 无需训练、无需微调
  • 3.5 bit/通道可实现质量中性
  • LongBench 与 FP32 一致
  • 让边缘设备长上下文推理更可行

3向量搜索应用

在 FAISS 这类 ANN 系统中,TurboQuant 兼顾更高召回率和接近零的索引开销。

更高召回率
在 GloVe 上优于 PQ 和 RabbiQ
索引时间 ≈ 0
适合十亿级向量库
核心原理

TurboQuant 两阶段算法

TurboQuant = PolarQuant 主压缩 + QJL 残差校正

PolarQuant:极坐标变换

关键点在于去掉 per-block 归一化开销。PolarQuant 先做随机旋转,让坐标服从更易量化的集中分布。

坐标分布公式

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

其中 x ∈ [-1, 1]
1
将 d 维向量两两分组,得到半径与角度
2
对半径递归执行极坐标变换
3
只量化角度,避免归一化开销

核心优势

  • 取消所有 per-block 全精度常数
    额外开销为 0。
  • 超过 4.2x 压缩时仍近无损
    显著优于传统方案。
  • 高维下坐标近似高斯
    可直接套用 Lloyd-Max 等最优标量量化器。
实验结果

数据就是论据

覆盖 Gemma、Mistral、Llama-3.1-8B 的基准测试

KV Cache 压缩基准

50.06
LongBench 分数
3.5-bit = Full Cache
100
Needle In A Haystack
4K 到 104K 全满分
6x+
内存压缩
显著降低成本
8x
注意力速度
H100 4-bit 模式
基准测试TurboQuant 3.5-bitTurboQuant 2.5-bitFull Cache
LongBench50.0649.4450.06
Needle In A Haystack10099.8100
ZeroSCROLLS最优接近最优基线
RULER最优接近最优基线
L-Eval最优接近最优基线

向量搜索基准 (GloVe d=200)

1@k Recall

TurboQuant最优
PQ较低
RabbiQ中等

索引时间

TurboQuant≈ 0
PQ (需 codebook 训练)
RabbiQ中等

与替代方案对比

方法需要训练无偏压缩比速度提升
TurboQuant6x+8x
KIVI需校准4x4x
SnapKV需微调2-4x2-4x
DuQuant需校准部分4x4x
使用指南

从论文到生产

如何把 TurboQuant 放进真实系统

当前状态

论文已经给出理论与伪代码,但官方实现尚未开源。社区集成工作已经启动。

  • llama.cpp Discussion #20969 正在讨论集成方案
  • MLX 实验报告约 5x 压缩和 99.5% 质量保留
  • 社区普遍预期 2026 Q2 左右会出现开源实现

实现步骤草图

1

预计算 Lloyd-Max 质心

离线算一次,后续复用。

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

生成随机旋转矩阵

通过 QR 分解得到正交矩阵。

# 随机旋转
G = np.random.randn(d, d)
Pi, _ = np.linalg.qr(G)
3

实现 quant / dequant 原语

这里是数据存储与恢复的核心路径。

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

集成到 attention

把 K/V 存成 TurboQuant 格式,并在注意力里结合 QJL。

# Transformer attention
k_quant = turboquant_quant(k)
v_quant = turboquant_quant(v)
# 在注意力阶段使用 QJL

部署建议

硬件

H100 / A100 最理想,论文中的 8x 提速来自 4-bit 模式。

FP

混合精度

KV Cache 用 TurboQuant,权重用 INT4,整体压缩效果更强。

边缘设备

3-bit KV Cache 有机会让手机端也支持 32K+ 上下文。

工程风险与应对

随机旋转开销

预生成并复用矩阵,避免在线反复构建。

残差范数存储

只额外存 1 个 FP16 标量,开销很小。

推荐开源路线

fork llama.cpp → 添加 turboquant_quant kernel
未来展望

TurboQuant 可能怎样改变 AI 栈

LLM 推理

百万 token 上下文成本会明显下降,并可能进入未来模型栈的原生能力。

向量数据库

更容易做到实时索引和亚毫秒查询。

边缘 AI

手机和嵌入式设备上的长上下文推理更现实。

多模态嵌入

相同思路可扩展到图像和视频 embedding 压缩。

理论延伸

结合 outlier 处理后,实用 2-bit 系统的可能性更高。

社区影响

vLLM、Hugging Face 等生态很可能快速跟进。

时间线预测

Q2

2026 Q2

开源代码与框架集成

Q4

2026 Q4

商用产品,可能先落在云端

27

2027

有机会成为 LLM 量化标准配置

风险提示:如果随机种子处理不当,可能引入极小偏差,但论文认为在高维下可以忽略。

FAQ

常见问题

工程师和读者最先会问的问题