KVBoost: Chunk-Level Key-Value Cache Reuse with Deviation-Guided Recomputation for Efficient Large Language Model Inference
KVBoost 是一个块级键值(Key-Value)缓存复用系统,它采用双重哈希键值方案和偏差引导的重计算策略,以实现针对大语言模型的高效、位置无关的推理加速,在不损失准确性的情况下显著降低延迟。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
大型语言模型——这些能够编写故事、解决问题并回答问题的强大计算机程序——依赖于一种特定的信息处理方式来理解上下文。当这些模型阅读提示词时,它们不仅仅是看当前的单词;它们会构建一个关于之前所有内容的“心理地图”,以理解各个部分是如何相互契合的。这个被称为键值缓存(key-value cache)的地图对于模型的正确运行至关重要,但创建它的计算成本非常高。每当用户发送请求时,模型传统上必须从头开始重建整个地图,即使该请求包含它之前见过的文本。在许多现实场景中,例如用户针对同一文档提出多个问题,或者系统在每次对话中使用标准的介绍语时,这种重复构建的过程是一种巨大的时间与能量浪费。工程师们面临的核心挑战在于,如何在不损失模型回答准确性的前提下节省这项工作。
一位名叫 Srihari Unnikrishnan 的研究人员开发了一个名为 KVBoost 的系统来解决这个特定问题。该系统旨在识别并复用模型已经创建的部分心理地图,但其方式比以往的方法更加灵活。旧系统只能在重复文本出现在请求的最开头时才能保存工作。如果共享文本被埋在长段落的中间,或者出现在一个独特的提问之后,系统就会忽略它并重新开始。KVBoost 通过将文本分解成细小的、易于管理的块(chunks)来改变这一点。它将每个块视为拼图的一个独立部分,可以独立存储和检索,无论它位于整体句子结构的什么位置。这使得系统能够跳过为任何已被见过的文本块重新创建心理地图的繁重工作,即使这些文本块出现在完全不同的顺序或语境中。
然而,仅仅将预制的心理地图碎片拼接在一起会产生一个新的问题。当两个块被连接时,模型可能会丢失一个块的结尾与另一个块的开头之间的微妙联系,从而导致其对故事流向的理解出现错误。为了解决这个问题,该系统采用了一种巧妙的修复策略。它识别出块与块相遇的具体点,并仅重新计算连接处最关键的部分,而不是重新进行整个计算。这种方法由一种测量模型理解程度偏离预期程度的方法所引导,使其能够将精力集中在真正需要的地方。结果是,该系统能够利用大部分预先计算好的碎片,缝合出一个完整且准确的提示词理解,而只需极小部分的计算量来修复接缝处。
该系统的有效性通过一个拥有 30 亿参数的模型在标准显卡上进行了测试,处理了 1000 个关于代码错误定位任务(即计算机寻找代码中的错误)的不同示例。在这些测试中,新系统生成答案第一个单词的速度几乎是传统从头开始方法的 4.5 倍。与现有的最佳保存工作的方法(该方法仅适用于提示词开头的文本)相比,KVBoost 平均快了 16%。至关重要的是,这种速度提升并没有以牺牲质量为代价;该系统保持了 99.2% 的准确率,这在统计学上与速度较慢的全量重计算方法是无法区分的。该系统还证明了能够高效处理长上下文,其速度优势随着文本长度的增加而增长,对于非常长的输入,速度提升接近 5 倍。
除了速度之外,该系统在设计上也兼顾了实际应用。它包含了允许在计算机内存满时将这些预计算块存储在硬盘上的功能,确保即使在处理海量数据时,缓存依然有用。它还使用了一种压缩存储信息的技术,在不牺牲回答质量的前提下减少所占空间。研究证实,通过将文本内容与其位置解耦,可以在这些模型的运行方式上实现显著的效率提升。研究结果表明,共享文本必须位于提示词开头的严格要求不再是必须的,这为在共享信息出现在对话中任何位置的场景下,实现更快速、更高效的人工智能交互开启了大门。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。