我们介绍一套理论基础扎实的先进量化算法,可为大语言模型和向量搜索引擎实现大规模压缩。
向量是AI模型理解和处理信息的基本方式。小向量描述简单属性,如图形中的点,而"高维"向量捕获复杂信息,如图像特征、词语含义或数据集属性。高维向量功能强大,但也会消耗大量内存,导致键值缓存出现瓶颈。键值缓存是一个高速"数字备忘录",将常用信息存储在简单标签下,让计算机无需搜索庞大的慢速数据库即可瞬间检索。
向量量化是一种强大的经典数据压缩技术,可减小高维向量的大小。这种优化解决了AI的两个关键方面:通过实现更快的相似性查找来增强向量搜索(支撑大规模AI和搜索引擎的高速技术);通过减小键值对的大小来帮助解决键值缓存瓶颈,从而实现更快的相似性搜索并降低内存成本。然而,传统向量量化通常引入自身的"内存开销",因为大多数方法需要为每个小数据块计算和存储(全精度)量化常数。这种开销可能为每个数字增加1或2个额外位,部分违背了向量量化的目的。
今天,我们推出TurboQuant(将在ICLR 2026上发表),这是一种最优解决向量量化中内存开销挑战的压缩算法。我们还展示了量化Johnson-Lindenstrauss(QJL)和PolarQuant(将在AISTATS 2026上发表),TurboQuant使用这些技术来实现其效果。在测试中,三种技术都显示出在不牺牲AI模型性能的情况下减少键值瓶颈的巨大潜力。这对所有依赖压缩的用例都有潜在的深远影响,特别是在搜索和AI领域。
TurboQuant是一种在零精度损失的情况下实现模型大小大幅缩减的压缩方法,非常适合支持键值缓存压缩和向量搜索。它通过两个关键步骤完成:
为充分理解TurboQuant如何实现这种效率,我们深入了解QJL和PolarQuant算法的工作原理。
QJL使用一种称为Johnson-Lindenstrauss变换的数学技术来收缩复杂的高维数据,同时保持数据点之间的基本距离和关系。它将每个结果向量数字简化为单个符号位(+1或-1)。该算法本质上创建了一个需要零内存开销的高速简写。为保持准确性,QJL使用特殊估计器,战略性地平衡高精度查询与低精度简化数据。这使模型能够准确计算注意力分数(用于决定输入的哪些部分重要、哪些部分可安全忽略的过程)。
PolarQuant使用完全不同的方法解决内存开销问题。它不使用表示沿每个轴距离的标准坐标(即X、Y、Z)来查看内存向量,而是使用笛卡尔坐标系将向量转换为极坐标。这相当于将"向东3个街区,向北4个街区"替换为"以37度角总共5个街区"。这产生两条信息:半径(表示核心数据的强度)和角度(表示数据的方向或含义)。由于角度模式已知且高度集中,模型不再需要执行昂贵的数据标准化步骤,因为它将数据映射到边界已知的固定、可预测"圆形"网格上,而不是边界不断变化的"方形"网格。这使PolarQuant能够消除传统方法必须承担的内存开销。
PolarQuant充当高效压缩桥梁,将笛卡尔输入转换为用于存储和处理的紧凑极坐标"简写"。该机制首先将d维向量的坐标对分组,并将它们映射到极坐标系统。然后将半径成对收集进行递归极坐标变换——这个过程重复直到数据被提炼成单个最终半径和描述性角度集合。
我们使用开源大语言模型(Gemma和Mistral)在标准长上下文基准测试中严格评估了所有三种算法,包括:LongBench、Needle In A Haystack、ZeroSCROLLS、RULER和L-Eval。实验数据表明,TurboQuant在点积失真和召回方面都实现了最佳评分性能,同时最小化键值内存占用。下图显示了TurboQuant、PolarQuant和KIVI基线在多样化任务(包括问答、代码生成和摘要)中的聚合性能分数。
TurboQuant在Llama-3.1-8B-Instruct模型上相对于各种压缩方法在LongBench基准测试中表现出强劲的键值缓存压缩性能(方括号中表示位宽)。
长上下文"大海捞针"任务(即测试模型是否能在大量文本中找到一条特定的微小信息)的结果如下。同样,TurboQuant在所有基准测试中实现完美的下游结果,同时将键值内存大小减少至少6倍。PolarQuant在此任务中也几乎无损。
TurboQuant证明它可以将键值缓存量化到仅3位,无需训练或微调,不影响模型准确性,同时实现比原始大语言模型(Gemma和Mistral)更快的运行时间。它的实现极其高效,产生的运行时开销可忽略不计。以下图表显示了使用TurboQuant计算注意力逻辑的加速:具体来说,4位TurboQuant在H100 GPU加速器上相比32位未量化密钥实现高达8倍的性能提升。
TurboQuant在各种位宽级别的键值缓存内计算注意力逻辑方面显示出显著的性能提升,相对于高度优化的JAX基线进行测量。
这使其非常适合支持向量搜索等用例,在这些场景中它显著加速了索引构建过程。我们使用1@k召回率评估了TurboQuant在高维向量搜索中相对于最先进方法(PQ和RabbiQ)的效果,该指标测量算法在其top-k近似中捕获真实顶级内积结果的频率。尽管基线使用低效的大码本和特定数据集调优,TurboQuant仍始终实现优于基线方法的召回率(下图)。这证实了TurboQuant在高维搜索任务中的稳健性和效率。
TurboQuant表现出强劲的检索性能,在GloVe数据集(d=200)上相对于各种最先进量化基线实现最佳1@k召回率。
TurboQuant展现了高维搜索的变革性转变。通过为可实现的速度设定新基准,它以数据无关的方式提供近最优失真率。这使我们的最近邻引擎能够以3位系统的效率运行,同时保持更重模型的精度。
TurboQuant、QJL和PolarQuant不仅是实用的工程解决方案;它们是有强理论证明支撑的基础算法贡献。这些方法不仅在实际应用中表现出色;它们在理论上被证明是高效的,并在理论下界附近运行。这种严格的基础使它们对关键的大规模系统稳健且值得信赖。
虽然主要应用是解决像Gemini这样模型中的键值缓存瓶颈,高效在线向量量化的影响甚至更为深远。例如,现代搜索正从关键词发展到理解意图和含义。这需要向量搜索——在数十亿向量的数据库中找到"最近"或语义上最相似项目的能力。
像TurboQuant这样的技术对这一使命至关重要。它们允许以最小内存、近零预处理时间和最先进精度构建和查询大型向量索引。这使谷歌规模的语义搜索更快、更高效。随着AI更深入集成到所有产品中,从大语言模型到语义搜索,这项基础向量量化工作将比以往更加关键。
这一研究方向与谷歌研究员Praneeth Kacham、KAIST助理教授Insu Han、NYU博士生Majid Daliri、谷歌研究员Lars Gottesbüren和谷歌研究员Rajesh Jayaram合作进行。
Q&A
Q1:TurboQuant是什么?它能解决什么问题?
A:TurboQuant是一种先进的压缩算法,专门解决向量量化中的内存开销挑战。它可以在零精度损失的情况下实现大语言模型和向量搜索引擎的大规模压缩,特别适合解决键值缓存瓶颈问题。
Q2:TurboQuant的压缩效果有多好?
A:TurboQuant可以将键值缓存量化到仅3位,无需训练或微调,同时将键值内存大小减少至少6倍。在H100 GPU上,4位TurboQuant相比32位未量化密钥实现高达8倍的性能提升。
Q3:TurboQuant使用了什么核心技术?
A:TurboQuant使用QJL(量化Johnson-Lindenstrauss)和PolarQuant两种核心技术。QJL将向量简化为单个符号位实现零内存开销,PolarQuant通过极坐标转换消除传统方法的内存开销问题。