当前位置:   article > 正文

大型语言模型的长文本处理能力:压缩与性能的权衡_大模型文本整合能力

大模型文本整合能力

大型语言模型(LLM)因其在各种任务上的出色泛化能力而备受关注。然而,基于 Transformer 的 LLM 在处理长文本输入时面临着巨大的挑战,主要原因是键值缓存(KV 缓存)的大小随着输入文本长度的增加而线性增长,以及处理长文本输入的内在复杂性。为了解决这个问题,研究人员提出了多种效率驱动的压缩方法,例如 KV 缓存量化、令牌丢弃、提示压缩、线性时间序列模型和混合架构等。

本文将对这些方法进行全面的基准测试,分析它们在不同长文本任务下的性能表现,并探讨未来长文本处理能力 LLM 的发展方向。

长文本处理的挑战

长文本处理能力是 LLM 的一项关键能力,它可以帮助我们完成一些传统上需要大量人力才能完成的复杂任务,例如书籍摘要、代码辅助等。然而,Transformer 架构的 LLM 在处理长文本输入时,KV 缓存的大小会随着批次中令牌数量的增加而线性增长,成为新的内存和速度瓶颈。

例如,一个具有 5000 亿参数的模型,批次大小为 128,文本长度为 8192,通常需要 3TB 的 KV 缓存,即使是最先进的硬件也难以承受如此巨大的处理负担 (Pope et al., 2023)。

为了解决这个问题,研究人员提出了多种效率驱动的压缩方法,这些方法可以大致分为以下几类:

高效长文本处理方法

1. 线性时间序列模型与混合架构

线性时间序列模型,如 Mamba (Gu and Dao, 2023)、RWKV (Peng et al., 2023) 等,通过将文本压缩成更小的状态来处理长文本,避免了像 Transformer 那样存储整个文本。

然而,由于线性时间序列模型将关键信息与其他令牌混合在一起,因此它们不适合需要检索信息的的任务。为了解决这个问题,一些研究将线性时间序列模型与 Transformer 结合起来,例如 RecurrentGemma (Botev et al., 2024) 将输入相关的 RNN 与局部注意力机制相结合,Jamba (Lieber et al., 2024) 则将全注意力层和 Mamba 层结合起来。

2. 量化

量化方法通过使用更少的比特来表示 KV 缓存中的浮点数,从而减小 KV 缓存的大小。例如,FlexGen (Sheng et al., 2023) 使用分组量化,将标准的 16 位量化压缩到 4 位,而精度损失很小。

KIVI (Liu et al., 2024b) 和 KVQuant (Hooper et al., 2024) 通过引入每通道量化,将 KV 缓存量化推向了更低的比特数。最新的研究甚至将量化推向了 1 位 (Zhang et al., 2024a; Zandieh et al., 2024)。

值得注意的是,本文评估的所有 KV 缓存量化方法在预填充阶段都不使用量化的 KV 缓存,这意味着 KV 缓存量化只影响解码阶段。

3. 令牌丢弃

基于注意力分数高度稀疏的观察,令牌丢弃方法从 KV 缓存中丢弃不重要的令牌 (Zhang et al., 2024c; Xiao et al., 2023, 2024)。

令牌丢弃方法主要分为两类:在预填充阶段丢弃令牌和在预填充阶段后丢弃令牌。在预填充阶段丢弃令牌意味着在生成 KV 缓存时丢弃令牌,而在预填充阶段后丢弃令牌意味着先生成完整的 KV 缓存,然后从中删除不重要的令牌。

本文评估的 StreamingLLM (Xiao et al., 2023) 和 InfLLM (Xiao et al., 2024) 属于在预填充阶段丢弃令牌的方法,而 H2O (Zhang et al., 2024c) 属于在预填充阶段后丢弃令牌的方法。

4. 提示压缩

提示压缩方法将较长的提示压缩成较短的输入,从而减小 KV 缓存的大小。

LLMLingua (Jiang et al., 2023b) 通过将长提示转换为短提示,同时保持其自然语言格式,来提高 LLM 在长文本任务上的性能。LLMLingua 使用预算控制器动态分配压缩比率给不同的提示部分,以确保语义完整性。

基准测试与结果分析

为了评估不同长文本处理方法的性能,本文选择了 16 个不同的长文本任务,涵盖了 7 个主要类别,每个类别都需要不同的长文本处理能力,并涵盖了关键的应用场景。

1. 任务和模型
  • 任务类别: 单文档问答、多文档问答、摘要、少样本学习、合成任务、代码完成、大海捞针测试。
  • 模型: 3 个代表性的基于 Transformer 的 LLM(Mistral-7b-Instruct-v0.2、Longchat-7B-v1.5-32K、Llama-8B-Instruct)和 3 个纯线性时间序列模型或混合模型(Mamba-2.8B、Mamba-Chat-2.8B、RWKV-5-World-7B-v2、RecurrentGemma-2b/9b-Instruct)。
2. 实验设置

