跳到主内容

上下文窗口是怎么从 2K 涨到百万的?

2026-10-29 发布 来源:我告诉你AI导航 阅读

今天用 AI 读一本几十万字的书、一次贴进几百页文档,已属平常;倒回几年前,模型一次能记住的文本只有两千个 token 上下,超过就丢开头。从 2K 到百万 token,这条曲线不是一家模型独有的进步,而是注意力机制、工程优化与训练...

今天用 AI 读一本几十万字的书、一次贴进几百页文档,已属平常;倒回几年前,模型一次能记住的文本只有两千个 token 上下,超过就丢开头。从 2K 到百万 token,这条曲线不是一家模型独有的进步,而是注意力机制、工程优化与训练方法轮流突破的结果。这篇按公开资料梳理:2K 的起点在哪里,硬约束卡在哪,三条突破路线各做了什么,数字细节以各模型公开资料为准。

2K 时代的起点

公开论文给出的起点数字很明确:GPT-2 的上下文是 1024 个 token,GPT-3 是 2048 个。两千 token 约合中文一两千字,读一封长邮件就接近上限。这个起点不是随意定的:Transformer 架构下,模型靠注意力机制让每个词与全文所有位置建立联系,见Transformer 论文一篇,而训练时的序列长度决定了模型学到的注意力模式,训练时只有 2K,推理时硬拉长,效果会明显崩坏。上下文长度因此在早期是架构设定的一部分,改它等于重训模型。

注意力的显存硬约束

涨不动的根源在注意力机制的计算与存储结构上:注意力矩阵的规模随文本长度平方增长,序列翻倍,计算量翻四倍,见注意力的平方复杂度一篇。推理时还有另一笔账:每个位置的中间状态都要缓存下来供后续使用,这份缓存随上下文线性膨胀,见KV 缓存的增长一篇,显存装不下,长文本就跑不起来。所以早期模型把窗口定在 2K,是训练方法、显存与成本三方平衡的结果,不是谁不想做长。

三条突破路线

第一条是改造注意力本身。2020 年公开的稀疏注意力论文让每个位置只与部分位置计算联系,把平方复杂度降下来,长文本模型据此把窗口推到数千乃至上万 token。第二条是位置编码的外推与插值:模型训练时的长度有限,通过改进位置编码的算法,让模型在推理时能处理超出训练长度的文本,这类公开方法在 2023 年前后密集出现,具体名称与做法各家不一。第三条是不改模型、外挂检索:把长文档切块存进检索库,模型回答时只取最相关的几段,见上下文压缩一篇,这条路不需要重训模型,被大量产品采用,也让「读长文」的体验先于模型本身的长文本能力到来。

突破路线公开做法直接效果
改造注意力稀疏注意力,每个位置只与部分位置计算联系把平方复杂度降下来,窗口推到数千乃至上万 token
位置编码外推与插值改进位置编码的算法推理时能处理超出训练长度的文本
外挂检索长文档切块存进检索库,回答时只取最相关的几段不需重训模型,读长文的体验先于模型本身的长文本能力到来

路线铺好后,公开模型的窗口数字开始陡增:2023 年前后,各家旗舰模型从 8K 档跳到 32K、128K 档,同年有模型公开宣布支持 10 万 token 上下文;2024 年,公开报道里出现了支持百万 token 上下文的模型,另有研究演示到千万级,未成产品规格——这些数字逐年刷新,以各模型官方公开资料为准。

百万上下文及其代价

窗口标到百万级不等于问题全部解决,公开讨论里的落差有两条。一是「标称」与「用好」的距离:把窗口开到百万,不代表模型对全文的理解均匀可靠,业界流行的公开测试是把一句话藏进超长文档里让模型找——即「大海捞针」测试,结果显示部分模型在中段文本上的表现弱于首尾,长文本理解的质量要逐档验证。二是成本:百万 token 一次处理的显存与费用远高于短文本,上下文越长,单次问答越贵。这也是为什么检索增强在长文场景仍是常用方案——窗口与检索配合使用,比硬塞全文更经济。上下文与模型容量的分工,见参数量一篇:参数决定模型知道多少,窗口决定它一次能看多少,两个数字要分开读。

上下文窗口节点速查

  • 2019 年前后:GPT-2 公开,1024 token;GPT-3 为 2048
  • 2020 年:稀疏注意力论文公开,长文本窗口推向上万
  • 2023 年:旗舰模型进入 32K、128K 档,10 万级窗口公开宣布
  • 2024 年:百万 token 上下文进入公开产品报道
  • 说明:各模型数字以官方公开资料为准

把这条曲线连起来看,2K 到百万的每一步都对应一个具体瓶颈的松动:注意力复杂度靠稀疏化与算力增长松动,长度泛化靠位置编码方法松动,长文可用性靠检索增强先落地。下次比较两个模型的长文本能力,别只看窗口数字,先问实际测试表现与单次成本,这才是这条历史曲线教给读者的读法。

上下文窗口快问快答

  • 上下文越大,模型越聪明吗?:不是一回事。窗口决定一次能处理多少文本,理解质量取决于模型与训练,见参数量一篇;窗口再大,塞进去的内容读不准照样出错。
  • 为什么有些模型号称百万上下文,读长文还是会漏内容?:公开测试显示长文本不同位置的处理质量并不均匀,中段信息容易被弱化;重要内容放首尾、分段提问,是更稳的用法。
  • 想读一本很长的书,该用长上下文还是检索问答?:看任务。通读找细节用检索更省;通篇梳理结构、总结观点,用长上下文直接问更完整。用 Kimi 或豆包先试一小段,效果与费用都合适再全量处理。

反馈页面信息

请描述需要更正的地方,页面标题和网址会自动附上。

也可以发邮件至 [email protected]