AI面包君Learn · Build · Share
全部文章
AI 基础AI面包君

什么是上下文窗口?为什么ChatGPT"记不住"太长的对话?

你跟ChatGPT聊了半小时,聊了你的项目背景、团队情况、技术选型、预算限制——然后你问它:"根据我们刚才聊的,帮我写一份项目计划书。"

2026-06-136 分钟

你跟ChatGPT聊了半小时,聊了你的项目背景、团队情况、技术选型、预算限制——然后你问它:"根据我们刚才聊的,帮我写一份项目计划书。"

它写出来了,但漏掉了你15分钟前提到的关键信息。

你:"我刚才说过预算是50万,你没写进去。"

它:"抱歉,我重新生成..."

这就是"上下文窗口"不够用的问题。 ChatGPT不是故意忘记——是它"看"不到太早之前的内容。

今天我们来拆解:什么是上下文窗口,为什么它决定了AI"记性"的好坏,以及为什么2025年这个指标在疯狂内卷。


📖 先定义:上下文窗口是什么?

上下文窗口(Context Window)是大语言模型一次性能"看到"的文本长度上限。它决定了模型能同时处理多少信息——包括你的输入、对话历史、上传的文件内容,以及模型自己的输出。超出窗口的内容,模型直接"看不见"。

一个精妙的类比:

上下文窗口就像你考试时的那张草稿纸

草稿纸就这么大。你可以在上面写已知条件、画辅助线、列方程步骤——但一旦写满了,你就得擦掉旧的东西才能写新的。擦了,就找不回来了。

AI的上下文窗口就是这张草稿纸。对话历史、你的问题、AI自己的推理过程——全部挤在这张纸上。纸不够大,就得"遗忘"前面的内容。

而且有个关键细节:这张纸不是你用完才擦——AI生成每一个新词的时候,都要重新读一遍整张纸。 所以纸越大,每写一个字就越慢、越贵。

🖼️ 图片建议: 一张"草稿纸"类比图。画一张方格草稿纸,上面已经密密麻麻写满了之前的对话内容("你说:我的预算是50万""AI说:好的""你说:我们团队有5个人"...)。现在AI正在写新内容,但草稿纸边缘已经快满了。标注"上下文窗口 = 这张草稿纸的大小。超出就看不见了。"科普插画风,色彩明快。


📏 上下文窗口的进化:一场军备竞赛

时间模型上下文窗口能装下什么
2018GPT-1512 token一段话
2019GPT-21024 token几段话
2020GPT-32048 token一篇短文
2022GPT-3.54096 token一篇长文
2023GPT-48K-32K token中篇小说
2023Claude 2100K token《了不起的盖茨比》全书
2024Gemini 1.5 Pro100万 token全套《三体》
2024GPT-4 Turbo128K token一部《哈利波特》
2024Claude 3.5200K token两部《哈利波特》
2025Gemini 2.5 Pro100万+ token几部长篇小说

七年时间,上下文窗口从512膨胀到了100万——增长了约2000倍。

512 token是什么概念?大概300个汉字,一条微博的长度。100万token呢?大概75万个英文单词——够装下整个《红楼梦》还有富余。

🖼️ 图片建议: 一张"上下文窗口进化史"的柱状图或面积图。横轴是时间(2018-2025),纵轴是对数刻度,从512到100万。每个柱子标注对应模型名。曲线陡峭向上。旁边画几本书的图标表示"能装下什么"——512 token旁边画一条微博,100万token旁边画几本厚小说。科普杂志信息图风格。


🧠 为什么上下文窗口这么重要?

1. 长文档处理

你上传一份200页的PDF合同让AI审阅。如果上下文窗口只有8K token,AI只能看前几页——它审的合同是"残本"。

100万token的窗口意味着,你可以把整本合同、所有附件、相关邮件往来一股脑丢进去,AI能通读全局再给你建议。

2. 多轮对话

你跟AI聊了200轮,讨论了复杂项目的所有细节。如果上下文窗口只能装下最近20轮——AI每隔一会儿就"失忆"一次。

长上下文让AI能记住整个对话历史,不会出现"我半小时前跟你说过"的尴尬。

3. 代码库理解

程序员让AI帮忙debug。把整个项目的代码(几万行)全部塞进上下文——AI能跨文件理解调用关系、找到bug根源。这是短上下文窗口做不到的。

4. Agent工作流

