上下文窗口是什么?

上下文窗口:大模型的"工作台"到底有多大?
你跟AI聊了几十轮。
它一开始还挺懂你。
但突然,它好像"断片"了——忘了你们前面讨论的核心问题,忘了你给它看过的合同条款,甚至忘了你自己叫什么。
明明在同一个对话里啊。
它怎么就"失忆"了?
这其实不是AI在装傻。
它是真的"看不见"了。
今天我们就来聊聊大模型的"视野"——上下文窗口。
上篇聊完Prompt之后,很多同学问我:为什么我给了那么多背景信息,AI还是答非所问?
答案很可能就藏在这个"窗口"里。
AI的"工作台"到底有多大?
先说个数字。
GPT-3的上下文窗口是2048个token。
听起来挺多对吧?
但token不是字数。大概1个token等于0.75个英文单词,或者1-2个汉字。
也就是说,GPT-3一次只能"看见"大约1500个汉字。
1500个字什么概念?
差不多是一篇公众号文章的长度。
你让AI看一篇完整的合同?不够。
你让它分析一本小说的前几章?不够。
你让它读完100页的PDF再回答问题?它连一半都看不到。
为什么会这样?
因为上下文窗口就像AI的"工作台"。
你能在这个工作台上摆多少东西,是有物理限制的。
模型处理信息的时候,需要把整个上下文全部加载到"内存"里。
就像你在书桌上做数学题——草稿纸就那么大,超过的部分你根本摆不上去。
摆不上去,就看不见。
看不见,就等于不存在。
这就是上下文窗口的本质:它决定了AI一次能处理多少信息的上限。

窗口大一点,有什么用?
但现在的主流模型,窗口已经大多了。
GPT-4最高支持12.8万个token。
Claude 3支持20万个token。
国产的通义千问、文心一言,窗口也在不断往上涨。
这些大窗口能做什么?
做长文档分析。
以前你给AI一段文字让它总结,超过2000字它就开始"耳背"了。
现在,一本10万字的书扔进去,它能给你讲清楚整本书的脉络。
做跨函数代码理解。
写代码的人都知道,一个复杂项目里,变量定义在第1行,调用在第500行。
小窗口的AI只能看到局部,看不懂函数之间的关联。
大窗口就不同了,它能"纵观全局"。
做长程推理。
你跟AI说"根据我们第三次讨论的那个方案继续优化",大窗口的模型能找到"第三次讨论"在哪里。
小窗口的模型?早就忘到九霄云外了。
窗口大,本质上是给AI更宽的"视野"。
就像你看一篇文章:
只看一段,你只能理解这一段。
看完全篇,你才能把握作者的核心观点。
上下文窗口,就是AI的"视野范围"。

AI"看见"了,就真的"记住"了吗?
这里有个陷阱,很多人不注意。
你以为给AI塞更多内容,它就能记住更多?
真不一定。
大模型用的是"注意力机制"——它不是均匀地关注每一个字的。
有意思的是,它对开头和结尾的内容记得最清楚,中间的内容反而容易"眼瞎"。
这就是著名的"中间丢失"问题(Lost in the Middle)。
我之前看到过一个研究:给模型一段很长的文本,然后在开头、中间、结尾分别插入关键信息。
结果很讽刺——开头和结尾的信息,模型能准确回忆。
中间的信息?模型经常"假装没看见"。
为什么?
因为注意力就像一盏探照灯,照到的地方亮,没照到的地方暗。
探照灯会随时间衰减,越靠前的"足迹"越模糊。
所以即使你有200万token的窗口,
中间的内容也可能被模型"选择性忽略"。
这就像人读一本很长的书:
读到第50章的时候,第3章的细节你还记得吗?
模型也有这个问题。
"看见"和"理解",是两回事。

大窗口的代价:你以为捡了芝麻,其实丢了西瓜
但是。
窗口越大越好吗?
还真不是。
成本在暴涨。
模型计算上下文的工作量,不是跟窗口大小成正比的。
而是跟窗口大小的"平方"成正比的。
这是什么概念?
窗口翻倍,计算量变成4倍。
窗口扩大10倍,计算量变成100倍。
GPT-4的128K上下文版本,调用一次的价格是4K版本的几十倍。
Claude的100K窗口版本,处理速度明显比小窗口版本慢很多。
桌子大是大了,但干活的速度也慢了。
更扎心的是,有时候大窗口反而更差。
你往里面塞的内容越多,噪声也越多。
模型需要在海量信息里找到真正重要的那部分。
信息太多,反而干扰了它做出正确判断。
就像你的办公桌:
东西少的时候,找什么都快。
东西堆成山的时候,找个签字笔都得翻半天。
大窗口 ≠ 高质量输出。
这是个需要权衡的东西。

让大窗口真正发挥作用
那怎么办?
总不能不用吧?
工程师们想了很多办法。
第一种:滑动窗口。
想象你有一扇窗户,这扇窗户在长文本上从左往右"滑"过去。
每滑到一个位置,你就从这个窗口里提取关键信息。
最后把所有的关键信息汇总。
读一本1000页的书,你不会一口气塞进脑子。
你会先翻目录,然后按章节读,每章做笔记,最后串起来总结。
滑动窗口,就是让AI用同样的方式处理长文本。
第二种:分段处理。
把超长文本切成多个段落。
每个段落单独处理,生成"摘要"。
再把所有摘要拼在一起,让模型理解整体。
就像开卷考试允许你翻书,但不等于你可以把图书馆搬进考场。
分段处理,就是在帮你"划重点"。
第三种:智能缓存。
最新的技术叫DuoAttention。
简单说,它会给模型装两个"脑子":
一个专门处理需要长期记忆的"检索头"。
一个专门处理即时对话的"流式头"。
该查资料的时候查资料,该专注当前的时候专注当前。
不再让所有信息都挤在同一个窗口里。
这就好比以前你查资料要把整本书摊在桌上,
现在你学会了先翻索引,找到目标页,再精确查看。

另一种思路:别让AI"背书",让它"查资料"
但说到底,上下文窗口终究是有上限的。
总有一些场景,你需要处理的信息超过任何模型能承受的窗口。
比如一个律师要分析10万份合同。
比如一个研究员要检索整个学术数据库。
怎么办?
答案是:别让AI"背书"。
让AI"查资料"。
这就是RAG(检索增强生成)的思路。
RAG不要求模型把所有知识都装进脑子里。
它外挂一个知识库,需要什么就实时检索什么。
你问AI:"这个合同条款有没有法律风险?"
RAG会先从合同库里找出相关条款,
然后把这些条款作为上下文喂给模型,
最后让模型基于真实材料生成回答。
这就像考试的时候,你是开卷考。
不要求你把所有知识点背下来,
但你得学会翻书、查资料、找到正确的信息。
对于企业级应用来说,RAG几乎是标配。
因为企业的知识库太大了,没有任何一个模型的窗口能装得下。
但通过检索+生成的方式,AI就能"站在图书馆的肩膀上"回答问题。

下节预告
好,说了这么多窗口的事。
但你可能还有一个困惑:
就算AI"看见"了上下文,
它为什么有时候还是会一本正经地说出明显错误的话?
它为什么会"编"出根本不存在的参考文献?
为什么它会犯那种连初中生都不会犯的低级错误?
这就不是窗口的问题了。
这是另一个更深层的问题:大模型幻觉。
下篇我们就来聊聊这个。
为什么模型会"胡说八道",以及,我们能怎么"治"它。
