上下文窗口是什么意思?为什么聊着聊着 AI 就"失忆"了
用 ChatGPT 或者 Claude 聊得久了,可能遇到过这种情况:前面明明已经告诉过它你的名字、你的需求、你纠正过的错误,结果聊到后面它突然”失忆”,又问了一遍已经回答过的问题,或者把你纠正过的东西又说错了一次。这背后的原因,就是这篇文章要讲的上下文窗口(Context Window)。
一、先用一个比喻理解
想象你在和一个人聊天,但这个人有个特殊设定:他只能记住最近一段对话,再往前的内容会像被橡皮擦擦掉一样忘记。这段”能记住的范围”有多大,取决于他脑子里那块”记事本”能写多少字。
AI 模型也是类似的原理。它不像人一样有真正意义上的”长期记忆”,每次回答你,它看到的其实是这次对话从头到现在的完整文字记录(加上你这次问的问题),一次性读进去,然后生成回答。这个”一次性能读多少字”的上限,就是上下文窗口的大小。
超过这个上限会发生什么?最常见的处理方式是把最早的一部分对话内容”挤出去”——不是真的删除聊天记录(你在界面上还能往上翻看到),而是模型下一次生成回答时,已经”看不到”那部分内容了,就好像那段对话没发生过一样。
二、上下文窗口是用什么单位算的
上下文窗口的大小不是按”字数”算的,而是按 Token(词元)算的,一个 Token 大致相当于半个汉字到一个汉字的长度(具体可以参考《Token 到底是什么》)。市面上常说的”这个模型支持 100k 上下文""支持 1M 上下文”,这里的 100k、1M 说的就是 Token 数量。
粗略换算一下(不同模型的分词方式略有差异,以下是大致估算,实际以官方说明为准):
| 上下文窗口 | 大约能装多少中文字 | 大约相当于 |
|---|---|---|
| 8k Token | 约 5000-6000 字 | 一篇长文章 |
| 32k Token | 约 2-3 万字 | 一本小册子的几个章节 |
| 128k Token | 约 8-10 万字 | 一整本中篇小说 |
| 1M Token | 约 60-80 万字 | 好几本长篇小说 |
需要注意的是,这个”能装多少”不只是你输入的问题,而是你和 AI 之间来来回回的所有对话内容加起来,包括 AI 自己的回答、你上传的文件内容、系统给它的背景设定说明,全部都要占这个额度。
三、为什么会”失忆”:超限之后到底发生了什么
普通用户日常使用时,最容易感知到上下文窗口存在的场景就是长对话变得”健忘”。具体表现通常有这几种:
- 重复问已经问过的问题:因为最早那轮对话已经被挤出上下文窗口,模型确实”看不到”了
- 忘记你中途纠正过的信息:比如你一开始说错了一个数字,后来纠正了,但纠正发生在很早之前,现在这条纠正记录也被挤出去了,模型可能又用回最初的错误数字
- 语气或设定”跑偏”:如果你在对话开头设定了一些规则(比如”请用简体中文回答""不要用列表格式”),这些设定如果不是靠系统层面固定住,而只是对话里的一句话,也可能随着对话变长被挤出上下文窗口,导致后面的回答”忘了”这个要求
这不是 AI 在”敷衍”或者”变笨了”,而是它这次生成回答时,物理上就已经读不到那部分内容——这是当前主流大模型的技术限制,不是某个产品做得不好。
四、日常使用怎么应对
不需要懂技术细节,记住几个实用习惯就够了:
- 重要信息定期重复一遍:如果对话很长,涉及的关键设定或数据比较重要,隔一段时间简单重申一下(比如”再确认一下,我们之前说的预算是 XX”),比指望 AI 一直记得更可靠
- 对话太长就开新对话,把关键信息整理后带过去:与其在一个越来越长的对话里死磕,不如把已经达成的结论整理成几句话,开一个新对话贴进去,这样上下文窗口里都是”精华”,AI 的注意力也更集中
- 需要处理长文档时,留意模型支持的上下文窗口大小:如果要一次丢一整本书或者很长的合同给 AI 分析,选一个上下文窗口更大的模型会更靠谱,不同模型这方面差异不小,详细的选型对比可以看《LLM 上下文窗口实用指南》
- 别把”上下文窗口大”和”记性好”划等号:即使模型支持很大的上下文窗口,实测下来对话内容越长、越靠中间的部分,模型提取起来准确率也可能有所下降,不是”能装下”就等于”记得牢”,这也是为什么第 1 条的”重要信息重复一遍”依然有用
五、和”记忆功能”是一回事吗
有些 AI 产品(比如部分聊天助手 App)会提供额外的”记忆”功能,能跨越不同对话记住你的偏好或者个人信息。这是产品在上下文窗口之外,额外做的一层存储和检索机制,和这篇文章讲的”上下文窗口”不是同一个东西——上下文窗口是模型本身单次处理文字量的技术上限,而”记忆功能”是产品为了绕开这个上限、提升长期使用体验而额外搭建的功能层。搞清楚这个区别,遇到 AI”忘事”的时候,就知道该怪模型的上下文窗口,还是该去检查产品的记忆功能有没有开启。