2026年初,DeepSeek团队发表了一篇关于Engram架构的论文,里面有一组数字让人有点坐不住。他们做了个实验,把模型里负责"条件记忆"的那部分功能临时关掉,结果模型回答事实性问题的能力直接从100%掉到了61%左右,但面对需要理解上下文、做推理的任务,表现几乎没受影响,还能维持在72%上下。
这个落差说明了一件事:这个新架构里,好像存在一块专门管"记事儿"的区域,和负责"想事儿"的区域,是分开的。
这事儿乍一看不算惊天动地,但往深了想,会发现它可能打开了一扇一直紧闭的门。
大语言模型有个众所周知的毛病:它记住的世界,停留在训练数据截止的那一刻。某个企业的CEO换了人,某条新闻有了后续进展,模型统统不知道,还会一本正经地告诉你过时的信息。想让模型"学会"新知识,过去的办法基本就两条路,要么把整个模型重新训练一遍,代价高到大部分团队承受不起,要么做"知识编辑",直接在模型参数里动手术,改掉某个具体的事实关联。
但知识编辑这件事,做起来远没有听上去那么干脆。
记忆分散在四面八方,怎么一次改干净
传统的Transformer模型,参数是高度纠缠在一起的。你想改"某人的雇主从A公司变成B公司"这一个事实,很可能会不小心影响到模型对其他完全不相关问题的回答,因为这个知识点和很多其他知识点共享着同一组参数。这就好比你想把家里电路图纸上的一盏灯重新接线,结果发现这根线路和厨房的插座、卧室的空调绞在了一起,稍有不慎就全楼跳闸。
Engram这类条件记忆架构的出现,给这个老问题提供了一个新思路。
条件记忆:模型在处理每个词的时候,会往前看几个词,组成一个"n-gram"(也就是连续的n个词构成的片段),然后去一张巨大的"查找表"里找这个片段对应的向量表示,把它加进当前的计算里。这就像模型随身带了一本小本子,看到"某人的雇主"这几个字,就翻到对应那一页,把记下的内容拿出来用。
这套机制最早是为了"扩容"而设计的。MoE(混合专家模型)通过让每个词只激活一部分专家网络来省算力,条件记忆走的是另一条路,它不增加专家,而是增加一张可以按需查阅的记忆表,让模型在几乎不增加计算量的前提下,塞进更多参数、记住更多细节。DeepSeek-V4.1-Flash和Qwen3.8-Flash-Next这些模型都用上了类似的设计。
但EngramEdit这篇论文的作者们注意到了一件更有意思的事:如果事实知识主要存在这张查找表里,而通用的推理能力主要存在Transformer主干网络里,那是不是意味着,我们可以只改查找表,不碰主干网络,就能完成知识更新?
这个想法听起来很美好,但真做起来,会撞上三堵墙。
三个麻烦:说法不同、牵一发动全身、改了不该改的
第一堵墙是泛化问题。
同一个事实,人们会用很多种方式表达。"Alex的雇主是谁"和"谁雇用了Alex"说的是一回事,但两句话里"Alex"前面的词不一样,激活的n-gram自然也不一样。你只改了"雇主"这个说法对应的记忆条目,换个问法,模型立刻"失忆",退回到旧答案。
第二堵墙是效率问题。
不同的事实编辑请求,可能需要用到同一个n-gram。比如"of Alex"这个片段,可能同时出现在"Alex的雇主"和"Alex的住址"两条不同的编辑请求里。如果每条编辑各自为政,互相不商量,改出来的结果很可能互相打架,一个编辑成功了,另一个却因为共享的记忆条目被覆盖而失败。
第三堵墙是特异性问题。
越短、越常见的n-gram,被激活的频率越高,牵连的无关查询也就越多。改一个只有两三个词长度的片段,看起来省事,实际上可能影响成千上万个和这次编辑完全无关的问题的答案。
这三个问题合在一起,其实指向同一个矛盾:记忆查找是按"词语片段"来组织的,而人类想编辑的是"事实"。片段和事实之间不是一一对应的关系,一个事实可能散落在很多片段里,一个片段也可能被很多事实共用。
EngramEdit要解决的,正是这个错位。
先算出"应该记成什么样",再分配着去改
EngramEdit的整体思路,拆开来看其实是三步走:先搞清楚模型应该"记住什么",再搞清楚这些记忆分别藏在哪些n-gram里,最后统一算一笔账,把改动合理地分摊下去。
第一步,目标记忆的计算。
对于一条编辑请求,比如把"Alex的雇主"从"实验室M"改成"实验室N",EngramEdit先让模型自己生成这句话的几种不同说法,比如"雇用Alex的机构""Alex所在的实验室"之类。原始说法加上这些生成出来的说法,构成一组表达方式。
接着,论文借鉴了此前知识编辑领域里"locate-then-edit"(先定位后编辑)这一类方法的核心思路。
locate-then-edit:一种知识编辑范式,先找到模型内部和某个事实相关的计算环节,算出这个环节"应该输出什么"才能让模型给出新答案,再反推出需要对参数做什么样的调整,才能让这个环节真的输出那个目标值。ROME和MEMIT是这类方法里比较有代表性的工作。
具体做法是,在每一种表达方式对应的记忆表示上,临时加一个可学习的扰动项,然后只优化这个扰动,目标是让模型在加了扰动之后,预测出新答案"实验室N"。因为这个扰动是所有表达方式共享的,优化出来的结果就是一个能同时满足各种说法的"目标记忆"。重要的是,这个扰动只是用来计算目标值的工具,算完就扔掉,不会真的写进模型里。
这里有个细节值得多说一句:为什么要用生成的多种表达方式,而不是只盯着原始的编辑提示?
想象你在教一个助理记住"张总的新职位是副总裁"这件事。如果你只告诉他"张总的新职位是副总裁"这一句话,下次有人问"张总现在是什么级别",助理可能完全反应不过来,因为他只认识你教他的那个固定说法。但如果你换着花样说了好几遍,"张总升了""张总现在是副总裁了""张总的新title是副总裁",助理大概率能在各种问法下都给出正确答案,因为他记住的不是一句话,而是这件事本身在不同语境下的样子。如果省掉这一步,直接只用原始编辑提示去优化,论文里的消融实验显示,CounterFact数据集上的"泛化"得分会从97.0掉到81.5,足足掉了15个百分点,说明这一步不是锦上添花,而是真正撑起泛化能力的关键一环。
第二步,多表达方式的记忆映射。
算出目标记忆之后,还得知道这个目标应该体现在哪些具体的n-gram条目上。EngramEdit会扫描每一种表达方式在"主语最后一个词"这个位置,把这个位置能查到的所有n-gram(论文里用的是长度2、3、4的组合)都记下来,构成一个"映射矩阵"。这个矩阵的作用,简单说就是记清楚"哪句话用到了哪个记忆条目",如果好几句话、好几条编辑请求都用到了同一个条目,这个矩阵里就会体现出来。
第三步,也是最关键的一步,联合更新分配,并且对常被"借用"的记忆条目加倍小心。
这一步要解决的,正是前面说的第二堵墙和第三堵墙。
具体做法是把所有共享某个n-gram的表达方式、所有编辑请求放在一起,统一求解一个优化问题:让每个记忆条目的更新量,既能尽量满足所有相关目标的要求,又要在更新幅度上受到约束,约束的强度取决于这个条目被"借用"的可能性有多大。
论文用n-gram的长度和它在语料库里出现的频率两个指标,来估计一个条目被无关输入"借用"的概率。越短、越常见的条目,受到的惩罚越强,允许改动的幅度就越小,反过来,越长、越冷门的条目,改动空间就越大。
这套逻辑放在生活里,很像图书馆管理员修改一本参考书的内容。如果要改的是一本小众专业手册里的某个冷僻条目,几乎不会有别的读者查到这一页,管理员可以放心大胆地整段重写。但如果要改的是一本通用词典里"的""是""在"这类高频词条,哪怕只改一个字,也可能影响到成千上万本正在参考这本词典的其他书。所以聪明的管理员不会对所有词条一视同仁地修改,而是对高频词条下笔格外轻,对冷僻词条可以放开手脚。如果不做这个区分,统一用同样的力度去改,结果就是论文消融实验里展示的那样,去掉这层"按复用程度加权"的正则化之后,CounterFact上的特异性得分从85.2掉到84.6,ZsRE上的效力得分从97.3掉到96.0,看起来掉得不算夸张,但背后对应的是无关查询被悄悄污染的真实代价。论文的分析还显示,超过92%的新增错误,都和被更新过的记忆条目的激活有关,这说明"借用越多惩罚越重"这条规则,确实是在精准地堵住漏洞,而不是在装样子。
数学上,这套联合求解有闭式解,论文证明了它在几个方面都站得住脚:它是满足约束条件下更新代价最小的方案,也就是说不会做多余的、没必要的改动;当目标值因为优化过程存在一点点波动时,只要正则化系数设得合理,最终解出来的更新量不会被这点波动带偏太远;而且如果不同编辑请求之间完全没有共享任何记忆条目,整个大问题可以拆成几个互不相关的小问题分开求解,结果和合在一起求解完全一样,这对工程实现上控制计算量很有帮助。
实验结果:改得准,记得牢,不殃及无辜
研究团队在三个主流知识编辑基准上做了测试。
CounterFact是一个专门用来测试"反事实"知识编辑的数据集,里面的编辑请求往往是把一个真实事实替换成一个虚构的新事实,比如把某人的母语从法语改成英语,用来考察模型是否真的能接受这种改动。
ZsRE则是以问答对的形式组织知识,每条编辑请求对应一个问题和一个目标答案,相对更贴近真实场景里信息更新的样子。
在这两个数据集上,EngramEdit在经历2000次连续编辑之后,CounterFact上的效力达到99.5%,泛化达到97.0%,特异性保持在85.2%;ZsRE上效力97.3%,泛化93.7%。和表现最接近的几个基线方法相比,EngramEdit在"泛化"这个维度上的优势尤其明显,这正好对应前面说的,它靠多表达方式和联合更新解决了"换个说法就失忆"的问题。
| 方法 | CounterFact效力 | CounterFact泛化 | CounterFact特异性 | ZsRE效力 | ZsRE泛化 |
|---|---|---|---|---|---|
| FT | 94.9 | 63.6 | 43.8 | 76.7 | 76.8 |
| UnKE | 84.5 | 58.0 | 47.5 | 86.9 | 79.0 |
| MoEEdit | 99.1 | 67.1 | 63.5 | 85.1 | 78.7 |
| MFT-S | 99.0 | 59.1 | **85.2** | 66.9 | 56.5 |
| EngramEdit | **99.5** | **97.0** | 85.2 | **97.3** | **93.7** |
更有意思的是在MQuAKE这个多跳推理数据集上的表现。
多跳推理指的是一个问题的答案,需要串联多条事实才能得出,比如"某足球运动员所属国家的国家元首是谁",先要知道这个运动员的国籍,再要知道这个国家现在的元首是谁,中间经过两次事实查询才能到达最终答案。
在标准提示下,EngramEdit和表现最好的基线方法FT相差不大。但一旦换成思维链提示,也就是让模型先一步步写出推理过程再给出最终答案,EngramEdit的准确率直接飙升到25.2%,而排名第二的FT只有5.7%,差不多是接近3倍的差距。论文给出的解释是,思维链推理的中间步骤,本身就会显式地把相关事实说出来,这恰好激活了对应的、已经更新过的记忆条目,让修正后的信息能够顺着推理链条一步步传递下去。这也验证了条件记忆确实在参与实际的推理过程,而不只是一个摆设。
两个额外的实验,把这个结论钉得更实。
一个是直接做干预实验:在编辑完成后的模型上,人为地把某条事实对应的记忆更新关掉,其他一切不变。结果是,原本能正确回答的提示里,89.4%直接失败,模型重新偏向了旧答案。但如果关掉的是数量相同、长度匹配,但和当前事实无关的其他更新,成功率几乎没有变化。这说明模型确实是在依赖这些特定的记忆更新来完成任务,而不是巧合。
另一个是长期稳定性测试,把编辑数量一路推到5000条,结果显示EngramEdit的效力和泛化优势依然保持,而且在五个常见能力测试任务上,经过5000次连续编辑后,整体表现仍然保留了原来96%以上的水平,只有一个叫MRPC的任务(判断两句话是否表达相同意思)出现了比较明显的下降,论文推测这是因为判断句子等价性本身就对局部词语表示的微小变化比较敏感。
这里也暴露出EngramEdit没有彻底解决的地方。
论文自己做的分析发现,大约8.66%的编辑请求,会和其他编辑共享某些被更新的记忆条目,而在编辑失败的案例里,97.96%都出自这个"有共享"的小群体。换句话说,大部分编辑之所以顺利,是因为它们各自占据了互不干扰的记忆空间,一旦两条编辑请求真的狭路相逢,竞争同一批记忆条目,失败率会明显抬头。这不算是方法的缺陷,更像是条件记忆这个架构本身的物理限制,记忆空间是有限的,n-gram的组合数量终究是有上限的,当编辑请求越来越多,相撞的概率也会越来越大。
写在后面
读完这篇论文,我反而觉得最有意思的不是它解决问题的巧妙,而是它揭示出的一个架构特性,原本只是为了省算力而设计的查找表机制,意外地成了一个可以局部手术的接口。这有点像某个工程团队本来只是想给大楼加装一套节能照明系统,结果发现这套系统天然带有独立的开关回路,可以不碰主体电路就单独维修某一盏灯。设计初衷和实际用途之间的错位,有时候比精心设计的功能更值得玩味。
另一个让我反复琢磨的细节是,论文里那组"关掉记忆后性能断崖式下跌"的对照实验。事实知识从100%掉到61%,但其他任务的能力几乎不受影响,这其实在暗示一件更大的事:这类架构正在把"知道什么"和"会不会想"这两种能力,从物理上掰开。放在更长的时间线上看,如果这个方向继续往前走,会不会有一天,我们更新AI的知识,会像今天更新手机系统的词库一样随意,而它的"思维方式"却几乎不用动?这个问题,这篇论文没有回答,但它把问题摆到了桌面上。
Q&A
Q1:EngramEdit是用来做什么的?
A:EngramEdit是一种针对条件记忆架构大语言模型的知识编辑方法,它能够只更新模型里存储事实的n-gram记忆条目,不改动负责通用推理的Transformer主干网络,从而实现独立、精准的事实知识更新。
Q2:EngramEdit和传统的知识编辑方法有什么不同?
A:传统方法通常要改动模型主干网络的参数,容易牵连无关知识。EngramEdit依托条件记忆架构,把事实存储和通用计算分开,只改查找表里的记忆条目,并通过联合优化和按复用频率加权的正则化,兼顾了编辑效果和对无关知识的保护。
Q3:EngramEdit编辑后的知识能用于多步推理吗?
A:可以。在MQuAKE多跳推理测试中,配合思维链提示,EngramEdit的准确率达到25.2%,接近表现第二的基线方法的3倍,说明更新后的记忆条目能在推理链条的中间步骤被正确激活和使用。







