让小模型少背事实:Co-LMLM 把记忆变成可检索、可删除的外部系统
一句话概括:Co-LMLM 的核心不是给语言模型外挂一个普通 RAG,而是在预训练时就规定一条边界:语言能力留在参数里,事实知识尽量放到可读、可检索、可删除的外部记忆里。和前一代 Rel-LMLM 相比,它不再让模型先写出“实体-关系”或自然语言问题,而是在特殊 token <FACT> 处直接读取隐藏状态向量作为查询。论文在 135M、360M 规模和 Wikipedia / FineWeb-Edu 语料上验证:这种连续查询让小模型的困惑度和事实性明显改善,但它证明的是受控预训练下的知识外置可行性,不是“大模型幻觉已经解决”。

先把问题讲清楚:模型到底在“知道”什么?
大语言模型回答“拿破仑出生在哪里”,看起来像是在脑子里找知识。实际上,它的“脑子”是一堆参数:语言规律、世界事实、训练语料里的偶然共现,都压在同一团权重里。好处是调用快;坏处是你很难问清楚某个答案来自哪里,也很难只删除一个事实而不伤到别的能力。
Limited Memory Language Model(LMLM)想做的是分工:模型参数主要学会读写语言、判断什么时候需要事实;事实本身放进一个人类可读的知识库。生成时,模型遇到需要外部事实的位置,就发起一次查询,把取回的片段插回上下文,再继续生成。
这篇 Co-LMLM 的关键术语是“continuous query”。前一代 Rel-LMLM 要把查询写成离散的、可读的关系形式,比如“Napoleon, birthplace”。Co-LMLM 则把查询变成一个连续向量:模型生成 <FACT>,系统读取这个位置的最后一层隐藏状态,用它去查向量索引。值仍然是人类可读的文本片段,所以证据可以看、可以归因、可以删;只是“钥匙”不再是一句话,而是一段隐藏状态。
这就是论文真正想证明的事:如果事实存储从“参数记忆”改成“外部文本记忆”,查询又从“写出问题”改成“隐藏状态向量”,小模型能不能既更准,又更可控?
为什么普通 RAG 不等于知识外置?
直觉上你可能会说:这不就是 RAG 吗?检索一段文档,塞进上下文,让模型回答。
差别在于边界在哪里。普通 LLM + RAG 的模型参数里仍然记了大量事实,RAG 只是推理时额外给它一些文档。模型答错时,你很难判断它到底是在用检索内容,还是在沿着参数里的旧记忆胡说。更关键的是,如果你想“忘掉”某个事实,删掉检索库并不等于模型参数也忘了。
LMLM 的野心更激进:预训练时就把某些事实 span 从语言建模损失里拿掉,让模型不要靠参数去背这些 span。训练文本会被标成 <FACT>事实片段</FACT>;模型要学会在开头生成 <FACT> 来触发检索,但括号里的事实 token 不作为普通 next-token prediction 的记忆目标。换句话说,参数被训练成“知道何时去查”,而不是“把事实本身背下来”。
前一代 Rel-LMLM 已经展示了这种思路的价值,但它有一个很硬的瓶颈:知识必须能写成关系三元组,训练数据也主要依赖 Wikipedia 这类以实体为中心、结构比较清楚的文本。现实语料里的事实并不总是“主体-关系-客体”。一个事实可能是半句话、一个限定条件、一段定义、一个数字短语。强行写成关系查询,会损失覆盖面,也会让模型在生成时多花 token 去写查询。
Co-LMLM 的答案是:不要让模型把查询翻译成人话。让隐藏状态自己做钥匙。

方法的聪明处:事实值可读,查询钥匙不可读
这篇论文最值得注意的设计,是它没有把“连续向量”用在所有地方。
如果外部记忆的 key 和 value 都是向量,那么系统也许能检索,但人看不懂里面存了什么,删除、审计、归因都会变难。Co-LMLM 只把 key 做成向量,value 仍然是原文里的事实 span。比如文本里有“lycopene is a member of the carotenoid family”,标注器会把“carotenoids”或相应短语标成事实片段,并配一个问题“lycopene 是什么家族的成员?”训练时,文档中 <FACT> 位置的隐藏状态和问题末尾 <FACT-q> 位置的隐藏状态被拉近;别的问题作为负样本。
损失函数也体现了这个分工。论文同时优化两个目标:普通的 next-token prediction,以及一个双向 InfoNCE 对比损失。NTP 不去预测 fact span 内部的 token,避免把事实硬塞回参数;InfoNCE 则让“上下文中需要这个事实的位置”和“这个事实可回答的问题”在向量空间里对齐。默认对比损失权重是 0.25,温度是 0.07。
推理时流程很短:模型自回归生成;一旦吐出 <FACT>,系统读取该位置隐藏状态,查 top-1 事实片段,把片段插到 <FACT> 后面,再追加 </FACT>,然后继续解码。每次检索的模型侧额外成本,主要就是多生成一个 <FACT> token 和一次隐藏状态前向。
这也解释了为什么它比“让模型写一个自然语言问题再检索”更快。论文的 LMLM-Asker 对照需要先解码约 13 个查询 token,再用句向量模型编码问题;在 360M FineWeb-Edu 设置中,单次查询形成成本约 28.6 ms。Co-LMLM 不生成文本查询,表中测得约 2.2 ms,约 13 倍差距。这个数字不包含 FAISS 查库本身,因为两边共享,论文只比较模型形成查询的开销。
真正难的是标注:哪些词应该被外置?

