长上下文是人工智能模型(尤其是大型语言模型)的一种属性,使其能够从非常大的输入序列(通常从100,000到超过100万令牌)中考虑并生成文本。这一能力对于分析整本书籍、处理冗长的法律或科学文档,以及在长时间交互中维持连贯对话等任务至关重要。长上下文模型的发展涉及架构创新、训练技术和基础设施改进,但也引入了研究人员持续应对的特定失败模式。
在Transformer架构中,自注意力机制相对于序列长度具有二次复杂度,使得长上下文在计算上代价高昂。早期模型如2017年引入的原始Transformer,其上下文窗口有限,通常只有几千个令牌。截至2024年,诸如OpenAI、Anthropic和Google DeepMind等公司的模型支持100,000到100万或更多令牌的上下文窗口,从而在文档分析和复杂推理方面实现了新的应用。
上下文窗口的演变
大型语言模型中上下文窗口的进展十分迅速。GPT-2(2019年)支持1,024个令牌,而GPT-3(2020年)增加到2,048个令牌。2023年,像GPT-4 Turbo这样的模型提供了128,000个令牌,Anthropic的Claude 2.1达到了200,000个令牌。到2024年,Google DeepMind的Gemini 1.5 Pro展示了高达100万令牌的上下文窗口,一些研究模型甚至探索了更大的尺寸。这一增长由硬件进步(如AWS Trainium和Google Cloud TPU)以及注意力机制算法改进共同推动。
扩展上下文的技术
已经开发了几种技术来将上下文窗口扩展到原始训练长度之外。一种常见的方法是位置编码插值,模型调整位置编码以处理更长的序列。例如,ALiBi(带线性偏置的注意力)和旋转位置嵌入(RoPE)等方法允许模型泛化到更长的上下文。另一种技术是滑动窗口注意力,其中每个令牌仅关注局部邻域,从而降低计算成本。稀疏注意力模式(如Longformer和BigBird模型中使用的)选择性地关注重要令牌而忽略其他令牌。此外,分层方法通过总结或压缩上下文的早期部分来维持全局视图。
基础设施与硬件
支持长上下文需要大量的内存和计算资源。Transformer模型中的键值缓存随序列长度线性增长,对于100万令牌,这可能消耗数GB的内存。硬件提供商如NVIDIA(尽管不在提供的列表中,但注意AMD和Intel也相关)以及云平台如Amazon Web Services、Azure和Oracle Cloud提供具有高内存带宽的专用实例。Groq和SambaNova开发了加速长序列推理的定制芯片。高效的内存管理技术,如vLLM中使用的PagedAttention,有助于减少内存浪费并提高吞吐量。
应用
长上下文模型支持一系列应用。在法律和金融领域,它们可以一次性分析整个合同或年度报告。在科学研究中,它们可以处理全文论文和补充材料。对于对话式AI,长上下文允许聊天机器人在多轮对话中记住较早的部分。在软件工程中,模型可以审查整个代码库或长日志文件。例如,Anthropic的Claude可以处理整本圣经或哈利·波特系列的全部文本,而Google DeepMind的Gemini已被用于通过将帧作为令牌处理来分析数小时的视频。
失败模式
尽管取得了进展,长上下文模型仍表现出特定的失败模式。一个主要问题是“中间丢失”问题,即模型倾向于忽略长上下文中间的信息,而专注于开头和结尾。这在2023年由斯坦福AI实验室等研究人员的一项研究中得到记录。另一个失败是注意力退化,模型的注意力变得分散或过度集中在少数令牌上,导致错误。上下文压缩也可能导致信息丢失,尤其是在模型总结早期部分时。此外,计算成本和延迟随上下文长度增加,使得实时应用具有挑战性。截至2025年,这些问题仍是活跃的研究领域,指令调整和检索增强生成等技术正在被探索作为缓解措施。
评估与基准
为了评估长上下文能力,研究人员开发了诸如LongBench等基准,其中包括长文档上的问答、摘要和代码补全等任务。其他基准如HELMET(长上下文评估)和“大海捞针”测试(模型必须在长上下文中检索一个特定事实)也常用。这些基准揭示,尽管模型可以处理长输入,但随着上下文长度增加,其性能往往会下降,特别是在需要精确回忆的任务中。
未来方向
未来研究旨在提高长上下文的效率和可靠性。线性注意力(将复杂度降低到O(n))和状态空间模型(如Mamba)等技术为Transformer提供了替代方案。记忆增强网络和外部检索系统可以在不增加窗口大小的情况下扩展有效上下文。随着硬件持续进步,像TSMC这样的公司制造具有更大内存容量的芯片,上下文长度的实际限制可能会进一步增长。然而,确保模型真正理解并利用长上下文仍然是机器学习和人工智能中的一个开放挑战。
相关概念
长上下文与位置编码、多头注意力和Transformer (architecture)架构密切相关。它也与生成式AI和深度学习更广泛地交叉。理解长上下文需要了解神经网络的训练和推理,以及当前大型语言模型的局限性。