FibQuant: Universal Vector Quantization for Random-Access KV-Cache Compression
本文介绍了 FibQuant,这是一种通用的向量量化方法,它用专为旋转 KV 缓存向量的球面 -Beta 分布定制的共享径向 - 角向码本取代了标量编解码器,与现有的标量方法相比,在最小化困惑度退化的同时实现了显著更高的压缩率。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象你正在运营一个庞大且高速的图书馆,一位机器人图书管理员(即人工智能)正试图创作一个故事。为了保持故事的连贯性,管理员必须记住它迄今为止写下的每一个字。这种“记忆”被称为KV 缓存。
随着故事变长,管理员的记忆书架变得巨大无比。事实上,对于非常长的故事,记忆书架变得如此之大,以至于占用的空间超过了管理员实际规则手册(即模型权重)所占的空间。这造成了交通堵塞:管理员将所有时间都花在从书架上取书,而没有时间真正去写故事。
问题:“一刀切”的收缩包装
为了解决这个问题,工程师们尝试缩小书架上的书籍。他们开发了一种名为TURBOQUANT的方法(这是之前的最佳方案)。
可以将 TURBOQUANT 理解为:
- 测量书籍:他们测量书籍的“厚度”(即其范数)。
- 旋转它:他们随机旋转书籍,使文本朝向新的方向。
- 收缩它:他们尝试通过一次查看一页并压缩该单页来缩小书籍。
缺陷:这种方法将书籍视为每一页都是独立的。但事实上,页面是相互连接的。当你旋转一本书时,页面会形成一个特定的三维形状(像一个球体)。通过逐页查看,TURBOQUANT 忽略了整本书的优美几何结构。这就像试图通过将球体的宽度单独考虑而忽略其高度和深度,从而将一个圆形的沙滩球塞进一个方形盒子里。
解决方案:FIBQUANT(“智能包装”方法)
本文的作者FIBQUANT意识到,由于管理员随机旋转书籍,数据的“形状”始终相同:一个球形。
FIBQUANT 不是逐页收缩书籍,而是一次性查看成组的页面(块)。它将数据视为一个需要高效打包的三维物体。
以下是 FIBQUANT 的工作原理,使用一个简单的类比:
1. “向日葵”图案(几何学)
想象你在一个圆形的向日葵花盘上播种。如果你将种子种成直行的行列,你会在角落浪费空间。但如果你按照螺旋形(就像向日葵的自然图案)种植,你可以在没有浪费空间的情况下容纳最大数量的种子。
- FIBQUANT使用一种数学上的“向日葵螺旋”(称为斐波那契螺旋)来排列其数据点。这使得它能够比旧的“直排行列”方法更紧密地打包“书籍”。
2. “通用地图”(无需校准)
通常,为了完美地收缩数据,你需要先研究你要收缩的特定书籍(校准)。
- FIBQUANT的特殊之处在于,它知道任何书籍一旦被随机旋转,看起来都像是一个球体。因此,它对每本书、每一层和每一个故事都使用单一、通用的地图(代码本)。你不需要为每一个新故事重新学习地图。
3. “分数位”魔法(突破极限)
旧方法只能按整数收缩数据(例如 1 位、2 位、3 位)。如果你需要再稍微收缩一点,你就束手无策了。
- FIBQUANT可以按分数收缩数据(例如 1.5 位、0.5 位)。这就像拥有一把可以测量毫米而不仅仅是英寸的尺子。这使得系统能够适应其他方法根本无法进入的非常狭窄的内存空间。
结果:发生了什么?
作者在两个著名的人工智能模型(GPT-2 和 TinyLlama)上测试了这种方法。
- “内存与质量”的权衡:他们发现,FIBQUANT 可以将内存压缩到原始大小的34 分之一,而人工智能仍然几乎完美地理解故事(与原始版本 95% 相似)。
- 超越竞争:在极端压缩水平下(内存极小),旧方法(如 TURBOQUANT)开始让人工智能听起来困惑或胡言乱语。FIBQUANT 则保持了人工智能的聪明才智。
- “亚一位”区域:最令人印象深刻的是,FIBQUANT 即使在数据被压缩到每条信息少于 1 位时也能工作。旧方法甚至无法在这个区域运作;它们直接放弃了。FIBQUANT 继续前进,在不破坏人工智能“大脑”的情况下挤出更多内存。
总结
FIBQUANT是一种压缩人工智能内存的新方法。
- 旧方法:一次查看一块数据,忽略其形状。
- FIBQUANT:查看数据块,识别它们形成球体,并使用完美的“向日葵”图案进行打包。
它使人工智能能够在不耗尽内存的情况下记住更长的故事,并且即使在内存极小的情况下也能工作,同时无需为每个新任务重新训练。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。