Kaelem

让模型少背一点,反而更可靠:Knowledgeless LM 的反直觉实验

·21 min read
LLMRAGHallucinationCalibrationarXiv

一个很熟悉的场景是:我们把一段证据塞进上下文窗口,要求模型“只根据材料回答”。模型看起来也读了材料,甚至会引用材料里的词。可到了关键事实上,它突然像从另一个地方拿出答案——不是从眼前证据里拿,而是从预训练时背下来的世界知识里拿。

这就是 RAG 系统里最难受的一层错位。

推理时,我们希望模型像法庭上的证人:每句话都能指向案卷里的证据。预训练时,我们却一直奖励它像抢答选手:看到“Barack Obama was born in …”,越快补出“Hawaii”越好。一个系统的两个阶段,在训练模型两种相反的习惯。

这篇论文的想法很朴素,也很激进:如果问题出在模型太会把名字和事实绑定起来,那能不能在预训练时,干脆把名字拿走?

不是让模型忘掉语法,不是破坏句子结构,也不是把所有文本都打乱。研究者只做一件事:把人名、地名、组织名、事件名这些命名实体换成占位符。于是“Obama was born in Hawaii”不再给模型一条“Obama→Hawaii”的监督信号,而变成类似“PERSON17 was born in GPE09”的结构关系。

论文把这样训练出来的模型叫 Knowledge-“Less” Language Models,简称 KLLM。这里的“less”不是让模型变笨,而是让它少把现实世界的具体事实写进参数里。

把名字从预训练里拿走

先理解这个实验到底切断了什么

语言模型在预训练里学到事实,很多时候靠的是一个非常具体的通道:名字。

如果语料里反复出现“某人出生于某地”“某公司收购了某公司”“某电影由某演员主演”,模型并不只是学会了“出生于”这种关系。它还把关系两端的实体名一起压进了参数。下次你问它,它可能不需要上下文;参数本身就能把答案吐出来。

这在闭卷问答里是能力,在证据问答里却可能变成风险。

因为证据问答要求的是另一种动作:不要问“我脑子里记得什么”,而要问“当前材料支持什么”。当材料不完整、过期、互相冲突,或者故意包含误导句子时,强参数记忆会诱导模型越过证据,直接猜一个熟悉答案。

KLLM 的匿名化试图切断的,就是“实体表面名 → 具体事实”的高带宽通道。论文使用 Flair 框架里的 18 类 OntoNotes NER 模型,识别人名、组织、地缘政治实体、地点、产品、事件、作品、法律、语言等命名实体;但保留日期、时间、百分比、金额、数量、序数、基数等数值型信息。研究者的理由很直接:数值和时间往往是理解文本结构需要的硬信息,全部抹掉会让语料变得不可读。

这不是完美匿名。论文估计 NER 召回率约为 87%,也就是说还有 10–13% 的实体提及没有被遮掉。代词也没有被替换,所以性别等信息可能泄漏。描述性短语也会泄漏,比如“世界最强国家的第 44 任总统”即使没有名字,仍然能让人猜到是谁。

但关键不在于“完全删除知识”。关键在于削弱主要通道,让模型无法轻易把大量事实绑定到实体名上。

为了控制变量,实验也比较干净。研究者为每个架构训练一对模型:普通语料训练的 SLM,匿名语料训练的 KLLM。架构、训练 token 数、tokenizer、优化配置尽量匹配;差别主要就是预训练语料是否匿名。模型包括 SmolLM-135M、360M、1.7B,以及 LLaMA-3.2-1B、3B;训练数据从 2.5B token 扩到 10B、20B token。

推理时,KLLM 也走同一套三步:先把输入和上下文匿名化,模型在占位符上推理,最后再把输出反匿名化回原实体名。

这一步很重要。KLLM 不是直接在自然名字上工作,而是在训练和推理之间维持同一种“去实体表面”的表示。

RAG 的矛盾不是检索器一个人的锅

很多人讨论 RAG 可靠性时,第一反应是改检索器:召回更多文档,重排更准,切块更好,引用更严格。

这些当然重要。但这篇论文提醒我们,检索器只解决“证据有没有送到门口”。送到门口以后,模型要不要相信证据,是另一个问题。

RAG 的旧矛盾

如果模型在预训练里形成了很强的闭卷事实回忆,它看到证据时并不是一张白纸。它已经有了先验答案。上下文支持这个答案时,一切正常;上下文不支持、证据缺失或检索错误时,问题才暴露出来。

这篇论文最有说服力的地方,是它先证明 KLLM 真的“不会背”。在闭卷 LAMA 和 SQuAD 上,KLLM 的事实回忆几乎塌掉。比如 LLaMA-3B 在 2.5B token 设置下,普通 SLM 的 LAMA 闭卷准确率是 40.3,KLLM 只有 3.8;SQuAD 上 SLM 是 39.7,KLLM 是 1.9。SmolLM-1.7B 在 20B token 设置下,LAMA 从 33.8 掉到 3.7,SQuAD 从 27.5 掉到 1.9。

如果只看这一组数,KLLM 像是被训练坏了。

