MiniCache:大型语言模型的键值缓存深度维度压缩
在本文中,我们探索了 Key-Value 缓存的低秩特性,并提出了一种压缩 Key-Value 头部的新方法,该方法在最小化压缩误差的同时保持与原始大语言模型相当的性能,为在资源受限环境中更高效的大语言模型部署提供了一种有前途的方向。
Jun, 2024
KCache 技术是一种用于提高大型语言模型推理过程中内存瓶颈问题的技术,通过缓存预先计算的 KV 状态,将热门 LLMs 的吞吐量提高 40%,同时保持准确性。
Apr, 2024
SnapKV 是一种创新且无需微调的方法,它通过选择每个注意力头的重要键值位置来高效地减小键值存储缓存的大小,从而在处理长输入序列时显著降低了计算开销和内存占用,同时保持了与基准模型相当的性能。
Apr, 2024
LLMs 在大文本分析和摘要等需要大上下文窗口的应用中得到越来越广泛的应用,KV 缓存激活成为推断过程中存储器占用的主要贡献者。本研究通过引入新颖的方法对缓存的 KV 激活进行量化,包括:(i)通道关键激活量化,(ii)Rotary 位置嵌入本地化量化,(iii)非均匀 KV 缓存量化,(iv)向量稠密稀疏量化,和(v)Q-Norm。通过将这些方法应用于 LLaMA、LLaMA-2 和 Mistral 模型,我们在 Wikitext-2 和 C4 数据集上使用 3 位量化实现了小于 0.1 的困惑度退化,优于现有方法。我们的方法使得在单个 A100-80GB GPU 上可以为 LLaMA-7B 模型提供长达 100 万的上下文长度,而在 8-GPU 系统上可以提供长达 1000 万的上下文长度。
Jan, 2024
通过自适应 KV 缓存压缩的插拔式方法,我们引入了一种减少大型语言模型(LLM)生成推理内存占用的方法。通过有针对性的分析注意力模块的内在结构,我们构建自适应 KV 缓存:针对局部上下文的注意力头强调接触范围短的上下文,针对特殊标记的注意力头中心化的丢弃非特殊标记,只有广泛关注所有标记的注意力头才使用标准 KV 缓存。此外,通过轻量级的注意力分析引导自适应 KV 缓存的构建,FastGen 不需要资源密集的微调或重新训练。在各种场景的实验中,FastGen 在 GPU 内存消耗方面显著减少,同时几乎没有生成质量损失。我们将发布用于重现的代码和兼容的 CUDA 内核。
Oct, 2023
通过压缩键值缓存并保留关键上下文,提出了一种名为 PyramidInfer 的方法,以提高大型语言模型在 GPU 内存使用和推理速度方面的可扩展性。实验结果显示 PyramidInfer 相比 Accelerate 方法,在增加 2.2 倍的吞吐量的同时减少了 54% 的 GPU 内存占用。
May, 2024
ZipCache 是一种用于 LLMs 的准确而高效的 KV 缓存量化方法,通过通道可分离的逐标记量化方案可显著减少量化参数的内存开销,并通过考虑注意力矩阵的下三角特性提出了规范化注意力分数作为识别重要标记的有效度量,以获得更高的压缩比,同时提供了快速生成速度和最小性能损失。
May, 2024
通过实验证明,即使通过减少精度量化保存被清除的 KV 对中的一小部分信息,也能大大恢复引起的退化;同时,对于重要的 KV 对,必须保留较高的精度以确保生成质量。基于这些观察,我们提出了一种可靠的缓存压缩方法,即混合精度 KV 缓存(MiKV),通过将被清除的 KV 对保留在低精度以保留上下文细节,并通过将重要的 KV 对保留在高精度来确保生成质量。与其他基准相比,我们的方法在多种基准和 LLM 骨干上提供了一个最先进的压缩比和性能的权衡。
Feb, 2024
提出了一种新的方法,只计算和缓存少量层的键值以大幅节省内存消耗并提高推理吞吐量。在大型语言模型上的实验证明,该方法的推理吞吐量比标准 Transformer 高 26 倍,同时在语言建模和下游任务中具有竞争性能。此外,该方法与现有的 Transformer 节省内存技术正交,因此可以轻松将它们与我们的模型集成,进一步提高推理效率。
May, 2024
通过整合一个(几乎不消耗)常量大小的缓存与基于驱逐策略的缓存方法,提出了 LESS,以在过去的解码步骤中查询所有标记。它在时间上保留信息的能力可在多种任务中展现出优点,帮助降低性能差距和提高效率。
Feb, 2024