← 博客

AI 记忆答错,多半不是推理的问题,而是没读懂问题

2026年10月26日

English

做 AI 记忆和 RAG 时,很多人默认最难的是推理:多步问题答不对,就去改推理模块、换更大的模型。

我在自己的个人记忆系统上把回答过程拆成几段,分别测量每一段丢了多少分。结果和这个默认相反:推理那一段,在给对输入时表现不错;大部分分数丢在更前面,系统没读懂问题在问什么。

这篇是研究阶段的结果,样本不大,不代表任何产品的行为。

回答一个问题要经过几段

以“我导师任教的那所大学在哪个城市?”为例,系统要做这几件事:

  1. 找起点:问题里的“我导师”对应知识里的哪一个人。
  2. 定关系:要走哪几步。这里是两步:“在哪所大学任教”,然后“这所大学在哪个城市”。
  3. 沿事实走:在事实库里一步步找下去,中间那所大学不需要用户说出来。
  4. 回答或弃答:找到就给出答案和依据;找不到就说没有依据。

任何一段出错,最后都会答错。只看最终正确率,分不出是哪一段的问题。

怎么测:同一批题,答两遍

为了把“读题”和“推理”分开,我用系统自己事实库里的内容出题,保证每道题需要的事实都在库里。这样答错就不能怪知识不够。

出题过程:从事实库里取一条事实链,比如“某人 → 任教于 → 某大学 → 位于 → 某城市”,交给一个大模型写成中英文两个版本的问题,题目里不能出现中间那一步和答案。再让另一个大模型在不看事实链的情况下作答,答案和事实链的终点一致,这道题才保留。

每道题答两遍:

  • 给对路线:直接告诉系统正确的起点和关系链,只考推理。
  • 只给问题:系统自己从问题文字出发,读题这一步目前由一个固定版本的大模型来做。

两遍都由大模型按同一标准判断对错。

出题本身先说明了一件事

出题时就碰到一个意外:随机拼出来的事实链,大多数不是人会问的问题。

随机取的 330 条事实链,最后只留下 34 条,大约 10%。多步链被淘汰,最常见的原因是“每条事实都对,但连起来没有意义”:被淘汰的两步链里 40 条有 16 条属于这一类,三步链 20 条里有 12 条。改成优先挑选人们常一起问的关系组合后,767 条留下 112 条,约 15%。三步的链取了 150 条,只留下 1 条。

事实库里的事实是真的,但“哪些组合值得问”这件事,事实库本身不知道。这一点后面还会再出现。

留下的 112 道题,每道有中英文两个版本,一共 224 次作答。

结果:给对路线 0.79,只给问题 0.57

给对路线只给问题
全部 224 次作答0.790.57
一步题(英文 / 中文)0.93 / 0.85
两步题(英文 / 中文)0.73 / 0.71

数字是判对的比例。

回答一个问题要经过四段找起点问的是哪个东西定关系要走哪几步沿事实走在事实库里查回答或弃答给答案和依据找对 57–65%全对 73–78%给对路线:从第三段开始判对 0.79只给问题:从第一段开始判对 0.57

给对路线时,一步题基本都能答对,两步题七成多。另外,如果设定“只有找到完整路径才回答”,系统回答了 91% 的题,答出来的准确率是 0.84。推理这一段,在输入正确时是能用的。

只给问题时,同一批题掉了 0.22。拆开看丢在哪里:

  • 起点找对了:57% 到 65% 的题(不同语言和题型之间有差别)。
  • 起点没找到:12% 到 24%。
  • 其余的起点找错了:落到了另一个概念上。
  • 关系链完全正确:73% 到 78%。

起点和关系链都要对,后面的推理才有机会。这 0.22 主要就丢在这两段。

换一批不保证有答案的题,丢分更集中在前面

上面那批题保证事实都在库里。另一批 344 道多步题不做这个保证,所需的事实可能不在库里。在这批题上,逐段的情况是:

344 道多步题,每一段还剩多少全部344找到起点227通过第 1 步120通过第 2 步81走完整条路径75正确答案在路径上32最大的两次流失:起点没找到 117 道,第 1 步断开 107 道

最终判对的比例是 0.196。

在中途断开的题里,98 道断在系统还没有覆盖的关系类型上(其中 46 道是“原因”这类关系),39 道断在核心概念范围之外的概念上。

这组数字也说明了为什么修一处不太管用:每一段的损失是相乘的。把其中一段改好几个百分点,最终正确率往往只动 0 到 2 个百分点。

为什么“读题”这么难

问题的核心是起点。同一个名字在知识里常常对应好几个很接近的概念,选错一个,后面的推理再正确也是在回答另一个问题。

上一篇定过一条规则:认不出来就说认不出来,不做模糊绑定。认不出来,系统可以回答“没有依据”;认错了,它会给出一个有依据、但依据属于别人的答案。

这条规则让修补变得很难。我试过两种办法来提高找起点的能力:一种是专门训练一个模型,把各种说法映射到概念上;另一种是用大量生成的问题,训练一个不需要大模型的本地读题模型。两种都没有超过现有做法:

  • 要求找起点的准确率达到 90% 以上时,一种办法根本达不到,另一种只能处理不到两成的题。
  • 不设这个要求时,错认的数量明显上升。其中一次,每 100 个起点里认错的从 4.5 个涨到 40 多个。

把更多题“答出来”很容易,难的是答出来的题还是对的。

对做 AI 记忆和 RAG 的人,可以直接用的几点

  1. 分段测量。至少把“找起点、定关系、推理”分开测。只看最终正确率,会把读题的问题误判成推理的问题。
  2. 先给推理正确的输入,再决定要不要改推理。给对路线还答不好,才是推理的问题。
  3. 认不出来比认错好。统计时把“没找到”和“找错了”分开记,两者的代价完全不同。
  4. 测试题要像真实提问。从事实库随机拼出来的题,大部分没人会问;用它们测出的分数,说明不了真实场景。

这次结果的边界

  • 给对路线和只给问题那组对照,是 112 道题、224 次作答;三步题和靠规则推出的题样本太小,这里没有单独下结论。
  • 对错由大模型判断,没有逐条人工复核。
  • 读题那一步目前还用大模型。我上一篇写过“回答问题时不调用大语言模型”,那是更早的设计,现在读题这一步还没有做到,我正在试着把它换成本地模型。
  • 这是研究阶段的一次测量,不是产品功能的说明。

前两篇:AI 长期记忆:向量相似,不等于记住了事实,以及一次迁移实验:容量越大,拟合越好,迁移越差。