但接下来反转出现了:一旦把相关信息放进上下文,KLLM 往往更好。

在事实阅读任务上,表 1 显示 KLLM 在 LAMA、SQuAD、NQ、FEVER、HaluBench 上普遍超过对应 SLM。差距在事实核验和幻觉检测上尤其明显:论文正文指出 FEVER 最高提升 +7.8 F1,HaluBench 在 1.7B 规模上最高提升 +10.4 accuracy。20B token 的 SmolLM-1.7B 上,HaluBench 从 70.4 提到 80.3,FEVER 从 86.0 提到 95.1。

这说明匿名化并没有简单摧毁语言能力。它更像是在重排模型的认知优先级:闭卷背事实变差,但有证据时更愿意沿着证据走。

论文还用 SuperGLUE 检查了一下基础语言理解是否保留。LLaMA-3.2-1B 上,KLLM 的 SuperGLUE 平均分 65.8,高于从头训练的 SLM 的 64.4,虽然仍低于原始大规模预训练 checkpoint 的 68.5。这个结果不能证明 KLLM 全面更强,但至少说明“去实体事实”不等于“语义理解崩掉”。

真正的压力测试:证据不完美

现实里的 RAG 几乎从来不是理想考试。

检索可能漏掉金证据;召回段落可能只包含一半事实;上下文可能混进无关句甚至误导句。一个可靠模型不能只在证据完整时答对,它还要在证据不够时知道“这里不该硬答”。

这正是 KLLM 最有价值的实验区间。

证据不完美时,差距最大

在 10B token 设置、SmolLM-1.7B 上,BM25 检索增强问答的表 2 给出了一组直观数字:FEVER 从 79.6 提到 84.2,NQ 从 35.7 提到 44.9,TriviaQA 从 52.8 提到 63.4。NQ 这项相对提升约 25.8%,TriviaQA 约 20.1%,对应论文摘要里“20–25% relative gains”的说法。

同时,KLLM 的拒答率更高:FEVER 13%→20%,NQ 11%→19%,TriviaQA 10%→17%。这不是单纯变保守,因为准确率也在上升。更合理的解释是:它更能区分“证据够不够”。

表 3 更直接。按检索质量切开看,如果 gold evidence 在 top-k 里,SLM F1 是 86.1,KLLM 是 89.4,提升不算夸张;但当 gold evidence 缺席时,SLM 是 54.3,KLLM 是 62.7。证据越不完整,少背事实的模型反而越稳。

附录 D 在跨尺度结果上也支持这个趋势。BM25 下,20B token 的 NQ 从 37.2 提到 47.1,TriviaQA 从 54.6 提到 65.2;FEVER 从 80.8 提到 85.9。附录表 14 还显示,在 gold evidence 缺席时,KLLM 从 61.2 提到 68.9。

论文还做了工具调用版本。模型可以决定是否发起搜索,然后必须用检索证据回答或拒答。NQ 上,SLM+Tool 的 Acc./F1 是 38.2,KLLM+Tool 是 44.9;工具调用率从 41% 提到 56%,unsupported answer 从 21.5 降到 13.2。TriviaQA 上,unsupported 从 18.7 降到 11.4;FEVER 上从 14.9 降到 8.6。

这组结果很关键。它说明 KLLM 改变的不只是“拿到证据后怎么读”,还包括“什么时候该去找证据”。在 agentic 系统里,这一点比单次问答更重要:模型如果太相信自己的参数记忆,就会少调用工具,或者检索后仍然绕开证据;KLLM 的训练偏置让它更像一个愿意查案卷的模型。

校准:可靠不是永远回答,而是知道何时停下

“校准”听起来抽象,但可以用一个简单实验理解。

如果一个模型对 100 道题都说自己有 80% 把握,那它最好大约答对 80 道。如果只答对 50 道,它就是过度自信;如果答对 95 道,它又太保守。校准衡量的,就是置信度和真实正确率之间贴得有多近。

在证据系统里,校准不是附加指标,而是安全阀。因为拒答、检索、转人工、二次验证,很多决策都依赖模型对自己是否可靠的判断。

少知道一点,反而更会说不知道

论文用生成首 token 的概率作为置信度代理,报告 ECE、Brier、AUROC 和 AURC。表 8 里,KLLM 在每个训练规模上都更好。20B token 设置下,ECE 从 0.104 降到 0.076,Brier 从 0.198 降到 0.171,AUROC 从 0.768 升到 0.806,AURC 从 0.198 降到 0.149。

选择性预测实验也类似。模型需要在“回答”和“放弃覆盖率”之间取舍,阈值在验证集上选。表 9 显示,平均 precision 从 41.6 提到 59.0,recall 从 24.9 到 28.0,F1 从 30.9 到 37.5。论文总结为 KLLM 平均 precision +17.4、recall +3.1、F1 +6.6。

再经过“答错样本改标为 I don’t know”的拒答微调后,表 10 中平均 precision 从 52.7 到 73.6,recall 从 19.9 到 22.8,F1 从 28.0 到 34.1。正文有一句与表格略不一致的表述,说 KLLM 平均 F1 为 29.0、baseline 为 23.2;但无论按表 10 还是正文,方向都一致:KLLM 更容易把“不该答”的区域分出来。

