昊梵体育网

# 让模型真正拥有记忆:MemT 1.0 最近看到一个很有意思的记忆项目,叫 MemT 1.0,是记忆张量团队做的。 看完他们的技术报告之后,我觉得这个思路值得好好聊一聊。 ## 一、现在的模型记忆,全靠外挂 我们平时说的“模型有记忆了”,仔细想想,都是在往上下文窗口里塞文本。 你写的提示词是文本,

让模型真正拥有记忆:MemT 1.0

最近看到一个很有意思的记忆项目,叫 MemT 1.0,是记忆张量团队做的。

看完他们的技术报告之后,我觉得这个思路值得好好聊一聊。

一、现在的模型记忆,全靠外挂

我们平时说的“模型有记忆了”,仔细想想,都是在往上下文窗口里塞文本。

你写的提示词是文本,上传的文件是文本,Agent 搜回来的知识库片段还是文本。最后都塞进一个窗口里,这次对话用完就没了。

下次开一个新会话,所有东西又得重新加载一遍。

这种做法很自然,但用久了会碰到几个问题。

先说第一个,记什么东西是预先设好的规则决定的。符合规则的内容,模型会存下来;不符合的,就直接滑过去了。有些可能很重要的信息,因为没触发规则,模型根本不知道它存在过。

然后第二个,越用越贵。记忆攒得越多,上下文就越长,每次对话的成本就越高。想把 AI 用在长期场景里的人,这个成本是实打实的。

第三个,记忆没法真正沉淀。无论你是第一次用还是第一百次用,体感上都像是模型在回答你之前翻了一下工作手册。它只是在参阅文件,没有真正记住什么。

这跟人的记忆完全不一样。我们学过的东西,用过的经验,会变成直觉的一部分,想都不用想就能调用。但模型做不到,它每次都得重新翻笔记。

二、把记忆写进参数里

MemT 1.0 试了一条不同的路:让记忆长在模型里面。

具体做法是在 Transformer 的一部分层里,加了一个记忆块,跟原来的注意力机制并排跑,两边的输出加在一起。这个过程中,模型本身的权重不动。

记忆块分两部分。一部分叫本地记忆,就是记忆本身,一块矩阵,随着对话不断更新。另一部分叫超记忆,负责决定怎么写、怎么读,这部分参数上线之后就固定了。

36B 的模型,记忆状态只占 10M。288B 的模型,占 336M。都是固定大小。

也有人之前试过类似的想法,比如 Temp-LoRA,拿对话历史现场训一个小的适配层。但太慢了,128K token 的历史从准备到答完要 700 多秒,直接带全文只要 30 秒。这条路走不通。

三、记忆的读和写

记忆是怎么写进去的呢?

每轮对话结束的时候,模型会把这一轮所有的输入和输出逐个 token 过一遍,然后决定三件事:新内容存在哪个位置,那个位置上原来的东西擦掉多少,新内容写进去多少。

举个例子。用户先说展览定在周六,后来又说改到周日。模型读到“周日”的时候,就会把之前存的“周六”擦掉。同时,整块记忆也会统一淡掉一点,越早写进去的,淡得越多。

这里有个小技巧。如果几万个 token 连着改,记忆里的数值容易越滚越大,最后把整个系统搞崩。所以他们做了一个限制:擦除的时候只会把数值往小了调,不会放大。这样无论聊多久,记忆大小始终固定。

写完之后,这一轮的原文就不用往下带了。

读取的时候也很简单。模型在回答问题时读一下记忆,混合自己原有的权重去推理。读一次的开销是固定的,用了一年和用了一天,速度没有区别。

这一点挺值得琢磨的。外挂文本的方案,记忆越多,速度越慢,成本越高。参数记忆反过来了,记多记少,开销不变。

四、怎么教模型学会记东西

外挂文本的记忆,通常靠人写好规则,比如要记住谁什么时候说了什么,模型照着规则摘录就行。

参数记忆没有这套规则。模型得自己从结果里学:我记住的这些东西,到底有没有帮到后面的回答?

他们用的方法有点像自我蒸馏。让模型准备两份上下文,一份能看到完整的对话历史,当老师;另一份只有当前这轮对话加上记忆,当学生。

学生的目标很明确:看不到原文,也要做出和老师一样的回答。

训练的过程,就是让学生不断逼近老师。记忆怎么写才能帮助回答,模型在这个过程中自己摸索出来。

想想看,这跟我们考试的过程其实很像。上课的时候有课本有笔记有老师讲解,考试的时候什么都不让带。你能答出来,说明你真学会了;答不出来,说明记忆还停留在翻笔记的阶段。

五、效果怎么样

先说好的方面。

他们从四万多条成功的代码轨迹里提炼出 1040 条经验,写进模型的记忆之后,在 SWE-bench Verified 上测试。每道题跑三次,三次都做对的比例从 54% 涨到了 61.6%。

关键是,这些经验在对话里一个字都看不到。效果跟直接把经验塞进上下文是一样的。

经验能不占上下文就用在新任务上。如果这件事能做稳,意味着模型可以真正积累,用得越久,能力越强,成本还不涨。

再说不足的地方。

在 11 项记忆准确性测试里,参数记忆的得分是 50.6,外挂文本是 68.6。差了一截。

这也好理解。外挂文本就是把原文摆在那里,理论上可以做到百分之百还原。参数记忆是把信息压缩进去的,难免会有损耗。

不过话说回来,很多时候我们并不需要百分之百的精确还原。人的记忆也达不到这个标准,但我们依然能靠记忆做出靠谱的判断。重要的是记忆有没有帮到决策,精确度只是其中一个维度。

六、真正让人兴奋的三件事

说完了数据,再聊聊这个方向让人觉得有想象空间的地方。

先说第一个。外挂文本记了 1、2、3 条经验,就永远只有这三条。你想多一条,就得人工去加。但经验写进参数之后,模型有可能把这三条融到一起,自己悟出第四条来。

这也是大模型跟传统知识库问答最大的区别。知识库只能查到你存进去的东西,模型却能把学到的东西组合起来用。如果记忆也能这样运转,那就有了 Memory Scaling 的可能。

然后第二个。高频读写的记忆和经验,一旦内化进模型,就不用每次往上下文里塞一遍了。用得越多,成本反而越低。

很多人用 AI 用久了,Skill 文件越写越多、越写越长,每次对话都要加载一大堆。如果这些高频使用的东西能直接变成模型的一部分,体验和成本都会好很多。

第三个,这个思路对 RSI 可能有用。RSI 就是让模型拿自己做对的答案再训练自己,把偶尔做对的题练成经常做对。

技术报告里有一组数据很有意思。拿 DeepSeek-V4-Flash 做后训练时,之前 8 次都没做对的题,训完正确率只有 1.6% 到 4%。但另一组很难的知识题,不训练,只把相关事实放进上下文,正确率就从 27% 涨到了 91%。

很多时候模型做不对,能力其实已经有了,差的是信息。如果能把这些关键信息内化进参数,让模型随时都能用上,效果可能会很不一样。

论文、模型和代码都已经公开了,感兴趣的可以去看看。

这个方向现在还很早期,准确性也差得远。但它提出了一个有意思的问题:模型的记忆,到底应该放在哪里?

放在外面,安全、精确、可控,但永远只是在翻笔记。放在里面,有损耗、有风险,但有可能真正学到东西。

这两条路最后大概率会并存。就像我们自己,重要的合同条款当然要翻原文,但日常做判断靠的是经验和直觉。模型或许也会走到这一步。

科技先锋官