如果只在 Wikipedia 上做实验,可以利用条目结构自动找关系。但 Co-LMLM 想扩展到 FineWeb-Edu 这样的网页语料,就必须回答一个更基础的问题:任意文本里,哪些片段是值得外置的事实?
论文的标注流水线分三步。第一步,用 Gemini 3.1 Pro 给少量种子文档打标,格式是 <FACT q="..." a="...">span</FACT>。第二步,把这个种子集蒸馏成两个轻量模型:一个 ModernBERT-large 的 BIO fact-span 标注器,负责在原文中圈出事实跨度;一个 Qwen2.5-1.5B-Instruct LoRA 问题生成器,负责为每个 span 生成问题和答案。第三步,用这两个标注器跑完整预训练语料。
这里有两个细节很重要。
第一,span 是原文子串,不是生成器自由改写出来的句子。这让事实值“忠于来源”更容易保证。论文还提到,在早期实验中,用 Llama-3.2-1B 做单一生成式标注器时,只有 33% 文档的标注是 faithful;所以作者拆成“先找 span,再生成 QA”。
第二,种子规模并不小。附录写明,Gemini 3.1 Pro 标注了 60,000 篇文档,其中 15,000 篇 Wikipedia、45,000 篇 FineWeb-Edu。训练主模型时,Wikipedia 设置约 3B token;FineWeb-Edu 运行采样 90B token。检索库方面,Wikipedia 索引约 240M 个条目,而重建的 Rel-LMLM KB 约 145M 个条目;扩展到 Wikipedia + FineWeb-Edu 时,索引达到 2.2B entries。
这说明 Co-LMLM 的贡献不只是一个模型结构,也是一套把非结构化语料变成“可训练外部记忆”的数据工程。
数字里最有信号的部分:小模型的事实性突然变强了
论文训练了 SmolLM2-135M 和 SmolLM2-360M 架构的随机初始化模型,并和同语料、同规模的 Standard baseline 比较。所有 Wikipedia 主实验训练 100K steps,context length 4096;FineWeb-Edu 版本 stable steps 更长,并在 cooldown 阶段以 1:1 混合 Wikipedia 和 FineWeb-Edu。
先看困惑度。Simple English Wikipedia 的动态 perplexity 是更接近真实推理的指标,因为它实际查库,而不是喂 oracle span。135M 上,Standard 是 14.4,Co-LMLM dynamic 是 11.8;360M 上,Standard 是 14.0,Co-LMLM dynamic 是 10.5。FineWeb-Edu 版本在图中还给出更低的 static perplexity 5.8。作者也承认 dynamic perplexity 对 <FACT> 触发位置有度量复杂性,所以附录提供了更悲观的 dynamic-normalized 版本;结论排序没有改变。
再看事实性。Table 1 是这篇论文最核心的结果。Co-LMLM-360M 在 TriviaQA / PopQA / SimpleQA / T-REx / FactScore 上分别是 31.4、46.5、21.2、47.4、34.2;同规模 Standard-360M 是 7.5、16.2、0.3、46.3、10.0。也就是说,短问答和长文事实精度提升很大,T-REx 这种受控补全提升较小。
FineWeb-Edu 版 Co-LMLM-360M-FW 进一步达到 TriviaQA 36.9、PopQA 50.6、SimpleQA 21.7、T-REx 54.5、FactScore 33.3。论文特别指出,SimpleQA 21.7 与 gpt-4o-mini 在 public leaderboard 上相近,并高于 Claude Sonnet 4.5 和 Grok 2。这个说法很吸引人,但要加一个边界:它比较的是 SimpleQA Verified 的公开榜单分数,不代表 360M 模型整体能力接近这些前沿模型。
和 Rel-LMLM 比,连续查询也有明显优势。Rel-LMLM-360M 在 TriviaQA、PopQA、SimpleQA、FactScore 上是 15.6、26.6、5.6、22.9;Co-LMLM-360M 分别是 31.4、46.5、21.2、34.2。这个差距支持作者的解释:free-form span 比关系三元组覆盖更广,隐藏状态查询也能携带更完整的上下文。
它不是替代 RAG,而是给 RAG 一个更干净的底座
论文还做了 RAG 对照:BM25 检索 top-4 个 100-word Wikipedia passages,并拼到输入前面。结果很有意思。
Standard-360M-FW 加 RAG 后,TriviaQA 从 18.6 到 42.5,PopQA 从 18.9 到 33.9,SimpleQA 从 1.3 到 15.3,T-REx 从 50.5 到 86.4。RAG 对普通模型当然有用。
但 Co-LMLM-360M-FW 本身已经是 36.9 / 50.6 / 21.7 / 54.5;再加 RAG 后是 48.8 / 51.8 / 27.8 / 86.5。也就是说,RAG 和 Co-LMLM 更像两层不同的系统:RAG 提供文档级上下文,Co-LMLM 提供预训练阶段就外置的、可控的事实记忆。它们不是二选一。
这个结果也提醒我们,不要把 Co-LMLM 简化成“更好的检索增强”。它的重点不是多塞上下文,而是改变模型学知识的方式。
最能说明“外置”的实验:删掉库,能力就掉下去
如果一个模型声称“事实在外部记忆里”,最直接的检验是:把外部记忆关掉会怎样?
Table 3 做了 no KB retrieval ablation。Co-LMLM-360M-FW 原本在 TriviaQA / PopQA / SimpleQA / T-REx / FactScore 上是 36.9、50.6、21.7、54.5、33.3;禁用 KB 后变成 9.2、17.3、0.5、33.3、16.2。Co-LMLM-360M 也类似,从 31.4、46.5、21.2、47.4、34.2 掉到 6.0、13.5、0.7、27.4、18.7。
这不是坏消息,反而是论文想看到的现象:事实性大幅依赖外部库,说明相当一部分知识确实没有被模型参数完整背下来。
更进一步是 TOFU unlearning。TOFU 有 200 个合成作者,每个 20 个 QA,共 4,000 个例子;论文使用 forget 5% 设置。Co-LMLM 的做法不是梯度更新,而是把 Forget Set 对应的数据库条目删除。Figure 5 显示,删除后 forget quality 的 p-value 超过 0.05,同时 model utility 保持;相比之下,NPO 这类参数更新方法会牺牲 utility。这里的结论很清楚:在这个受控 benchmark 上,外置记忆确实让“忘掉某些事实”变成数据库操作。
证据边界:这篇论文证明了什么,没有证明什么

