---
layout: post.njk
source: https://yage.ai/share/wikiprofile-recall-bottleneck-20260830.html
speaker: yage.ai
title: 模型答错事实题，先分清是没存进去，还是这次没取出来
date: '2026-08-30'
summary: 文章探讨了模型答错事实题的两种主要病因：知识存储失败（知识未固化到权重中）和知识访问失败（知识已存储但提问方式不匹配导致无法提取）。文章通过对比‘松尺子量存储’和‘严尺子考提取’的测试方法，阐述了如何通过设计不同的测试逻辑来区分这两种失败，并提出了针对存储问题和访问问题分别采取的优化方向和排查阶梯，强调了诊断的精准性对系统优化至关重要。
area: tech-engineering
category: ai-application
tags:
  - knowledge-retrieval
  - storage-failure
  - access-failure
  - inference-mechanism
  - reversal-curse
people: []
companies_orgs: []
products_models: []
media_books: []
draft: true
status: evergreen
---

讨论大模型与小模型的差距时，很多人直觉上觉得小模型欠缺的是推理能力。但小模型其实很早就已具备逻辑推理能力，已经能够处理不少逻辑任务；Schaeffer et al. 2023
指出很多所谓的断崖式涌现只是度量方式带来的假象，推理能力并非大模型的专属。真正随参数规模拉开差距、成为小模型短板的，是知识存储容量。知识容量
scaling law 研究 KCSL
发现，语言模型大约能且仅能存储每参数 2 bits 知识；一个 7B 模型能存下约
14B
bits，按论文估计这个容量超过英文维基与教科书的总和，而小模型能装下的事实只是大模型的一小部分。拉开小模型与前沿模型差距的，更多在于模型究竟存下了多少事实，而不是会不会推理。

这让测量模型到底知道多少事实成了绕不开的问题，但在工程上回答它并不容易。做系统的人没法直接翻开权重去排查某条具体事实，也很难分清模型答错一道事实题，究竟是训练语料里没学过，还是这次提问没能取出来。论文开场便举了这样一道题：哪个著名乐队在
Boardwalk 俱乐部演了第一场演出？答案是
Oasis。模型答不出这道题，很可能只是这次没有想起来，而不是权重里一片空白。

Google Research 在 ICML 2026（poster，OpenReview）发表的论文
Empty Shelves or Lost
Keys? 正面测试了这个问题，Google Research 博客 2026-08-12
发布。作者团队使用公开数据集 WikiProfile
中的 2150 条维基事实，在 13 个模型上测试了大约 450
万条回复。作者测得，前沿模型对这批事实的编码率达到
95–98%，知识几乎全部存进了权重；但闭卷直接提问的失败率依然有
26–34%，即便开启思考也还有 11–12% 答不出来。

模型答错事实题通常有两种不同的病因。第一种是存储失败，知识本身在训练时没有固化到权重里，语料里没出现过或者出现了没学进去，参数里没有这条事实；第二种是访问失败，知识已经固化在权重里，但这次提问时模型没能把它取出来，问法和当初学会这句话的场景对不上。货架空了是没存进去，钥匙丢了是存了没取出来。

两种病症需要完全相反的药方。存储问题花钱在数据和参数上；访问问题则要把预算花在提问方式、核验机制、思考开销以及检索触发条件上。现有评测通常把两种失败记在同一个错号上，导致大家下意识去买第一种药，把钱花错方向。

单看几个百分比并不够，这是厂商发表的论文，用的是单一维基基准。让这项研究立得住的，是作者团队设计问法的心思：每一个测试选择都在堵住一条模型可以赖账的出口。下文把存储与提取的检验逻辑理清楚，后面的工程推论才立得住脚。

模型答错一道事实题有两种病因，没存进去和存了没取出，两种病对应完全相反的药方

## 两把尺子：松的量存储，严的考提取

论文用一把松尺子量存储得到
95–98%，用一把严尺子考提取得到
26–34%，缺口必然出现，站得住的是缺口的形状

直接翻开大模型的权重去查找某条事实、检验知识有没有固化进去，在工程上并不现实。论文退而求其次，选择复刻模型在预训练时最熟悉的状态：把维基百科原文贴给它，截断在答案出现的前一刻，看它能不能顺着往下接。模型平时正是靠这种上下文接龙训练出来的，在最熟悉的情境下能接出答案，就足以证明参数里存有这份记忆。这是行为测试里最接近直接检查存储的手段。

这把测量存储的尺子，作者故意放得很松。测试包含接句子和贴原文提问两种变体，模型只要答对其中一道就算通过，而且全程关掉思考。对照组把门槛立得足够低，诊断存储缺失时才能足够保守：如果连贴着原文都接不上后半句，断定它没存进去才站得住脚。作者测得，前沿模型在这把松尺子下的编码率达到
95–98%，知识存储接近饱和。这套设计堵住的第一条误诊出口，就是怀疑模型其实没见过这条数据。