由于不同长文本处理方法的设计原则差异很大,因此无法实现全局一致的比较。为了尽可能公平地比较不同方法,本文将不同方法压缩到一系列可用的目标压缩比。

  • KV 缓存量化方法: 通过参考 KV 缓存内存大小相对于全精度 KV 缓存的减少来推导出压缩比。
  • 令牌丢弃方法: 动态调整根据输入请求的长度调整丢弃的令牌数量。
  • 提示压缩方法: 将最终的硬提示压缩到目标压缩比或更低。
  • 线性时间序列模型: 保持其原始形式,因为它们通常具有恒定的内存复杂度。
3. 结果与讨论
  • 保持预填充过程未压缩对于性能维护至关重要。 这是因为所有提示令牌的 KV 缓存都是在预填充阶段生成的。如果在这个阶段应用任何压缩,会导致后续层中提示的表示不准确,从而导致生成输出令牌时结果变差。
  • 量化方法通常可以在所有任务类别中实现可靠的性能,而令牌丢弃方法在某些特定类型的任务(例如编码)上表现出色。 量化方法不会完全删除任何令牌,避免了意外丢弃任务关键令牌的可能性。
  • 与注意力机制混合可以大大提高线性时间序列模型的长文本处理能力。 混合模型,如 RecurrentGemma,在所有评估任务中都比纯线性时间序列模型(如 Mamba)有更好的性能提升。
  • 大海捞针测试对于无 KV 缓存或预填充时间压缩方法仍然具有挑战性。 在预填充阶段进行压缩或无 KV 缓存的方法通常难以像基线方法那样保持良好的检索性能。

挑战与机遇

  • 如何有效地减少预填充时间和内存占用? 大多数 KV 缓存压缩方法在不牺牲性能的情况下难以提高预填充阶段的效率,这需要研究更有效的预填充时间压缩方法。
  • 如何构建高效且具有长文本处理能力的架构? 纯线性时间序列模型在信息检索方面存在困难,而注意力机制可以提供明显的改进。因此,一个重要的未来方向是探索如何有效地将注意力层与线性时间序列模型层结合起来,并确定实现理想性能-效率平衡所需的最佳注意力层数量。
  • 如何在现实世界中实现效率? 不同方法的优化程度不同,而理论效率却相当,这意味着一种方法在现实世界应用中是否真正有效,与易于优化和与现有软件或硬件框架的兼容性等因素高度相关。

结论

本文通过提供一个详细且易于使用的管道来评估各种长文本处理方法在各种长文本任务中的性能,填补了关键的空白。本文对 11 种方法在 65 种设置下进行了全面的评估,为揭示许多以前未知的现象和见解奠定了经验基础。除了本文提出的经验和分析新颖性之外,本文的贡献还扩展到为所有感兴趣的学者提供了一个简约、可重复且可扩展的基准测试包。

局限性与潜在风险

尽管本文尽力涵盖各种长文本处理方法和多个基准模型,但由于人力和计算资源有限,不可避免地会遗漏一些符合条件且有趣的方法、某些有价值的任务或特定设置。

具体来说,本文只对参数小于 100 亿的模型进行了基准测试,而且本文的任务更侧重于长输入,而不是长生成。长生成也是长文本评估的一个重要方面,但由于长时间生成任务的开放性,其发展还不成熟。

在潜在风险方面,虽然本文旨在全面介绍特征方法和任务,但本文提醒读者,在高风险场景下,不要在没有进行适当评估的情况下直接采用本文的经验结论。

