跳至主要内容

大型语言模型的上下文窗口是什么?

了解 AI 的上下文窗口。理解令牌上限如何运作、注意力成本为何按比例增长,以及如何用 RAG 克服内存限制。
Srujana Maddula
Srujana Maddula

创建您的免费账户

实践并学习路径你的进步。

使用 Google 继续继续即表示您接受我们的 使用条款,我们的 隐私政策 ,并且您的数据存储在美国。

想象您在给朋友讲一个很长的故事,但当说到笑点时才发现他们已经忘了开头。这种挫败感,正是当 AI 的“短期记忆”耗尽、不得不丢弃关键信息以腾出空间时会发生的事情。

在大型语言模型(LLM)的世界里,这种注意力跨度由上下文窗口来定义。

随着模型变得更强、上下文更大,理解这些窗口如何工作,便成为构建可靠、可扩展 AI 系统的关键。在本指南中,我们将介绍上下文窗口的基础知识、扩展它们的权衡,以及有效使用它们的策略。

若想走出理论,学习如何在真实的 Python 应用中管理上下文限制,请查看我们的课程 Developing LLM Applications with LangChain。

什么是上下文窗口?

AI 模型的上下文窗口决定了它在生成回答时,工作记忆中可容纳的文本量。它限制了在不遗忘早期交互细节的情况下,一次对话能持续多长。

您可以将其视为人类的短期记忆。它会暂时存储先前对话中的信息,用于当前任务。

Active context window and forgotten context

上下文窗口会影响诸多方面,包括推理质量、对话深度,以及模型有效个性化回复的能力。它还决定了模型一次能处理的最大输入规模。当提示或对话上下文超出该上限时,模型会截断(切掉)最早的文本部分以腾出空间。

为了更清楚地理解其含义,我们来看看 AI 模型和上下文窗口背后的几个基本概念。

上下文窗口的相关概念

LLM 的三大核心概念是:分词(tokenization)、注意力机制(attention mechanism)和位置编码(positional encoding)。

分词(Tokenization)

分词是将原始文本转换为一系列更小单元(令牌,token)的过程,以便 LLM 进行处理。这些令牌可以表示完整单词、单个字符,甚至是部分音节。模型能够识别的全部唯一令牌统称为其词表(vocabulary)。

例如,句子“Hello, world”可能会被分词为 [“Hello”, “,”, “ world”]。

在训练或推理过程中,每个令牌会被映射为一个唯一整数,模型读取的是这些数字而非原始文本。它会分析这一数值序列,学习令牌之间的关系,并通过预测下一个最可能的令牌来生成新文本。

高效的分词对能装进模型上下文窗口的信息量影响很大。当分词器能用更少的令牌表示文本时,更多内容就能装进同一个窗口。

能将常见词或短语表示为单个令牌的分词器尤其有效,因为它们能减少令牌数量,使模型在上下文限制内处理更长的文档。

Text to Attention Process: Tokenization, Embedding, Attention Mehanism

注意力机制

所谓的注意力机制是现代 LLM 的另一基础。它帮助模型在生成输出时聚焦输入中最相关的部分。

模型并不会一视同仁地看待每个令牌,而是将当前表示与序列中的所有其他令牌表示进行比较,并为每次比较分配一个得分。这种选择性加权让模型能够处理长序列,更有效地理解上下文。

注意力由三个组件构成:查询(Query)、键(Key)和值(Value)。

  • 查询(Queries):当前令牌向序列其余部分发出的“搜索”信号,以查找相关信息。

  • 键(Keys):序列中每个令牌的标识符,用于确定其与搜索信号的匹配程度。

  • 值(Values):当查询与键匹配时被检索并使用的实际信息内容。

模型会计算查询与键之间的相似度分数,使用Softmax 激活函数将这些分数转换为权重,然后将值按权重求和得到最终输出。

自注意力会将当前令牌与序列中的每个令牌进行比较,这会产生二次方的计算成本:若将上下文窗口加倍,所需的计算与内存便会增加至四倍。

随着上下文窗口扩张,成本会迅速升高,因此模型会依赖稀疏注意力、低秩近似或分块等优化来控制计算量。

位置编码