对照组把尺子放得很松，实验组就必须把尺子收得很严。在闭卷知识测试里，作者抽掉了全部原文，正着问和倒着问各出两道同义改写的题目，一共四道题，模型必须全部答对才算掌握。

同义改写这一对题，堵住的是模型没听懂这种问法的辩解。闭卷直接问事实题，模型一旦答错，最大的干扰变量就是措辞：测试者很难分清究竟是参数里没存这条事实，还是模型存了、只是不适应这种提问字眼。如果模型仅仅是不适应某种特定措辞，换一种说法成绩就会上下起伏；如果模型真正记住了这项事实，无论措辞怎么改，它都应该能稳定答对。同一道题换两种说法，正是为了把措辞这个变量控制住，把没听懂措辞与没存进去或存了取不出区分开来。作者进行了
104
次统计检验，确认同义改写对答题表现没有显著影响，证明成绩并不随措辞起伏。措辞变量排除之后，没听懂就不再是借口，四道题的真正考验完全落在提问方向上。

模型在预训练时顺着原文语序把事实学进参数，正向提问顺应了这种先后顺序，提取链路短；倒问把语序颠倒过来，偏离了预训练时的语言上下文，提取链路变长，也最容易中断。正问能答对，证明模型确实存下了这条事实；倒问答不上，则说明模型这次没能取出来。倒问成了最容易触发提取失败的场景，而同义改写负责排除没听懂措辞的干扰，两者配合，才把没存进去、没听懂与存了取不出干净地分开。

倒问失败还存在另一个更深的怀疑：模型是不是从来没有存下双向关联，也就是
2023 年以来讨论很多的 reversal
curse。论文用选择题堵住了这条退路：把同样的题目做成四选一，将正确答案直接摆在面前。测试结果显示，所有模型在闭卷自主生成时倒问都比正问差，可一旦换成选择题，有
9
个模型的倒问成绩反而比正问更好。人在日常生活中也是如此，能从四个选项里一眼指认出正确名字，谁也不会断定他完全没有这段记忆。这种生成与选择题的对照，2024
年 NeurIPS 的 Delving into
the Reversal Curse
已经做过分析，这篇论文则是把它搬进了真实的维基百科事实与更大规模的模型里。

在这把严尺子下，作者测得前沿模型闭卷直接提问的失败率落在
26–34%。不过这里有个必须讲清的前提：一边用松尺子量存储，一边用严尺子考提取，两者之间的缺口在逻辑上必然会出现，任何松紧尺度的对比都能得出数字差。这个差值里有多少反映了模型的真实状态，又有多少来自尺子的人为设定，仅靠论文内部的数据无法彻底剥离。真正经得起推敲的是这个缺口展现出来的变化形态，而不是它具体的绝对大小。

## 站得住的是缺口的形状

第一个站得住脚的形态，是冷门事实与热门事实的差距分化。冷门事实与热门事实在编码阶段的差距只有
5 个点上下，但在闭卷直接召回时，两者的差距迅速拉大到 20 个点以上。以
Gemini-3-Pro 为例，闭卷召回率在热门事实上有
84.6%，到了冷门事实直接滑落到
63.3%。如果两把尺子的松紧只是人为制造的数字假象，冷门和热门的差距理应同步起落。存储缺失解释不了这种分化，提取通路的受阻才解释得通。

这个现象直接触及了日常的默认归因。很多工程师看到模型答不出冷门知识，第一反应往往是训练语料见得少、模型没存进去，应当继续加数据。实验数据给出的结论正好相反：冷门事实大部分已经存进参数，编码水平与热门事实相差无几，真正卡住的是提取过程。盲目堆砌语料并不是对症的解法。

第二个形态出现在模型参数扩展的过程中。Gemma3 系列从 1B 扩到
27B，编码失败率从 85% 一路降到
23%，但在剩下的错误里，提取失败所占的比例持续上升。模型体量变大确实能把货架塞得更满，然而取货的通道并没有随之拓宽。扩大参数修好的是存储，修不好访问。对于像
Gemma3 1B 这样编码失败率高达 85%
的小模型，扩参数和加数据确实是正确的药方；但当模型规模扩大、编码趋于饱和之后，主要的瓶颈就从存储转向了访问。

## 最意外的药：思考

WikiProfile 选取的全部都是单跳事实。诸如 Extreme 哪张专辑排到第 10
这类问题，中间没有任何逻辑推导链条，按常理思考机制派不上用场。然而作者测得，只要开启思考，前沿模型就能救回
40–65%
已经编码却在闭卷直接提问时答错的事实；相比之下，对那些一开始就没存进去的事实，思考只能救回
5–15%，开启思考后的残余失败率收窄到了 11–12%。

