本文来自至顶网(ai.zhiding.cn),来源:Arstechnica。
谷歌研究团队最新发布的TurboQuant压缩算法,能够在保持准确性的同时大幅减少大语言模型的内存占用并提升运行速度。该算法通过PolarQuant技术将向量坐标从标准XYZ坐标转换为极坐标系统,并结合量化约翰逊-林登施特劳斯技术进行误差修正。测试结果显示,该算法可将键值缓存的内存使用量减少6倍,性能提升8倍,且无需额外训练即可应用于现有模型。
即使你对生成式AI模型的内部工作原理了解不多,你也可能知道它们需要大量内存。因此,目前几乎不可能买到便宜的内存条。谷歌研究院最近发布了TurboQuant,这是一种压缩算法,能够在减少大语言模型内存占用的同时提升速度并保持准确性。
TurboQuant旨在减少键值缓存的大小,谷歌将其比作"数字小抄",用于存储重要信息以避免重复计算。这个"小抄"是必要的,因为正如我们经常说的,大语言模型实际上并不真正"知道"任何事情;它们通过使用向量来模拟知识,这些向量映射了标记化文本的语义含义。当两个向量相似时,意味着它们在概念上具有相似性。
高维向量可能包含数百或数千个嵌入,能够描述复杂信息,如图像中的像素或大型数据集。但它们也占用大量内存并增加键值缓存的大小,从而影响性能。为了使模型更小更高效,开发者采用量化技术以降低精度运行模型。缺点是输出质量会下降——Token估计的质量会降低。通过TurboQuant,谷歌的早期结果显示,在某些测试中性能提升了8倍,内存使用量减少了6倍,且没有质量损失。
角度和误差处理
将TurboQuant应用于AI模型是一个两步过程。为了实现高质量压缩,谷歌设计了一个名为PolarQuant的系统。通常,AI模型中的向量使用标准XYZ坐标编码,但PolarQuant将向量转换为笛卡尔系统中的极坐标。在这个圆形网格上,向量被简化为两部分信息:半径(核心数据强度)和方向(数据含义)。
谷歌提供了一个有趣的现实世界类比来解释这个过程。向量坐标就像方向,传统编码可能是"向东走3个街区,向北走4个街区"。但使用笛卡尔坐标,它只是"沿37度方向走5个街区"。这样占用更少空间,并节省了系统执行昂贵的数据标准化步骤。
PolarQuant负责大部分压缩工作,第二步则清理粗糙部分。虽然PolarQuant很有效,但可能产生残留误差。谷歌提出使用量化Johnson-Lindenstrauss(QJL)技术来平滑这些误差。这为模型应用了1位错误修正层,将每个向量减少到单个位(+1或-1),同时保留描述关系的基本向量数据。结果是更准确的注意力分数——这是神经网络决定哪些数据重要的基本过程。
这些数学方法真的有效吗?谷歌表示,他们使用Gemma和Mistral开源模型在一系列长上下文基准测试中测试了新的算法压缩。TurboQuant在所有测试中都取得了完美的下游结果,同时将键值缓存中的内存使用量减少了6倍。该算法可以将缓存量化至仅3位,无需额外训练,因此可以应用于现有模型。在英伟达H100加速器上,使用4位TurboQuant计算注意力分数比32位未量化键快8倍。
如果实施,TurboQuant可以让AI模型运行成本更低,对内存的需求更少。然而,创造这项技术的公司也可能利用新释放的内存来运行更复杂的模型。这可能是两者的结合,但移动端AI可能会看到更多好处。考虑到智能手机的硬件限制,像TurboQuant这样的压缩技术可以在不将数据发送到云端的情况下提高输出质量。
Q&A
Q1:TurboQuant是什么?它能做什么?
A:TurboQuant是谷歌研究院开发的AI压缩算法,能够在保持准确性的同时减少大语言模型的内存占用并提升运行速度,在某些测试中实现了8倍性能提升和6倍内存减少。
Q2:PolarQuant技术如何工作?
A:PolarQuant将传统的XYZ坐标编码的向量转换为极坐标,将向量简化为半径和方向两部分信息,就像把"向东走3个街区,向北走4个街区"简化为"沿37度方向走5个街区",从而节省内存空间。
Q3:TurboQuant对移动设备有什么意义?
A:考虑到智能手机的硬件限制,TurboQuant这样的压缩技术可以在不将数据发送到云端的情况下提高AI模型输出质量,让移动端AI应用更加高效。