Transformer(驱动现代语言模型)并不天然理解令牌顺序,而是依赖位置编码来融入位置信息。

位置编码会为每个令牌添加一个小的信号,帮助模型理解距离与相对位置关系。

具体的位置信息方法也决定了模型在序列中能可靠追踪关系的距离,从而决定上下文窗口的大小和有效性。下面比较几种常见方法:

  • 绝对位置嵌入:模型为序列中的每个位置学习一个独立向量,就像给每个令牌分配一个固定地址。它适用于短序列,但无法处理超出训练范围的位置,因而难以扩展上下文窗口。

  • 正弦位置编码:使用重复的正弦和余弦波来编码位置,使每个令牌根据其位置拥有唯一的模式。与绝对嵌入相比,它对未见长度的泛化更好,但在极长序列中会变得不够稳定。

  • 相对位置编码:不标注精确位置,而是学习令牌之间的距离。这有助于泛化到更长序列,但整体上下文上限仍取决于模型的架构与内存。

  • 旋转位置嵌入(RoPE):RoPE 通过基于绝对位置旋转每个令牌的向量表示,并计算与其他令牌的距离来编码位置。该方法在序列变长时保持稳定,支持更大的上下文窗口。

  • ALiBi(Attention Linear Biases):在注意力机制中应用基于距离的简单偏置,使更近的令牌自然获得更高权重。它在长序列中具有良好的可扩展性。

建议您查看这篇关于Transformer 工作原理的教程以获取更详细的概览。

上下文窗口的演进

如果上下文超过上下文窗口,模型可能会截断或忽略最早的部分,从而丢失重要信息。这就是研究人员不断尝试新技术、推动这些边界并实现更长上下文窗口的原因。

专有模型

直到 2022 年,OpenAI 的 GPT 模型一直占据主导地位。2018 年发布的首个 GPT 模型支持 512 令牌窗口。接下来在 2019 和 2020 年的两个版本各将该上限翻倍,GPT-3 达到 2,048 令牌。后续模型不断扩展边界,最高达到 100 万令牌(GPT-4.1)。

近来,OpenAI 已被竞争对手追平甚至超越。Google 的 Gemini 2.5 和 3 Pro 版本将窗口大小同样提升至多达一百万令牌,使一次性处理整本书、大型代码库和多文档工作负载成为可能。

Anthropic 的 Claude Sonnet 4.5 系列目前也在测试同样规模的上下文窗口(测试版),从最初的 20 万令牌扩展而来。

开源模型

Llama、Mistral 等开源模型家族通常处于 10 万至 20 万令牌范围,在保持可本地部署或微调的前提下,提供可观的长上下文性能。

值得注意的例外包括 Llama Maverick,支持 100 万令牌窗口,面向跨长文档的一般性推理。而 Llama Scout 则进一步突破,达到惊人的 1,000 万令牌容量,专为一次性处理整个代码库或法律档案而设计。

规模与精度

然而,就在本周发布的 GPT-5.2 显示出策略上的转变。OpenAI 没有一味追求无限上下文,而是将其最新旗舰限制在 40 万令牌窗口,以“完美回忆”和更强推理能力换取纯粹的规模,避免大型模型常见的分心问题。

上下文窗口大小的差异会影响模型在真实工作流中的表现。扩展的上下文窗口能提升模型的准确性、一致性和长程推理能力,但也需要更多计算,并且更依赖谨慎的上下文选取。

中等规模的模型更高效,仍能处理长文档与较长对话,但面对超大输入时需要合理的结构化处理。

扩展上下文窗口的应用方式

以下用例展示了大上下文窗口模型在真实应用中的优势。

真实世界的应用

当模型有足够空间一次性容纳完整报告、转录、代码库或论文时,它可以跟踪模式、连接远距细节,并从始至终保持连贯理解。这带来了众多应用领域:

  • 法律:大窗口使模型能够分析完整合同、对比多份文档中的条款,并跟踪隐藏在长文档中的引用。

  • 医疗:团队可以审阅冗长的临床指南、患者病史或多研究数据集,同时保留小窗口会遗漏的重要上下文。

  • 科研:大窗口模型能一次性阅读完整论文与综述,并揭示只有在通篇可见时才会浮现的联系。

