为什么我不再相信“无限上下文”——记录我因为指出对方营销本质被拉黑那件事

最近一段时间,我看到不少关于“无限上下文(Unlimited Context)”的说法。 有的通过层级压缩,有的通过向量检索,有的甚至给出了带求和符号和“定理”的公式,试图从数学上证明:

只要设计得当,LLM 就可以拥有近乎无限的上下文能力。

一开始我也觉得这个方向“很合理”。 直到我真正把它当作一个系统问题而不是一个感觉问题来审视。

这篇文章并不是反对工程上扩展上下文能力,而是想解释: 为什么我认为“无限上下文”这个表述在技术上是不成立、甚至是有误导性的。


一、首先要问清楚:什么是“上下文”?

在很多讨论里,“上下文”这个词被默认理解为:

模型在一次推理中能够利用的所有相关信息

但在实际系统中,这个定义至少可以拆成三种完全不同的东西:

  1. Prompt 中的文本
  2. 外部存储中“可能被取回”的信息
  3. 系统中被视为“当前有效真值”的状态

很多“无限上下文”的论证,其实混合了这三者,但没有加以区分。

一旦你把它们混在一起讨论,“无限”就会变得看起来很自然。


二、向量检索 ≠ 上下文的存在

常见的论证路径是这样的:

  1. 模型有有限的上下文窗口
  2. 但我们可以把历史信息存在向量数据库里
  3. 每次根据 query 检索 top-k
  4. 所以理论上可以访问无限信息

这里存在一个关键但经常被忽略的跳跃:

“信息存在” ≠ “信息必然可用”

向量检索本质上是:

  • 相似度近似
  • 概率性的召回
  • 非完备的匹配

它无法保证:

  • 所有必要前提都会被取回
  • 关键但“不显眼”的条件不会被遗漏
  • 多个弱相关条件能被同时满足

因此,它更接近于一种启发式提示机制,而不是上下文本身。

把“可检索的信息总量”称为“上下文容量”,在概念上是偷换的。


三、压缩不是守恒的

另一个常见说法是:

只要不断对旧上下文进行压缩和摘要,就可以在有限窗口中承载无限历史。

这个说法的问题不在工程,而在信息论直觉上:

  • 压缩 ≠ 等价表示
  • 摘要 ≠ 可逆变换

一旦某个约束、条件或关系在压缩过程中被丢弃,它在后续推理中就永远消失了。

这并不是实现不够好,而是不可避免的结构性损失


四、当“无限”来自假设本身

有些公式型论证会这样处理:

  • 向量存储容量 V:理论上无上限
  • 层级数量 n:可以不断增加
  • 所以有效上下文容量 → ∞

问题在于:

这里的“无限”来自前提设定,而不是推导结果。

如果我们允许任意一个系统组件被假设为 unbounded,那几乎任何系统都可以被称为“无限”。

这在数学上不构成定理,在工程上也不构成保证。

当我回复指出某位已经把工具商业化(?)的博主文档中的问题时,系统提示我被拉黑了。


五、真正的问题不在“容量”,而在“真值”

在我后来的系统设计中,我逐渐意识到:

决定系统是否可靠的,不是它“记住了多少”,而是它“认为什么是真的”。

如果一个系统:

  • 没有明确的世界真值层
  • 没有区分“事实”“角色认知”“用户认知”
  • 没有机制判断输出是否违反既有状态

那么即使你给它再大的“上下文”, 它依然可能在下一句话中自相矛盾。

这时再谈“无限上下文”,其实已经偏离了问题本身。


六、一个更有用的替代视角

相比“无限上下文”,我现在更倾向于用这些表述:

  • 持久化世界状态(Persistent World State)
  • 结构化事实存储(Structured Facts)
  • 受约束的生成(Constrained Generation)
  • 上下文是投影,而不是本体

在这个视角下:

  • Prompt 只是世界状态的一个切片
  • 检索只是访问世界的一种方式
  • 模型输出需要对状态变化负责

这并不“更玄”,反而更朴素。

有一种误解是 “deepseek的新论文提及的Engram 在做真值层”,但实际上它并不是。 它更像:

一个内部记忆机制 —— 把一些重复出现的结构直接载入神经模型内部,从而减少它每次都要重新“推理出来”。

这就是为什么AI的基础设施还需要NSP——更高维度的逻辑检查器来约束其生成的结果。


结语

我并不认为扩展上下文、RAG、记忆系统是错误方向。 它们在工程上非常重要,也非常有价值。

但我越来越确信一件事:

当我们开始用“无限”来描述一个系统时,往往意味着我们已经放弃了对边界的精确定义。

而在复杂系统中, 失去边界感,往往比容量不足更危险。

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注