理解 AI(三):上下文窗口——AI 的短期记忆是怎么回事

1、长对话里的“失忆”

你有没有遇到过这种情况?

和 AI 聊了很长一段之后,你提到了开头的某个细节,AI 好像“记不住”了?或者 AI 开始前后矛盾,说法和对不上?

这不是 AI 变笨了,而是遇到了 上下文窗口(Context Window) 的限制。

2、什么是上下文窗口?

上下文窗口 = AI 能“看到”的 Token 总数。

还记得上一篇文章说的 Token 吗?AI 处理文本的单位是 Token。每个 AI 模型都有一个最大的 Token 数量限制,这就是上下文窗口。

比如 GPT-4 的某个版本,上下文窗口是 32,768 个 Tokens。这包括:

  • 你输入的所有文字
  • AI 生成的所有回答
  • 中间的所有对话历史

当 Token 数量超过这个上限时,最早的内容就会被“挤掉”。

3、一个比喻:翻书查找

想象这样一个场景:

你有一本超级厚的书,里面有海量的信息。但你的桌子只能摆下固定数量的页面(比如 100 页)。

当你想讨论书中第 1 页到第 300 页的内容时,你没法把所有页面同时摆在桌上。你只能:

  1. 翻到相关的页面
  2. 看完后翻走
  3. 需要时再翻回来

但如果这本书的逻辑是“必须按顺序翻页”,那你只能看到最近翻开的那 100 页。之前的页面已经被翻走了。

上下文窗口就是 AI 的“桌面”,Token 就是“页数”。

当对话太长,早期的内容就会被“翻走”,AI 就“忘记”了。

4、KV Cache:AI 的“书签”

技术层面,上下文窗口的实现依赖于一个叫做 KV Cache 的机制。

在 Transformer 架构中(这是现代 LLM 的基础),每一次生成 Token,AI 都需要“回顾”之前所有的 Token。这个过程叫做 Attention(注意力机制)

但 Attention 的计算量很大——如果每次生成新词都要重新计算所有历史 Token,性能会非常差。

KV Cache 的解决方案是:

把之前计算过的 Key 和 Value 缓存起来,每次生成新 Token 时,只需要计算新增 Token 的 Attention,然后和缓存的结果合并。

这就像你在翻书时,在重要的页面夹上书签。下次翻回来时,不用重新找,直接定位到书签。

5、为什么 KV Cache 也受窗口限制?

虽然 KV Cache 加速了计算,但它存储的是所有历史 Token 的 Key-Value 对

这些缓存需要占用显存(GPU 内存)。上下文窗口越大,需要存储的 Key-Value 对就越多,对显存的要求就越高。

所以,上下文窗口的大小,受限于:

  1. 算法设计:模型架构本身支持的最大长度
  2. 硬件条件:GPU 显存能容纳多少 KV Cache

这就是为什么有些模型“支持超长上下文”,但实际上需要更多的 GPU 资源才能运行。

6、上下文窗口满了会发生什么?

当对话的 Token 总数接近上下文窗口上限时,通常有两种处理方式:

6.1 截断(Truncation)

最前面的对话历史被“砍掉”,只保留最近的部分。

这会导致 AI 忘记:

  • 开头的背景信息
  • 用户的偏好设置
  • 之前的约定或结论

6.2 摘要(Summarization)

更智能的做法是:定期把早期的对话“压缩”成一个摘要,保留核心信息,丢弃细节。

这样可以:

  • 保留重要的上下文
  • 减少 Token 数量
  • 让 AI 继续“记得”关键信息

但摘要不可避免地会丢失一些细节,这可能导致:

  • AI 对某些细节的引用不准确
  • 对话的一致性略有下降

7、实际使用中的建议

理解了上下文窗口的限制,在实际使用 AI 时,你可以:

  1. 长对话时主动总结:每隔一段,主动让 AI 总结一下之前的关键结论,减轻上下文负担

  2. 重要信息放在开头或结尾:因为截断通常发生在“中间”,开头和结尾的内容更容易被保留

  3. 长文档处理时拆分:如果要给 AI 分析一本书,先分段处理,最后再做综合

  4. 避免重复唠叨:有些用户会反复强调同一件事,其实没必要,AI 已经“记住了”

8、本质是什么

上下文窗口是 AI 能同时处理的 Token 总数上限,本质上是一个“工作记忆”的容量限制。

AI 不是真的在“记忆”对话,而是每次都在重新“翻书”——把历史对话作为输入,一起处理。窗口越大,能同时处理的“上下文”就越多,但计算量和显存消耗也越大。

KV Cache 是实现高效推理的关键技术,通过缓存历史计算结果,避免重复计算。但它本身也受限于显存,不能无限扩展。

理解了上下文窗口,你就能理解 AI 的“记忆”机制,以及为什么长对话会出现问题。


下一篇文章,我们会聊一个有趣的话题:Temperature 和 Top-P——AI 的“创造力旋钮”,为什么调一调参数,回答就会变?

每天前进一小步,就是一个新的高度!