Training-Free Exponential Extension of Sliding Window Context with Cascading KV Cache

2024年06月24日
  • 简介
    transformer中的上下文窗口为当前任务提供了一种主动记忆,这对于少样本学习和条件生成非常有用,这两者都严重依赖于先前的上下文标记。然而,随着上下文长度的增加,计算成本呈二次增长。最近的研究表明,保存一些初始标记以及固定大小的滑动窗口可以实现基于transformer的大型语言模型的稳定流生成,其复杂度为线性。然而,他们通过简单地从键值(KV)缓存中无条件地驱逐所有标记来使用固定窗口的方式是次优的,这导致标记被遗忘,不能再影响后续的预测。为了克服这个限制,我们提出了一种新的机制,通过保持单独的级联子缓存缓冲区,每个后续缓冲区有条件地接受从前一个缓冲区驱逐的相对更重要的标记的一部分,从而存储更长的滑动窗口上下文,而总缓存大小相同。我们的方法产生了一个动态的KV缓存,可以存储比固定的静态滑动窗口方法更远的过去的标记。我们的实验表明,相对于相同的固定缓存大小,使用LLMs在长上下文生成(LongBench)上提高了5.6%,在流式困惑度(PG19)上提高了1.2%,在语言理解(MMLU STEM)上提高了0.6%。此外,我们提供了一种高效的实现,将KV缓存延迟从每个缓存操作的1.33ms提高到0.54ms,比以前的工作提高了59%的速度。
  • 图表
  • 解决问题
    论文提出一种新的机制来存储更长的滑动窗口上下文,以解决固定窗口大小对于transformer的计算成本增加的问题。
  • 关键思路
    论文提出了一种新的机制,通过保留单独的级联子缓存缓冲区,使每个后续缓冲区有条件地接受从先前缓冲区中驱逐的相对重要的一部分令牌,从而存储更长的滑动窗口上下文。
  • 其它亮点
    论文提出的新机制在长上下文生成(LongBench)、流式困惑度(PG19)和语言理解(MMLU STEM)方面都有所改进,使用相同的固定缓存大小。此外,论文提供了一个高效的实现,将KV缓存延迟从每个缓存操作的1.33ms提高到0.54ms,比之前的工作提高了59%的速度。
  • 相关研究
    最近的相关研究包括使用transformer的few-shot学习和条件生成,以及通过保存初始令牌和固定大小的滑动窗口来实现流式生成的方法。
PDF
原文
点赞 收藏 评论 分享到Link

沙发等你来抢

去评论