对话式 AI

更大的上下文窗口让对话式 AI 更自然,因为模型能记住更多对话内容,而不至于遗忘更早的消息。

在客户服务中,这带来了更顺畅、更个性化的互动。模型可以利用过往偏好和先前对话,给出更准确、相关的回复。

多模态推理

扩展上下文窗口通过为文本、音频和视觉提供足够的共同空间,支持跨模态的复杂推理,而非将它们各自独立处理。

当完整转录、视觉帧和相关文字资料都能装入同一窗口时,模型可以跨格式对比细节、跟踪关系,并构建统一的上下文理解。

这消除了在必须分块或摘要时出现的信息缺口,并允许模型一次性对整个输入集合进行推理。

扩展上下文窗口中的挑战

大上下文窗口解锁了强大的模型能力,但随着输入规模增长,也带来了新的性能挑战。即便是先进模型,也难以在极长序列中保持完美的注意力分配,因此并不总能像您期望的那样可靠地使用上下文的每个部分。

“中间丢失”现象

长上下文模型的常见问题之一是“中间丢失”效应。模型通常能较好地记住长序列的开头和结尾,但经常会遗漏或忽视埋在中间的重要细节。这可能导致答案变弱,即使完整上下文都在。

针对重要任务,合理地组织输入有助于避免这一问题。这意味着将内容拆分为清晰的部分,或重复关键点,以免模型忽略它们。

计算成本

随着上下文窗口变大,成本会快速增加。每增加一个令牌,都会扩大注意力计算规模,从而提高推理时间、GPU 内存需求以及整体系统负载。

为此,需要更有效的方式向模型提供信息。诸如选择性检索、分级分块或快速摘要等技术有助于保持输入更小,避免模型超载。

隐私顾虑

大窗口也带来了安全与隐私方面的担忧。提供更多输入,意味着暴露敏感数据的概率更高。

因此,团队需要完善的数据处理规范、脱敏步骤和访问控制,以确保大上下文窗口不会带来新的风险。

质量下降

在很多情况下,不必要或关联度低的信息会增加模型的认知负荷,提升幻觉与错误模式的风险。冗长输入也会引入噪声,扭曲模型对任务的理解。

在实践中,高质量表现往往源于精心策划的上下文,确保模型看到的是正确的信息,而非仅仅是更多的信息。

优化上下文窗口的使用

可采用多种方法以最优化地使用上下文窗口,其中包括检索增强生成(RAG)、上下文工程、分块与模型选型。

检索增强生成

检索增强生成(RAG)的工作方式是:在需要上下文时,从外部数据库中提取附加信息并提供给模型。

RAG 并不会把整份文档塞进上下文窗口,而是将所有内容分别存储,仅检索与当前问题相关的部分。这既保持上下文精简,又能让模型获取所需信息。

Comparison of RAG vs. a giant context window

其具体做法是使用嵌入或向量搜索来找到最相关的片段,并以干净、结构化的方式把这些片段发送给模型。这样通过引入训练数据之外的相关信息来提高准确性。

上下文工程

上下文工程的重点是提供相关信息,而不是用不必要的细节压垮模型。有效策略包括对长文档进行分段、总结价值较低的部分,并使用轻量级预处理来突出要点。

语义搜索可帮助识别与当前查询相关的文本。您还可以通过将关键信息移到上下文的开头或结尾来改进结果,因为模型更容易记住这些位置。

分块与分段

分块会将长文档拆分为更小且连贯的部分。其思想是基于主题、结构或所支持的任务来对内容进行归组。

这能保持每个块的连贯性,帮助模型集中注意力,而不是迷失在巨大文本块中。若想了解更多,欢迎查看这篇关于高级分块策略的文章。

语义分块会将具有相似含义的句子归为一组,而不是在任意字符限制处切分。它会在自然的断点(如话题切换、段落过渡或节标题)进行拆分。

基于任务的分块更进一步,会围绕您试图回答的具体问题来组织每个块。这样每一部分仅包含与该任务真正相关的信息。

模型选型

涉及整篇文档分析、多文件推理或长时对话的任务,适合使用上下文窗口在 20 万至 100 万范围的模型。对于更聚焦的任务,如摘要、代码审查或短问答,10 万至 20 万范围的模型通常在速度、成本与准确性之间提供更佳平衡。