这里的机制直觉很清楚。一个强闭卷模型即使没证据,也可能因为“答案在参数里很熟”而给出高置信度。KLLM 的事实名词绑定被削弱以后,置信度更依赖当前上下文能否支撑推理。它不是天然更谦虚,而是少了一条让它误以为自己知道的捷径。

这不是普通噪声增强

一个合理怀疑是:匿名化是不是只是某种数据增强?给语料加噪声,模型泛化就好了?

论文专门做了反证。附录 H 比较了随机 masking、span corruption、entity shuffling。10B 设置下,NQ retrieval:SLM 是 35.7,随机 masking 36.9,span corruption 37.5,entity shuffling 38.1,而 KLLM 是 44.9。FEVER F1:SLM 77.1,三种扰动最高 79.2,KLLM 81.4。ECE:SLM 0.115,entity shuffling 0.104,KLLM 0.083。

也就是说,随便弄脏数据不够。有效的是结构化地拿掉实体身份,同时保留句法、关系、篇章和数值线索。

附录 G 的匿名比例实验也很漂亮。匿名比例 p 从 0 到 0.5、0.75、1.0,闭卷准确率从 34.1 逐步降到 20.9、9.0、2.9;事实 QA 从 43.1 升到 44.5、47.3、48.1;常识平均从 55.6 到 55.9、58.4、60.8。这里出现的是单调趋势,不像偶然正则化。

继续预训练的 ablation 也说明“从头开始”更彻底。把一个 SLM checkpoint 继续用匿名目标训练,事实 QA 从 43.1 到 46.8,常识从 55.6 到 58.9,闭卷从 34.1 降到 28.5。有效,但远不如从头 KLLM 的闭卷 2.9。这说明参数里已经写进去的事实,不是短暂再训练就能完全洗掉。

论文证明了什么,没有证明什么

这篇论文证明得最清楚的,是一个方向性结论:预训练时削弱实体事实监督,可以改变模型的证据使用习惯。它在多个模型规模、多个任务、BM25 / DPR / tool-use 三种检索设置、校准和拒答指标上,都给出了比较一致的证据。

它也证明了一个重要反直觉:闭卷事实回忆下降,不必然带来上下文推理下降。在需要读证据的任务里,少背一点反而可能更可靠。

但它没有证明“所有 LLM 都应该变成 knowledgeless”。

第一,规模还有限。最大训练数据是 20B token,模型最大到 3B 级别。论文自己也承认,trillion-token 级别的预训练里,记忆、泛化和实体绑定可能呈现不同形态。今天的生产级模型远大于这个实验区间。

第二,知识没有被完全删除。NER 召回只有约 87%,描述性短语、代词、事件关系、非实体事实都可能泄漏。KLLM 更准确地说是“entity-linked knowledge suppressed”,不是“没有知识”。

第三,它依赖外部上下文。如果检索完全失败,或者应用场景本来就需要快速回忆稳定事实,普通 SLM 可能更合适。KLLM 把风险从“模型乱背”转移到“系统必须提供好证据”。这对 RAG、工具调用、审计型问答是优点;对离线常识助手未必总是优点。

第四,机制还没有完全解释清楚。附录 L 用线性 probe 看隐藏状态里的实体身份,SLM probe accuracy 是 78.4,KLLM 是 52.1,说明实体身份编码确实弱了。但这还不是完整机制解释。我们还不知道不确定性、事实性和证据对齐在内部表示里具体如何重组。

更大的意义:RAG 不只是外挂检索,而是训练目标匹配

这篇论文最有启发的地方,不是“匿名化实体”这个技巧本身,而是它重新定义了 RAG 的一个前提。

过去我们常把 RAG 当成推理时的补丁:模型先正常训练,部署时再加检索、加引用、加工具、加拒答规则。可如果模型的基础训练一直在奖励参数化回忆,那么后面的证据约束就像给抢答选手加一本参考书——他会看,但不一定真的依赖它。

KLLM 说的是另一条路:从预训练开始,就把模型塑造成一个不那么容易靠名字背答案的读者。它仍然会学语言结构、关系模式、推理习惯;但当具体事实涉及谁、在哪、由谁做、属于哪家公司时,它更需要看当前证据。

这对高可靠应用尤其重要。医疗、法律、金融、企业知识库、科研问答里,正确答案往往不是“互联网上最常见的答案”,而是“当前授权材料支持的答案”。一个会背世界知识的模型看似强大,但在这些场景中,强记忆有时正是幻觉的来源。

当然,最终系统大概不会只有一种模型。更可能的方向是混合:某些稳定常识保留在参数里,动态事实、领域事实、合规事实交给外部证据;模型还要学会什么时候相信自己,什么时候检索,什么时候拒答。

KLLM 的贡献,是把这个混合问题往前推了一步。它告诉我们:可靠性不只是后处理,不只是 prompt,不只是检索器。模型在预训练阶段被奖励成什么样,会深刻影响它后来如何对待证据。

有时候,让模型少知道一点,不是退步。

而是给它一个更诚实的起点。