DFM块级少查32倍,Mistral六问答超基线12.71%

Deep Fusion Memory: A Chunk-Level Parametric Memory for Large Language Models

Rubin Wei, Siyuan Sun, Hao Sun, Yuliang Liu, Xiang Shi, Jiarui Wang, Junming Zhang, Zhouhan Lin

cs.CL

2026-10-18

DFM用块向量预测记忆并写入冻结模型中间层,推理不查库。Mistral六问答均分27.21,超最强基线12.71%。

这篇在解决什么

外部知识进大模型,继续预训练和 LoRA 把语料写进参数,推理不用查库,但新语料会挤掉旧能力。RAG、RETRO 在生成时读检索来的证据,库可以换,每次请求都要付检索和读上下文的延迟。参数记忆把检索挪到训练之前。MLP Memory 和 Memory Decoder 预测检索得到的下一 token 分布,每个 token 都要单独查库。4B token 的维基对应 40 亿次查询,融合停在输出概率,中间层看不到这段记忆。

DFM(Deep Fusion Memory)按块给监督,默认 32 个 token 共享一份目标,再把预测出的记忆写进解码器中间层。主干冻结,推理不再查库。

方法

训练序列切成互不重叠的块,主实验每块 32 个 token。从第二块起,冻结的 Qwen3-Embedding-0.6B 编码前一块,取 top-16 个邻居块,按相关度把固定向量排成目标记忆。第一块没有前文,不参与监督,记忆更新为零。

预测器是因果 Transformer,加 K 个线性头,一个头一个记忆槽。输入是前一块 token embedding 的均值。因果掩码使第 j 块的记忆只能看见更早的块,与下一 token 预测看得到的上下文一致。共享投影先做 LayerNorm,再过两层线性,中间用 GELU,把 K 个向量映到主干隐藏维度,选中的解码层共用。

融合位于第 9、16、24、31 层。token 隐藏状态做 query,K 个记忆槽做 key 和 value。每个头有 sigmoid 门,由当前状态产生 0 到 1 的系数,乘在该头输出上。门偏置初始为 -2,σ(-2)≈0.119,先把记忆分支压小,避免冲乱冻结主干。该分支与自注意力并联进入残差,之后仍走原来的 FFN。

损失是下一 token 交叉熵加上记忆 MSE,系数 β=1。主干、检索编码器与目标记忆保持不动。推理只读输入 embedding,不查库。问答时记忆由 prompt 算一次,生成期间固定,只有 prompt 位置会读。

结果

问答在 2018 年 12 月英文维基上训练一个 epoch,约 4B token。任务是 NQ、WebQA、HotpotQA、2Wiki、MuSiQue、Bamboogle,均分取六项不加权平均。两个主干的附加参数都是 0.75B,AdamW,学习率 1e-5。LoRA 新增参数量与 DFM 对齐,CPT、LoRA、DFM 均训练一个 epoch。RAG 拼入同一嵌入模型的 top-1 段落,xRAG 把文档向量压成一个前缀 token。

主干最强基线基线均分DFM 均分相对提升
Mistral-7B-v0.3xRAG24.1427.2112.71%
Qwen3-8B-BaseMLP Memory23.8026.4611.19%

Mistral 六项都涨,均分从 13.63 到 27.21。NQ 从 20.30 到 33.57,比 xRAG 的 27.39 高 6.18;WebQA 从 29.28 到 42.47,比 LoRA 的 40.21 高 2.26;HotpotQA 为 29.53,只比 RAG 的 29.09 高 0.44;Bamboogle 从 3.91 到 22.65。2Wiki 从 5.87 到 25.00,RAG 仍是 31.02。CPT 均分 13.48,LoRA 15.47,MLP Memory 22.09。

Qwen3-8B 均分从 22.71 到 26.46,绝对高 2.66。WebQA 从 41.78 降到 39.47,该项 MLP Memory 为 43.26。NQ 从 17.60 到 27.46,高于 RAG 的 24.42。2Wiki 从 24.83 到 32.38,MuSiQue 与 Bamboogle 也最好;HotpotQA 为 26.46,低于 xRAG 的 27.74。

代码、数学、法律各训一个模型。HumanEval、HumanEval+、GSM8K、LawBench 四项均值,4B 从 58.18 到 64.69,高 6.51;8B 从 63.14 到 67.52,高 4.38。4B 的 HumanEval 从 62.04 到 69.51,HumanEval+ 从 57.32 到 62.80,GSM8K 从 83.40 到 86.05,三项都高于 CPT 与 LoRA。LawBench 上 4B 从 29.96 到 40.41,低于 CPT 的 41.66;8B 从 38.45 到 46.61,高于 CPT 的 45.09 与 LoRA 的 45.73。8B 的 HumanEval+ 和 GSM8K 仍是 LoRA 领先,65.85 与 87.19,DFM 为 64.02 与 86.43。RAG 的 LawBench 掉到 4B 的 24.35、8B 的 26.89。

相对 token 级 MLP Memory,4B token 语料的查询从 40 亿降到 1.25 亿,少 32 倍。对方每次取 1024 个邻居,DFM 取 16 个,取回条目从 4.096T 降到 20 亿,少 2048 倍。16 张 A800 上约 24 小时,对方约 64 小时,少 62.5%。附加参数 0.75B 对 1.5B,Qwen3-4B 上为 0.6B。

消融只在 Mistral 上跑了一次。块长 16、32、64 的均分为 26.51、27.21、27.07,加倍后只掉 0.14。槽数 2、4、8、16 对应 26.88、27.04、27.09、27.21。只融合末层是 21.11,末四层是 22.07;从第 9 层起放 2 到 8 层,均分在 27.09 到 27.54。四层改放到 2、10、21、31 得到 26.32,低 0.89。无门为 26.83,门偏置从 0 起步则是 27.90,高于默认 -2。

为什么重要

推理不访问向量库,前向与普通解码相同。知识更新仍要重做离线检索并重训记忆模块。

Qwen3 上 CPT 均分 15.13,LoRA 为 14.66,都低于原模型 22.71,DFM 升到 26.46。冻结主干之后,原参数没有被续训改写。

显式检索仍会在部分多跳集上更高,代码和数学上也有 LoRA 或 CPT 领先的指标。提升就是几个点。对应的设置是主干冻结,线上不检索,记忆进入中间层。

局限与存疑

Qwen3 的 WebQA 下降。Mistral 的 2Wiki 上 RAG 为 31.02,DFM 为 25.00,差 6.02。连续向量还替代不了放进上下文的原文段落。

2048 倍是两件数相乘。32 个 token 一块,查询少 32 倍;邻居从 1024 改到 16,再少 64 倍,这步是超参。top-8 均分 27.09,只比 top-16 低 0.12,五项还更高,top-16 多出来的分数主要在 Bamboogle。拿 top-1024 做分母,条目倍数会被放大。

RETRO 基本贴着原模型,Mistral 13.73 对 13.63,Qwen3 22.69 对 22.71,文中没解释原因。Bamboogle 在门控表里,偏置 -6 为 14.94,默认 -2 为 22.65,无门 19.35,偏置 0 为 19.69。均分被这个小集合拉动,消融又都是单次。偏置取 0 的均分 27.90,高于默认 -2,默认是为了训练初期少扰动主干。

记忆只从 prompt 算一次,生成时不更新,只有 prompt 位置去读,边生成边回忆没有测。维基停在 2018 年 12 月,时效差没有讨论。领域实验没比 MLP Memory,规模停在 8B,代码尚未发布。

术语

原文与代码

相关论文

全部论文解读