数据就是AI的血液,而存储和传输这些数据的效率,直接决定了AI能否跑得快、跑得远。
Google Research团队刚刚推出了一项名为TurboQuant的技术。
![]()
它能把KV缓存6倍压缩、无精度损失、而且推理速度提升8倍。
这项技术不仅解决了困扰业界多年的内存瓶颈问题,更为大语言模型的广泛应用扫清了关键障碍。
AI开发者、研究员和科技分析师们,语气兴奋,认为这是AI效率的重大突破。
![]()
![]()
有人说这是谷歌的DeepSeek时刻。
![]()
甚至导致两家存储芯片巨头股价大跌。
![]()
AI的内存烦恼
要理解TurboQuant的价值,得先从AI模型的工作方式说起。
大语言模型在处理信息时使用一种叫做向量的数据结构。向量就像是给信息打上的数字标签,可以描述简单的东西,比如图表上的一个点;高维向量则能捕捉复杂信息,比如一张图片的特征、一个词语的含义,或者一个数据集的属性。这些向量能够把现实世界的信息转化为计算机可以理解和处理的形式。
这些高维向量非常占内存。一个AI模型需要处理成千上万个这样的向量,每个向量又包含数百甚至数千个数字,内存很快就会被填满。更麻烦的是,AI在运行时需要频繁访问这些数据,于是就出现了一个叫做键值缓存(KV cache)的东西。
键值缓存就像是一个高速的数字便签本,把常用的信息用简单的标签存起来,这样电脑就能瞬间检索到,而不用去翻那个又慢又大的数据库。
问题是,这个便签本本身也很占地方,而且随着AI处理的任务越来越长、越来越复杂,便签本也会越来越大,最终变成卡住AI运转的瓶颈。
当你使用大语言模型处理一篇长文章或者进行长时间的对话时,键值缓存会不断增长,内存消耗也越来越大,最终可能超出硬件的承载能力,导致模型运行变慢甚至崩溃。
向量量化是一种强大的经典数据压缩技术,它能减小高维向量的大小。
这种优化解决了AI的两个关键问题:一是增强向量搜索,这是驱动大规模AI和搜索引擎的高速技术,通过实现更快的相似性查找来提升性能;二是减少键值对的大小,缓解键值缓存的瓶颈,从而实现更快的相似性搜索并降低内存成本。
向量搜索是现代搜索引擎和推荐系统的核心技术,它能在海量数据中快速找到最相似的内容。
然而,传统的向量量化方法通常会引入自己的内存开销。大多数方法都需要为每个小数据块计算和存储量化常数,而且是以全精度存储。
这种开销可能给每个数字增加1到2个额外的比特,部分抵消了向量量化的初衷。本来是为了省空间,结果反而多占了地方,有点像请了一个帮忙整理房间的助手,结果助手自己又带来了一堆整理工具,占了不少地方。这种矛盾让研究人员一直在寻找更好的解决方案。
TurboQuant的巧思
Google团队开发的TurboQuant,就是要从根本上解决这个内存开销问题。他们的方案将在ICLR(International
Conference on Learning Representations,国际学习表征会议)上发表。
这套压缩算法在减小模型尺寸的同时实现零精度损失,非常适合支持键值缓存压缩和向量搜索两种应用场景。
TurboQuant通过两个精妙的步骤实现了几乎无损的高效压缩。
第一步是PolarQuant方法负责的高质量压缩。TurboQuant首先对数据向量进行随机旋转,这个聪明的操作简化了数据的几何结构,让后续的量化器可以独立处理向量的每个部分。随机旋转就像是把一团纠缠在一起的数据打散重新排列,让它们变得更容易处理。
量化器是一种工具,能把一大组连续数值,比如精确的小数,映射到更小的离散符号或数字集合,比如整数。
常见的例子包括音频量化和JPEG压缩。当你把一张高分辨率的照片保存为JPEG格式时,其实就是在进行量化,把原始图片中大量的颜色信息压缩成更少的数字,让文件变小。这一步消耗了大部分的压缩能力,也就是大部分的比特,用来捕捉原始向量的主要概念和强度。
第二步则用剩下的少量压缩能力,仅仅1比特,通过QJL算法处理第一步留下的微小误差。
QJL(Quantized Johnson-Lindenstrauss,量化约翰逊-林登斯特劳斯)算法将在AISTATS会议上发表。
这一步起到了数学误差检测器的作用,消除了偏差,让最终的注意力分数更加准确。注意力分数是大语言模型的核心机制,它决定了模型在处理文本时关注哪些部分。
换个角度看数据
PolarQuant的核心思想其实很好理解,它用一种完全不同的方式来解决内存开销问题。
传统方法用直角坐标来看数据,就像告诉你往东走3个街区,再往北走4个街区。而PolarQuant把数据转换成极坐标,相当于告诉你直接走5个街区,方向是37度角。两种描述方式说的是同一个位置,但极坐标有时能让问题变得更简单。这种坐标转换就像是换了一种语言来描述同样的事情,但新语言更适合解决手头的问题。
PolarQuant使用笛卡尔坐标系将向量转换为极坐标。在极坐标表示中,向量被分解成两个信息:半径表示核心数据的强度,角度表示数据的方向或含义。
因为角度的模式是已知且高度集中的,模型就不再需要执行昂贵的数据归一化步骤。归一化是数据预处理中常见但计算量大的操作,需要把不同范围的数据调整到统一的尺度。
数据被映射到一个固定的、可预测的圆形网格上,边界是已知的,而不是方形网格那样边界在不断变化。这就像是在地图上划定搜索范围,圆形的边界比方形更容易预测和处理。圆形的半径是固定的,只需要一个数字就能确定边界的位置。这样一来,PolarQuant就消除了传统方法必须承受的内存开销,不需要额外存储那些量化常数。
![]()
PolarQuant就像一个高效压缩的桥梁,把笛卡尔坐标的输入转换成紧凑的极坐标速记形式,用于存储和处理。
它的机制是这样的:先把一个d维向量中的坐标两两分组,映射到极坐标系统中。然后半径值也成对收集,进行递归的极坐标转换。这个过程不断重复,直到数据被精炼成一个最终的半径和一组描述性的角度。整个过程就像是在不断提炼数据,把复杂的多维信息逐步简化为更紧凑的形式。
QJL算法则提供了另一种思路。它使用约翰逊-林登斯特劳斯变换来缩小复杂的高维数据,同时保持数据点之间的距离和关系。这是一个数学上的神奇技巧,能够在大幅降低数据维度的同时,几乎不改变数据之间的相对位置关系。每个向量数字被简化为一个符号位,要么是正一,要么是负一。QJL本质上是一种高速速记法,零内存开销。
为了保持精度,QJL使用了一个特殊的估计器,策略性地平衡高精度的查询和低精度、简化后的数据。这让模型能够准确计算注意力分数,也就是决定输入中哪些部分重要、哪些部分可以忽略的过程。注意力机制是大语言模型的核心,它决定了模型如何分配计算资源。通过这种巧妙的设计,QJL能够在极低的存储开销下,保持模型的核心能力不受影响。
数据说话,效果惊人
研究团队对三种算法进行了严格的测试,使用了包括LongBench、Needle In A Haystack、ZeroSCROLLS、RULER和L-Eval在内的标准长上下文基准测试,并在开源的大语言模型Gemma和Mistral上运行。这些测试涵盖了问答、代码生成、摘要等多种任务类型,能够全面评估算法在不同场景下的表现。
![]()
实验数据显示,TurboQuant在内积失真和召回率两个关键指标上都达到了最优表现,同时将键值缓存的内存占用降到最低。内积失真衡量的是压缩前后向量相似度计算结果的变化程度,这个值越小越好,意味着压缩没有破坏数据之间的相对关系。
召回率则反映搜索结果中找到正确答案的能力,这个值越高越好,意味着压缩后的系统仍然能够准确找到用户想要的信息。
在LongBench基准测试中,TurboQuant展示了强大的键值缓存压缩性能。测试是在Llama-3.1-8B-Instruct模型上进行的,涵盖了问答、代码生成和摘要等多种任务。相比各种压缩方法,包括KIVI基线方法,TurboQuant都表现优异。
比特宽度在括号中标明,方便对比不同压缩程度下的性能。结果显示,即使在高压缩率下,TurboQuant依然能够保持接近原始模型的性能水平。
在大海捞针(Needle In A Haystack)这样的长上下文任务中,TurboQuant在所有基准测试中都取得了完美的下游结果。
TurboQuant成功将键值缓存的内存大小减少了至少6倍,而且没有影响模型精度。PolarQuant在这个任务上也几乎是零损失的。
更令人印象深刻的是,TurboQuant能够把键值缓存量化到只有3比特,而且不需要训练或微调,也不会损害模型精度,同时运行速度比原始的大语言模型Gemma和Mistral还要快。
这意味着使用TurboQuant,不需要对原始模型进行任何修改或额外的训练工作,只需要应用压缩算法就能获得显著的性能提升。实现起来效率极高,运行时的额外开销几乎可以忽略不计。
在计算注意力对数方面,TurboQuant展示了显著的性能提升。注意力对数是模型计算注意力分数过程中的中间结果,直接影响模型的推理速度。
![]()
在H100 GPU加速器上,4比特的TurboQuant相比32比特的未量化键值,性能提升了高达8倍。测量是相对于高度优化的JAX基线进行的,JAX是Google开发的高性能机器学习框架。这使得TurboQuant非常适合支持向量搜索等用例,能够大幅加快索引构建过程。
研究团队还评估了TurboQuant在高维向量搜索中的表现,与PQ(Product Quantization,乘积量化)和RabbiQ等最先进的方法进行了对比。
测试使用的是GloVe数据集,维度为200,这是一个广泛使用的词向量数据集,能够测试算法在真实场景下的表现。使用1@k召回率作为衡量标准,也就是看算法在其前k个近似结果中捕获真实顶部内积结果的频率。
![]()
结果显示,TurboQuant始终取得比基线方法更优的召回率,尽管那些基线方法使用了效率低下的大码本和针对数据集的调优。码本是向量量化中用于存储量化中心的表格,通常需要大量内存。TurboQuant能够在不依赖数据集特定调整的情况下,达到最优的检索性能。这证明了TurboQuant在高维搜索任务中的稳健性和效率,能够在各种不同的数据分布上保持一致的优异表现。
TurboQuant为高维搜索带来了变革性的转变,设定了可达成速度的新基准,以数据无关的方式提供近乎最优的失真率。
数据无关意味着算法不需要预先了解数据的分布特征,就能达到良好的压缩效果。这让最近邻引擎能够以3比特系统的效率运行,同时保持更重模型的精度。
TurboQuant可以显著减少内存占用,让模型能够处理更长的上下文,同时保持响应速度。这对于需要处理长文档或进行长时间对话的应用场景尤为重要。
但高效在线向量量化的影响远不止于此。现代搜索正在从简单的关键词匹配,演变为理解意图和含义。这需要向量搜索的能力,也就是在数十亿向量的数据库中找到最相似的项目。TurboQuant让构建和查询大型向量索引成为可能,内存占用最小,预处理时间几乎为零,精度达到最先进水平。
随着AI越来越深入到所有产品中,从大语言模型到语义搜索,这种基础向量量化的研究将变得愈发重要。TurboQuant为高维搜索带来了变革性的转变,设定了可达成速度的新基准,以数据无关的方式提供近乎最优的失真率。
压缩即智能,AI的未来或许会更加轻盈而强大。
参考资料:
https://research.google/blog/turboquant-redefining-ai-efficiency-with-extreme-compression/
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.