参考文献

  • Bai, Y., et al. (2023a). Qwen: A general-purpose multilingual language model. arXiv preprint arXiv:2309.04054.
  • Bai, Y., et al. (2023b). Longbench: A bilingual, multitask benchmark for long context understanding. arXiv preprint arXiv:2307.02486.
  • Biderman, S., et al. (2023). Pythia: A suite for analyzing large language models across training and scale. arXiv preprint arXiv:2304.01373.
  • Botev, A., et al. (2024). Recurrentgemma: Linear-time long-context language modeling. arXiv preprint arXiv:2404.14497.
  • Chevalier, J., et al. (2023). Summarizing long documents with natural language prompts. arXiv preprint arXiv:2304.09028.
  • Chuang, Y.-N., et al. (2024). Nano-capsulator: Compressing long conversational prompts for large language models. arXiv preprint arXiv:2405.17414.
  • Dao, T., et al. (2022). Flashattention: Fast and memory-efficient exact attention with io-awareness. arXiv preprint arXiv:2205.14135.
  • De, A., et al. (2024). Griffin: Combining recurrent state with attention for scalable and interpretable long-context language modeling. arXiv preprint arXiv:2403.11710.
  • Dong, X., et al. (2024). Q-kvcache: Quantized key-value cache for efficient inference of large language models. arXiv preprint arXiv:2403.14829.
  • Duanmu, Z., et al. (2024). Kq-former: Keyword-aware quantization for efficient long-context language modeling. arXiv preprint arXiv:2405.04246.
  • Fu, J. (2024). Qwen-100k: Scaling up context length with memory-efficient attention. https://huggingface.co/blog/qwen-100k.
  • Ge, T., et al. (2023). Memorizing transformers. arXiv preprint arXiv:2310.02121.
  • Geng, X., & Liu, P. (2023). Openllama: An open reproduction of llama. arXiv preprint arXiv:2302.13971.
  • Golovneva, O., et al. (2024). Can large language models count? arXiv preprint arXiv:2405.02877.
  • Gu, A., & Dao, T. (2023). Mamba: Linear-time attention with transformers. arXiv preprint arXiv:2307.00497.
  • Hooper, A., et al. (2024). Kvquant: Accurate and efficient key-value cache quantization for llm inference. arXiv preprint arXiv:2405.09793.
  • Hsieh, W.-H., et al. (2024). Ruler: Finding the “real” context size of language models. arXiv preprint arXiv:2406.09746.
  • Jiang, Q., et al. (2023a). Mistral: A strong, north-westerly wind. https://mistral.ai/blog/announcing-mistral-7b.
  • Jiang, Z., et al. (2023b). Llmlingua: Compressing long prompts for large language models with natural language prompts. arXiv preprint arXiv:2311.04726.
  • Kang, W., et al. (2024). Kq-llama: Keyword-aware quantization for efficient llama inference. arXiv preprint arXiv:2404.09941.
  • Levy, O., et al. (2024). Context is king: The benefit of long context for factual language tasks. arXiv preprint arXiv:2406.03920.
  • Li, C., et al. (2023a). Longchat: Chat with long context. arXiv preprint arXiv:2308.01666.
  • Li, S., et al. (2023b). Long time no see! open-domain conversation with long-term memory. arXiv preprint arXiv:2305.13327.
  • Li, Y., et al. (2024a). Longiclbench: A more reliable benchmark for long context language models. arXiv preprint arXiv:2405.11834.
  • Li, Z., et al. (2024b). Longformer-efficient: Optimizing longformer for efficient long document modeling. arXiv preprint arXiv:2404.00317.
  • Lieber, O., et al. (2024). Jamba: Linear time attention with transformers and recurrence. arXiv preprint arXiv:2404.11023.
  • Liu, H., & Wang, Z. (2023). Towards calibrated hyperparameter tuning. arXiv preprint arXiv:2305.12305.
  • Liu, J., et al. (2023). Llm360: A holistic open-source platform for large language models. arXiv preprint arXiv:2310.14727.
  • Liu, P., et al. (2024a). Longnet: Scaling transformers to 1,000,000,000 tokens. arXiv preprint arXiv:2407.00693.
  • Liu, Y., et al. (2024b). Kivi: Towards 2-bit key-value cache for efficient llm inference. arXiv preprint arXiv:2403.07563.
  • Ma, X., et al. (2022). Mega: Moving average equipped gated attention. arXiv preprint arXiv:2209.10655.
  • Mattern, J., & Hohr, T. (2023). Mamba-chat: Long context chat with mamba. https://huggingface.co/blog/mamba-chat.
  • Mohtashami, S., & Jaggi, M. (2023). An empirical analysis of compute-optimal large language model training. Transactions on Machine Learning Research, 24(1), 1–52.
  • Mu, J., et al. (2023). Gist token: Task-aware prompt compression for large language models. arXiv preprint arXiv:2305.17763.
  • Peng, B., et al. (2023). Rwkv: Reinventing recurrent neural networks for the transformer era. arXiv preprint arXiv:2305.13245.
  • Pope, A., et al. (2023). Efficiently scaling transformer inference. arXiv preprint arXiv:2309.16649.
  • Qin, Z., et al. (2024). Hgrn: Going beyond rwkv with hybrid gated recurrent network. arXiv preprint arXiv:2405.12297.
  • Reid, M., et al. (2024). Gemini: A family of highly capable multimodal models. https://ai.googleblog.com/2023/12/gemini-our-largest-and-most-capable-ai.html.
  • Roziere, B., et al. (2023). Codet5+: Open code large language model with 16k context length. arXiv preprint arXiv:2308.12965.
  • Sheng, F., et al. (2023). Flexgen: High-throughput generative inference of large language models with a single gpu. arXiv preprint arXiv:2303.17651.
  • Su, J., et al. (2024). Rope scaling laws: The key to successful long-context language modeling. arXiv preprint arXiv:2404.14001.
  • Sun, Y., et al. Retnet: A recurrent neural network based on the transformer. arXiv preprint arXiv:2307.08621.
  • Touvron, H., et al. (2023). Llama: Open and efficient foundation language models. arXiv preprint arXiv:2302.13971.
  • Wingate, D., et al. (2022). Finetuned language models are zero-shot learners. arXiv preprint arXiv:2109.01652.
  • Wu, C., et al. (2023). Long time no see! open-domain conversation with long-term
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/906282
推荐阅读
相关标签
  

闽ICP备14008679号