这篇论文证明了三件相当有价值的事。
第一,在受控预训练设置中,把事实 span 从 next-token prediction 目标里拿掉,同时训练模型用连续向量查询外部文本记忆,可以降低困惑度并提升事实性。这个结论有同规模 Standard baseline、重建 Rel-LMLM baseline 和多项事实评测支撑。
第二,连续查询比自然语言查询更适合这类 LMLM。它更快,单次查询形成开销约 2.2 ms vs 28.6 ms;也更准,LMLM-Asker-360M-FW 在 TriviaQA / SimpleQA / FactScore 上只有 15.4 / 7.5 / 25.0,而 Co-LMLM-360M-FW 是 36.9 / 21.7 / 33.3。
第三,知识外置带来了真实的控制接口。禁用 KB 会显著降低事实表现;删除 TOFU forget set 的条目可以达到训练-free unlearning。这些都说明它不是普通的“检索加提示词”。
但它没有证明另外几件事。
它没有证明这种方法已经能在万亿 token、数十亿或数百亿参数规模上稳定工作。作者自己在 Discussion 中说,实验规模仍然 modest,larger-scale pretraining 和 downstream adaptation 留给未来工作。
它也没有证明所有类型的事实都能被干净外置。主要事实评测仍然偏 Wikipedia-style knowledge;FineWeb-Edu 展示了扩展方向,但跨更多知识域的系统评估还没有完成。
它还没有解决“什么时候查”的全部问题。Table 5 的 enforced lookup ablation 很说明问题:强制模型在回答前查一次,Co-LMLM-360M-FW 的 SimpleQA 从 21.7 提到 27.6,TriviaQA 从 36.9 到 43.3。这意味着模型有时知道怎么查,但没有在最合适的时刻主动查。检索时机仍是瓶颈。
最后,外部索引本身也有工程成本。论文使用 FAISS,并用 OPQ / IVF / PQ 压缩索引;扩展到 2.2B entries 已经不是玩具系统。作者也承认,预训练级检索索引有一次性计算成本,后训练和持续学习时如何适配索引仍是开放问题。
为什么这篇论文值得关注?
过去关于 LLM 事实性的很多方案,都在回答“怎么让模型答得更准”。Co-LMLM 问的是更底层的问题:事实到底应该存在哪里?
如果事实全在参数里,模型会显得紧凑、快速,但更新、归因、删除都困难。如果事实全靠推理时 RAG,模型又可能把检索文档当作临时补丁,参数里的旧记忆仍然在暗处干扰。Co-LMLM 给出的是第三种架构:预训练时就让模型形成一种习惯——语言能力留在身体里,事实到外部记忆里找。
这不是终局答案。它依赖大规模事实标注,依赖索引工程,依赖模型学会正确触发 <FACT>。但它把“可控知识”从后处理技巧推进到了预训练目标本身。对事实性、可归因、版权删除、隐私遗忘、企业知识更新这些问题来说,这条路线比单纯追求更大参数量更值得长期跟踪。
也许未来的小模型不会靠背下整个世界来变得有用。它们会像一个受过训练的研究助理:知道什么时候该停下来,伸手去一个可审计的资料柜里取证据,然后把证据放回上下文里继续说话。Co-LMLM 的意义,就在于第一次把这件事做成了一个可训练、可评测、可扩展到网页语料的系统。