AI Agent执行复杂任务可能需要几十步——查资料、调API、对比结果、修正方案。每一步的中间结果都需要留在上下文里,否则Agent就"忘了自己刚才做了什么"。


🔧 扩展上下文窗口为什么这么难?

如果只是"把窗口做大",听起来不就是改个参数的事吗?

不是。真正的瓶颈是注意力机制的计算复杂度。

Transformer的自注意力机制有一个著名的缺点:输入长度翻倍,计算量翻四倍(O(n²)复杂度)。

你问ChatGPT一个问题,10个token,它内部要做10×10=100次注意力计算。你给它100万个token的文档,它要做1万亿次计算——不是100倍,是100亿倍。

而且不只是计算量的问题。KV Cache(我们在《缓存命中》那篇聊过)存储中间计算结果所需的内存也随长度平方级增长。100万token的上下文,光KV Cache就需要几百GB显存。

所以各大公司解决长上下文,不是硬堆算力——是在改注意力机制的算法。 核心思路都是"别对所有token都算注意力,只对重要的算":

  • 稀疏注意力:每个token只关注附近的和关键位置的token,不关注所有
  • 环形注意力(Ring Attention):把长序列切成多段,分散到不同GPU上并行计算
  • MoE + 长上下文:用混合专家模型(后面会讲)让不同专家负责不同段落

Google的Gemini 1.5 Pro能把窗口做到100万token,背后是一整套算法创新的结果,不是简单"堆硬件"。


🎮 大海捞针:一个著名的测试

AI圈有一个著名的长上下文测试,叫**"大海捞针(Needle in a Haystack)"**。

做法是:给AI一篇几十万字的文档(干草堆),在文档中间某个位置插入一句完全无关的话(针),比如"披萨上应该放菠萝"。然后问AI:"文档里提到了披萨上应该放什么?"

AI必须在海量文本中精准找到这一句话,不被其他内容干扰。

2023年的模型在这个测试上表现很差——文档越长,找到"针"的概率越低。尤其当"针"藏在文档中间位置时,很多模型直接找不到。

2024年的Gemini 1.5 Pro和Claude 3.5在这个测试上达到了接近100%的准确率,无论文档多长、针藏在哪里。这意味着长上下文不只是"能做",而且是"能做好"了。

🖼️ 图片建议: 一张"大海捞针"测试的示意图。画面主体是一大堆干草,中间藏着一根针(放大显示,针上写着"披萨上应该放菠萝")。一个AI机器人拿着放大镜在草堆里找。旁边显示一张热力图,横轴是"文档长度",纵轴是"针的位置",颜色从红(找不到)渐变到绿(找到了),标注"2023年模型:文档一长就找不到"→"2024年模型:几乎全绿"。科普杂志信息图风格。


⚠️ 长上下文窗口的隐形成本

1. 速度变慢

输入越长,每次生成下一个词就要处理越多的上下文。你上传一本《三体》全文,然后问一个问题——AI可能需要几十秒才能开始回答。

2. 价格暴涨

API按token计费。100万token的输入,就算大部分是缓存命中,费用也比1万token高得多。长上下文=更多token=更贵。

3. "迷失在中间"

研究发现,AI对长文本开头和结尾的信息关注最多,中间部分容易被忽略。 即使上下文窗口很大,如果你把关键信息放在文档正中间,AI可能还是会漏掉。

这也是"大海捞针"测试中,最难的就是"针在文档中间"这个位置。

4. 越大≠越好

100万token的窗口不代表AI真的"理解"了100万token的内容。"能看到"和"能理解"是两回事。 AI可能会选择性忽略大量内容,只关注它觉得"重要"的部分。


💡 一句话总结

上下文窗口是大模型一次性能"看到"的文本上限——它决定了AI的"记忆力"。这个指标从2018年的512 token膨胀到2025年的100万+ token,背后是注意力机制算法的持续革命。但窗口大了不等于理解就深了——"看见"和"看懂",还有很长的距离。


写上下文窗口的时候,我在想一个问题:人类的"上下文窗口"有多大?

你读一本书读到第300页,还能记得第20页的某个细节吗?大概不能。但你能记住"故事的主线"——因为人脑不存全文,存的是"摘要"和"理解"。

AI在拼"过目不忘",人类靠的是"理解后压缩"。 也许未来的长上下文模型,不应该只追求"记住更多",而应该学人脑——把上下文"压缩"成理解,而不是一字不差地存着。

—— 面包君