AI 说人话:200 万 token 的窗口,不等于模型记得你昨天说的话
· AI Hot 编辑部
概念翻译 · 上下文窗口是 AI 摊在桌上的资料摊,不是它的脑子。这篇讲清楚窗口到底在装什么、为什么窗口长了还是会「忘事」,以及「它好像记得我」到底是谁做出来的。
一句话:上下文窗口是 AI 摊在桌上的资料摊,不是它的记忆。今天这一轮它看得见,上一轮它看不见——除非有人把上一轮的内容重新抄到这一轮的桌上。
1. 窗口里装的到底是什么
「上下文」就是一串按顺序排好的 token。从系统指令、这轮对话的历史消息、你手动贴进来的资料,到工具调用返回的结果,全都在这同一个序列里。窗口大小——8 万、20 万、200 万——说的就是这个序列最多能塞多少个 token。
关键在「塞不下会怎样」:超出的部分不会被模型自动存起来。不是压缩,不是存档,是真的不在这次请求里。所以同一个模型、同一个问题,开新对话和接着聊,答案可以完全不同——不是它变笨了,是桌上的资料不一样了。
2. 三个最常见的误解
误解一:窗口大 = 记得多。不等于。窗口决定它这一次能看见多少,不决定它上一次说了什么。200 万 token 装得下一整本手册,装不下「三天前你随口说过的那句话」。
误解二:塞满窗口最稳。不一定,甚至常常更差。原因叫「迷失在中间」(lost in the middle):模型对序列开头和结尾的内容引用得明显更多,中段容易被忽略。你把 20 万 token 资料一股脑塞进去,恰好是让最关键的那段最容易消失。而且每多塞一段,延迟和账单一起涨。
误解三:它说「我记得」就是记得。那是它在拿当前窗口里的东西说话。措辞让它听起来像长期记忆,实际它只是在复述你五分钟前刚贴进来的那段话。
顺便说清「token」是个什么单位。窗口标的那个数字,单位不是字,是 token——大致一个英文单词或一个汉字的 1–2 倍,取决于怎么切。所以 20 万 token 换成中文,可能是一篇不算短的文章,也可能比你想的少。中文一个字往往吃掉一个以上的 token 位,所以拿窗口当「能塞多少汉字」来估会估偏,实际动手前先估个七折。
3. 那「它好像记得我」是怎么做出来的
是外挂。做法的完整名字是检索增强生成,行业里也叫 RAG:把历史对话存进数据库,每次你提问时先检索出最相关的几段,塞回当前窗口,再让模型照着答。vendor 说的「记忆功能」多半也是这一套——不是模型记住了,是每次重新给它看。
所以下次 AI 表现得像很懂你,值得高兴的是你的这套系统搭得不错,而不是模型的记性变好了。这个区别决定了你以后该优化哪一边:前者你能改,后者你改不了。
4. 普通用户和 builder 怎么办
普通用户,三条:
1. 别问「你还记得吗」,改问「我刚才那段话在下面,照着它做」——把需要的东西直接放进这一次对话。
2. 聊到几千轮还在硬撑时,与其反复确认它忘没忘,不如开一个新对话、把结论重述一遍,干净且便宜。
3. 真需要跨对话记忆的,去用有历史记录开关的产品,别指望模型自己攒。
builder,三条:
1. 先算账再开窗口。上下文长度直接乘以你的调用量,是账单里最容易被忽略、也最容易失控的一块。
2. 优先「少而准」:先用检索把 10 万 token 的资料砍到 3 千再进窗口,而不是把 10 万都推进去。
3. 关键指令放窗口的两头,资料放中间。同样花的钱,可靠性会不一样。
模型没有记忆,只有每次重新铺好的一张桌子。你要问的问题不是「它记不记得」,是「这次桌上摊的东西够不够」。