这个分组统计堵住的猜想，是认为思考只是让模型多碰运气，或者从其他关联知识里绕路硬推。如果思考纯靠碰运气或绕路，它对存进去和没存进去的内容应该一视同仁，但数据呈现出明显的偏向性。另一项佐证是输出的一致性：开启思考之后，模型在同一道题上的多次采样结果反而更集中，方差明显收缩。这表明思考在这里起的是检索作用，帮模型在权重里翻找已经存进去的记忆。

同组研究人员在六月发布的 Thinking
to Recall（COLM 2026，arXiv
2603.09906）做了更彻底的检验。他们把思考过程中的推导文字全部替换成无意义的重复句，结果发现仅仅增加前向计算的
token
数量，就能帮助模型想起单跳事实。这背后的机制主要是计算缓冲与事实启动：更多的中间
token
为注意力机制提供了更多寻址机会，前文吐出的相关词汇又顺便充当了唤起正确答案的线索，与复杂的逻辑推演并无关联。

对于搭建系统的工程师来说，这一步直接给出了成本账本。思考确实是一味对症的药，但它的收益集中在已经编码的事实上。盲目对所有请求开启思考只是一种浪费，而要在真正需要翻找记忆时精准触发，又要求模型知道自己这次能不能取出来。这种元认知能力，论文并没有给出答案。

## 把诊断变成排查阶梯

用户在线上问了一个公开百科事实，模型回答不知道，或者给出了错误的名字。面对这类回答失败，很多人习惯性地推断模型没有学过这条知识，随后急着去补充训练语料、做微调，或者立刻接入外部搜索。但在调整系统之前，首先应当分清病因：这条事实到底是没有存进权重，还是存进去了却在这次提问中遇到了提取阻碍。存储缺失和提取受阻对应着完全不同的优化方向，也决定了预算应当投向哪里。

排查生产环境中的事实性问题时，可以顺着四个具体的维度做对照检查。第一是覆盖情况，检查内部知识库或预训练数据到底有没有收录这条事实。第二是访问通路，尝试换一种问法或者反向提问，观察模型能不能顺畅答出。第三是再认能力，把几个候选答案摆在模型面前做单选题，测试模型能不能认出正确选项。第四是时效与私有属性，确认这项事实属于公开常识，还是属于随时变动的最新动态与团队私有数据。日常排查中如果只盯住第一项覆盖范围，容易误以为数据进了语料就万事大吉，其实线上遇到的大量故障都出在第二项的访问通路上。

如果遇到的是公开百科事实，线上与线下的探测应当遵循由廉价到昂贵的阶梯逐步推进。第一步先做低成本探测。工程师可以尝试调整提问语序，或者在提示词中提供少量上下文线索。这一步只消耗常规生成的计算开销，成本极低；如果换个说法模型就能答对，说明知识早已存在参数里，只是刚才的提问链路受阻。

第二步引入选项核验。如果调整问法后依然答不上，可以把模型生成的几个候选词做成单选题让它挑选。只要模型具备再认能力，准确率通常会明显回升，这一步同样不需要调用外部系统。

第三步再考虑开启思考。如果低成本探测和选项核验都没能唤醒记忆，开启思考能帮模型在权重里翻找单跳事实。但思考过程会消耗大量中间
token，计算成本远高于普通生成，不能无差别全量铺开，只适合留给高价值请求。

第四步才是触发外部检索。如果模型经过多轮探测与思考依然无法作答，说明这条事实大概率没有存进参数，这时调用检索系统引入外部上下文才是合理的选择。

对于团队私有业务数据和最新的时效事实，处理逻辑则完全不同。这类知识天然不存在于模型的预训练权重中，对它们做层层探测只会白白浪费算力。系统一旦识别出这类请求，应当直接接入检索，跳过全部权重探测流程。

这套分诊逻辑与检索增强（RAG）构成了互补关系。RAG
专门用来补充模型参数里原本没有的内容，解决私有文档与实时变动的获取问题；这套诊断则负责疏通模型权重里已经存下、却因为问法偏离没能取出的公开百科事实。两者的目标都是解决访问受阻，前者向外部知识库要增量，后者向已有模型权重调取存量。

目前许多自适应检索方案（例如 Self-RAG 或
Adaptive-RAG）尝试通过设计判断机制来决定何时触发检索。它们通常直接观察模型眼下能不能答出问题，一旦模型答不出就立刻发起检索。这种做法把没存进去和存了没取出混在同一个开关里。模型答不出公开事实往往只是提问方式不对，换个线索就能唤醒；如果不加区分直接调用检索，不仅额外增加了检索延迟与上下文处理开销，还掩盖了提问链路本身存在的提取缺陷。

下一次在生产环境中遇到模型答错事实题，不妨先退一步查清根因：它是真的没存进去，还是存了但这次没能取出来。针对这两种不同的病症，手里拿出的应当是两张完全不同的预算表。