更小的窗口在强大的检索系统加持下仍能有出色表现。优秀的RAG 系统或 Model Context Protocol(MCP) 可以按需拉取正确的信息,使模型无需把一切都装进记忆。

上下文窗口趋势

在收尾之前,让我们看看与上下文窗口相关的技术正走向何方。

动态上下文窗口

未来的模型架构正从固定大小窗口转向动态上下文窗口。

研究者正在探索将 Transformer 的优势与新的长程记忆系统相融合的方法,从而让模型在不只依赖注意力机制的情况下,进行存储与回忆。

这些架构通过从静态上下文窗口转向会随任务增长的动态记忆层,来突破当下的限制。

具备上下文感知的记忆系统

记忆系统也是创新的另一个方向。未来的模型预计会更多依赖超越单次会话、可随时间提供连续性的上下文感知记忆系统。

这些系统不会把每次对话都当作重新开始,而是将关键偏好、过往决策和反复出现的主题存储在结构化的记忆层中,并在相关时予以调用。

这会将个性化从被动转为主动,让模型更全面地理解用户,并以更高的一致性支持长周期目标。

RAG 的增强

外部检索也在演进。目前,RAG 的工作方式类似搜索引擎,将相关文本拉入提示中。诸如纠错检索增强生成(CRAG)等高级版本已经出现,但这只是开始。

未来,检索将更像内建能力,几乎就像模型拥有自己的外部记忆。它们会在最少用户干预下,自动收集、压缩并再次呈现信息。

持久化记忆

持久化记忆也将改变我们与 AI 的交互方式。模型不会在会话结束后把一切都忘掉,而是会在数天、数周甚至数月间记住重要细节。随着它了解您的风格、习惯与优先级,它可以提供更贴合、更有帮助的回应,而无需您反复重述。

工具如 Mem0 已经在开创这一方法,充当应用与 LLM 之间的专用记忆层。不过展望未来,我们预计这些能力会更多地直接内置于模型架构中,而非依赖外部层。

结论

更大的窗口解锁了全新的强大工作流,但当上下文超载时,也会带来注意力分配挑战、更高计算成本与质量风险。因此,战略性地管理上下文至关重要。

诸如检索增强、语义分块与上下文工程等技术,能在能力不断扩展的同时,帮助模型保持专注、高效与可靠。

展望未来,最佳的 LLM 系统将结合智能工具与对上下文如何影响推理的深刻理解。通过应用这些原则,团队既能获得长上下文模型的优势,也能为进一步突破上下文边界的下一代架构做好准备。

将您的 Python 基础更进一步,参加 Developing Large Language Models 技能路径。该路径旨在引导您从基础代码出发,构建并微调您自己的强大 AI 应用。

常见问题:上下文窗口

当上下文窗口已满会发生什么?

当上下文窗口达到上限时,模型会丢弃最早的令牌。这意味着较早的消息或细节会被“移除”,以便为新的内容腾出空间。

20 万令牌的上下文窗口有多大?

20 万令牌的上下文窗口意味着模型可以一次摄入约 200,000 个令牌。大致相当于约 500 页文本。

哪个 LLM 的上下文窗口最大?

目前,Llama Scout 以高达 1,000 万令牌的窗口保持纪录。Google 的 Gemini 1.5 Pro 也提供了大容量(最高 200 万令牌),其他许多旗舰模型通常在 200,000 至 1,000,000 令牌之间。

我可以用大上下文窗口的模型处理小任务吗?

可以,但可能并不经济。许多小型任务在小上下文窗口的模型上运行得更快、成本更低。

更大的上下文窗口能减少幻觉吗?

更大的上下文窗口有助于减少幻觉,但并不保证。如果向模型提供无关或嘈杂文本,仍可能出现幻觉。精心策划的上下文比规模本身更重要。

Srujana Maddula

作者

Srujana Maddula

Srujana 是一名自由职业技术写作者,拥有计算机科学四年制学位。她擅长撰写各类主题的内容,包括数据科学、云计算、开发、编程、安全等众多领域。她热爱经典文学,也喜欢探索新的旅行目的地。

主题