“失忆”反而更靠谱:把实体名字抹掉再训练,模型反而少幻觉了
你有没有遇到过这样的情况——问ChatGPT一个事实问题,它信誓旦旦地给你一个答案,你一查,错了。再问一次,换个问法,它又信誓旦誓地给了另一个答案,还是错的。
这种”自信地胡说八道”就是著名的幻觉(hallucination)。根源在于:大模型在预训练时把海量事实塞进了参数里,但这些事实可能过时、不完整或互相矛盾。模型分不清”我知道”和”我猜的”。
2026年7月,来自HPI、开普敦大学、哥本哈根大学等机构的研究团队在论文《Knowledgeless Language Models: Suppressing Parametric Recall for Evidence-Grounded Language Modeling》中提出了一个看似激进、实则巧妙的方案:在预训练阶段就把语料里的命名实体全部匿名化,让模型从根上”学不到”具体事实,只能学会从上下文中找答案。
他们把这种模型叫做KLLM——Knowledge-“Less” Language Model(”无知识”语言模型)。
一、问题的本质:参数性回忆 vs 证据性推理
先厘清两个概念。
参数性回忆(parametric recall):模型把”巴黎是法国首都”这个事实编码在权重参数里。你问它”法国首都是哪”,它直接从参数里”回忆”出来。快,但不可靠——你不知道这个事实是什么时候 encode 进去的、是否准确、会不会和上下文冲突。
证据性推理(evidence-grounded reasoning):模型在上下文里看到”巴黎是法国首都”,然后据此回答。慢一点,但可追溯——答案来自你提供的材料,不是模型脑子里残存的记忆。
理想状态下,一个靠谱的助手应该优先用证据性推理:你给它一份文档,它基于文档回答。但现实是,模型太依赖参数性回忆了,即使你给了正确的上下文,它也可能被参数里的旧知识带偏。
二、KLLM的做法:把名字换成占位符
研究团队的做法直截了当:在预训练语料里,用命名实体识别(NER)把所有命名实体——人名、地名、组织名、日期、数字等——替换成统一的占位符。
比如原文是: > “2023年,OpenAI发布了GPT-4,在MMLU上达到了86.4分。”
匿名化后变成: > “[ENTITY_1]年,[ENTITY_2]发布了[ENTITY_3],在[ENTITY_4]上达到了[ENTITY_5]分。”
模型在训练时只能学到语法结构、推理模式、上下文关系,但学不到”OpenAI发布过GPT-4″这个具体事实。
这就像教一个人下棋——你教他规则和策略,但不告诉他任何历史棋局。他不会背棋谱,但他理解棋理。真要复盘某局棋,你得把棋谱给他看。
三、实验设计:同架构、同数据量、同训练流程
为了公平比较,团队训练了两组模型:
– SLM(Standard Language Model):正常预训练,作为基线 – KLLM:在同样的语料上预训练,但实体被匿名化
两组模型使用了相同的架构(SmolLM-135M/360M/1.7B、LLaMA-1B/3B)、相同的训练token数(2.5B、10B、20B)、相同的优化器配置。唯一的区别就是语料里有没有实体。
然后在5个任务上测试:LAMA(事实回忆)、SQuAD(阅读理解)、NQ(自然问题)、FEVER(事实验证)、HaluBench(幻觉检测)。
四、结果:失忆的模型反而更强
结果可以用一句话概括:KLLM在需要参数性回忆的任务上变差了,但在所有需要上下文证据的任务上都变好了。
具体看数据:
事实回忆(LAMA,闭卷问答): – SmolLM-1.7B(2.5B tokens):SLM 43.2 → KLLM 48.5(等等,KLLM反而更高?) – 作者解释:LAMA虽然是闭卷,但很多题可以通过推理答对,KLLM的推理能力没有被事实记忆”污染”,反而推理更纯粹
阅读理解(SQuAD,有上下文): – SmolLM-1.7B(2.5B tokens):SLM 55.9 → KLLM 59.8 – SmolLM-1.7B(10B tokens):SLM 47.7 → KLLM 53.8
事实验证(FEVER): – SmolLM-1.7B(2.5B tokens):SLM 16.3 → KLLM 19.2 – LLaMA-3B(2.5B tokens):SLM 22.1 → KLLM 26.9
幻觉检测(HaluBench): – SmolLM-1.7B(2.5B tokens):SLM 64.3 → KLLM 74.7 – LLaMA-3B(2.5B tokens):SLM 67.7 → KLLM 75.8
最亮眼的数字:在检索增强(retrieval-grounded)设置下,当检索到的证据不完美时,KLLM比SLM有20-25%的相对提升。
五、为什么”失忆”反而让模型变好?
直觉上,知道更多事实应该更有利。为什么去掉事实反而变好了?
1. 消除了参数性回忆和上下文证据的冲突。 标准模型在看到上下文时,会同时激活参数里的相关知识。如果两者一致,没问题;如果参数里的知识过时或错误,它就会被带偏。KLLM没有参数性回忆可激活,只能依赖上下文,反而更忠实。
2. 强迫模型学会”读”而不是”背”。 匿名化训练让模型从一开始就必须通过上下文来理解实体关系,这培养了更强的阅读理解能力。就像一个学生如果从不背答案,就只能学会解题方法。
3. 更好的校准(calibration)。 KLLM在ECE(期望校准误差)、Brier分数、AUROC上都优于SLM。也就是说,当它说”我90%确定”时,它确实大约90%是对的;而SLM说”我90%确定”时,实际正确率可能只有70%。这一点对实际部署至关重要——一个知道自己不知道什么的模型,比一个什么都自信的模型有用得多。
4. 更可靠的弃权(abstention)行为。 KLLM在不确定时更倾向于说”我不知道”或”上下文里没有这个信息”,而不是硬编一个答案。
六、代价是什么?
KLLM并非没有代价:
– 闭卷问答能力大幅下降。如果完全不给上下文,KLLM几乎无法回答事实性问题——这是设计使然,但确实限制了使用场景。 – 需要配套检索系统。KLLM必须和检索(BM25、DPR)或工具调用配合使用,不能”裸奔”。这增加了系统复杂度。 – 匿名化引入的噪音。NER不完美,有些实体可能被漏掉,有些非实体可能被误标。作者在附录里做了消融实验,证明对最终效果影响不大。 – 规模限制。目前只在1.7B以下的模型上验证过,更大规模是否保持趋势还未知。
七、更深的启示:知识的本质是什么?
这篇论文让我想到一个哲学问题:对于语言模型来说,”知道”一个事实意味着什么?
传统的回答是:编码在参数里。但KLLM挑战了这个回答。它暗示我们,也许“知道”应该被重新定义为”能够从证据中推导出来”,而不是”记忆在权重里”。
这和人类认知有微妙的对应。一个历史学家可能记不住所有年代,但他知道怎么去查、怎么交叉验证、怎么判断史料可信度。他的”知识”不在于背诵,而在于方法。KLLM走的就是这条路。
更激进地想,这可能是解决AI幻觉问题的根本方向之一。与其在训练后用RLHF来”教”模型不要幻觉(这就像教一个爱说谎的人不要说谎,治标不治本),不如从训练范式上就让模型”说不了谎”——因为它根本不知道具体事实,只能说上下文里有的。
八、实际应用场景
KLLM最适合的场景是:
– RAG(检索增强生成)系统:给模型提供检索结果,让它基于结果回答。KLLM对证据的忠实度更高。 – 企业知识库问答:企业内部文档经常更新,参数性回忆必然过时。KLLM只看当前文档,天然避免了”用过时知识回答新问题”的尴尬。 – 法律、医疗等高风险领域:这些领域容不得幻觉,需要答案可追溯到具体文档。KLLM的”证据优先”特性天然契合。 – 多语言场景:匿名化在不同语言间更通用,KLLM可以更专注于跨语言的推理能力。
九、局限与展望
作者诚实地列出了几个局限:
– 规模未验证:只在1.7B以下测试,百亿参数级是否保持趋势未知 – 实体识别不完美:匿名化质量受NER精度限制 – 依赖外部检索:如果检索质量差,KLLM也会跟着差 – 机制理解不足:为什么匿名化训练会改善校准,目前只有现象层面的观察
但作为一个概念验证,KLLM已经足够有说服力。它不是在现有框架下做微调,而是提出了一个不同的预训练范式——这在当下”更大、更多数据”的军备竞赛中,是一股难得的清流。
十、结语
“失忆”让模型变好,这听起来像悖论,但细想又合情合理。人类的知识体系从来不是靠一个人记住所有事,而是靠”知道去哪查”和”能判断查到的东西可不可信”。KLLM把同样的智慧用在了AI上。
在一个模型参数越塞越满、幻觉却越来越隐蔽的时代,这篇论文提醒我们:有时候,少知道一点具体的事,多学会一点做事的方法,反而是更可靠的道路。
—
论文链接:https://arxiv.org/abs/2607.12831 HTML全文:https://arxiv.org/html/2607.12831
