MemT 1.0从模型层补上记忆
RSI三块关键拼图,MemT 1.0从模型层补上「记忆」
MemT 1.0通过将经验编码为内部动态状态,并让模型学习如何写入、更新和读取这些状态,实现了记忆原生模型,首次在近300B参数规模上验证。实验表明,MemT 1.0在代码修复和信息更新等任务中表现优异,平均成功率显著提高










鹭羽 发自 凹非寺 量子位 | 公众号 QbitAI AI圈,最近集体盯上了三个字母:RSI。 Hinton的RSI论文,22位署名作者里,坐着Bengio、OpenAI首席科学家Pachocki、Anthropic联创Jack Clark… … 几乎AI的半壁江山都在这儿。 大家在将目光投向AI自我改进的同时,一个更值得追问的基础问题浮出水面:一次改进,如何成为下一次的起点? 有效的方法需要被保留,走过的弯路也需要被识别,承接这件事的,其实是记忆。
常规的思路很简单:给AI直接外接一个经验库,操作方法、历史教训就能通通被保存检索。 记忆张量在方面的探索,则给出了一份截然不同的答卷——记忆原生。 何为记忆原生? 就是将经验的保留、更新和调用,做成模型可以学习的能力。 当记忆在模型中生根发芽,便构成了记忆原生模型。 其最新开源发布的MemT 1.0系列,就给出了一条颇为具体的路径:它把经验编码成内部动态状态,再通过训练学习怎样写入、更新和读取,最后让这些状态经由记忆分支参与后续计算。 与外部记忆相比,它不仅能力没打折,未来拓展的天花板也会更高。
这也是记忆原生模型首次实现近300B参数规模的工程验证。 (论文地址指路:https://arxiv.org/abs/2610.26825)记忆看不见摸不着,但却实打实成为模型成长的立足根本。 从早期要求模型记住信息,到用好经验,模型对记忆的要求不断升级,也让记忆一步步从幕后走到台前。 把记忆放进模型MemT 1.0这次直接甩出两个型号:MemT-1.0-Nano总计36B参数、激活3B,基座用的是“源神”Qwen3.6-35B-A3B;
MemT-1.0-Flash则向上突破,高达288B参数、激活17B,基座是经过进一步后训练的DeepSeek-V4-Flash。 它们共同的变化,即都是在选定的Transformer模块里增加了一条与原有注意力并行的记忆计算通路。 咱们举个简单的例子说明。 比如同样面对一个新任务,外部记忆的做法是把记忆原文、检索证据乃至抽象方法塞回上下文,让模型复用经验。 其中检索与整理过程,同样可以引入学习机制。 而MemT 1.0这类记忆原生模型,选择继续深入模型内部:经验经过编码,成为可更新的矩阵状态;
模型生成答案或动作时,通过专门的记忆分支读取状态,读出结果再与原有注意力输出融合,影响后续生成。 区别落在了经验如何表示,以及它通过什么计算过程发挥作用。 但这样做的好处也很明显,让读写参与训练能够换来更顺畅的方法复用,不过代价也有,如果想要精确删除、解释与恢复,就需要额外机制的加入。 外部文本肯定更方便检查和溯源,二者目前来看各有各的优劣。 要说真能看出差别,还得是在用了经验之后,观察模型跑起来如何。 先看一个码农熟悉的场景:改代码。 接Bug→定位代码→动手修改,基本都是这么个流程。
但要是一开始问题没复现、边界条件也没确认好,修改不成反倒漏洞百出,一代传一代。 拿SWE-bench Verified为例,里面有一项涉及Django的parse_http_date函数,需要修复两位数年份的解析逻辑。 研究团队比较了无经验、文本经验和记忆原生三种设置下的执行轨迹。 没有经验时,Agent找到Bug后,很快开始修改解析逻辑,后续步骤中才出现定向复现与验证。 有经验的两组,则都先构建复现测试,再修改代码。 其中,MemT-1.0-Nano还在初次修改后重新检查了一项边界条件,修正实现,并做了额外验证。
可以明显看出,经验改变了行动顺序,也参与了任务内的检查与修正。 放到更大样本上对比,在500项SWE-bench Verified任务,每项独立运行三次中,MemT-1.0-Nano在关键断点的平均成功率为69.73%,无经验基线为66.07%,文本经验组为69.13%。 三次全部成功的任务比例,则从无经验时的54.00%提高到62.80%,文本经验组为61.80%。
再看SWE-bench Multilingual任务中,同一触发设置下,原生记忆组平均成功率为63.56%,无经验组为60.00%,文本经验组为63.00%。 换句话说,这些程序性经验能通过记忆原生得以保留,表现和显式文本经验接近,优势更多体现在平均成功率和重复执行的可靠性上。 再直观一点,来看一段像素风的迷宫探索演示。 同一个迷宫,同样的移动速度,左边是没有记忆原生的Agent,右边是具备记忆原生的MemT 1.0。 第一轮,两边都需要探索未知路线,也会走进死胡同。
区别出现在这一轮结束之后:成功路线和需要避开的岔路被整理归档,并加载到MemT 1.0的记忆中,为下一轮探索提供参考。 到了第二轮,同样从起点出发,左边仍会在岔路上重复试探,右边则借助上一轮经验,避开已经走过的死胡同,沿有效路线抵达终点。 上一轮走出来的路,开始直接影响下一轮怎么走,这就是记忆原生值得做的具体体现。 再来一个更接近我们日常办公的信息更新场景。 展览原定周六下午3点,后来正式改到周日下午4点。 之后又有人建议改到周一,但还没确定拍板。 这种反复变化的信息增量,其实对AI来说很头痛。
要记住最后出现的日期还不够,它还得分清正式决定和随口建议,以及保留那些没变的内容。 实验在经过多轮对话后,MemT-1.0-Nano仍然成功get,回答出了原定时间、正式修改后的时间,并确认其他安排没有变化。 放进11项记忆基准的综合评估中,Flash和Nano的表现也同样突出。 平均得分分别为50.6和47.0,位列参与评估的参数化记忆方法前两名,相比其它模型断崖式领先。 不过坦白来说,文本记忆系统整体仍有优势,尤其是在长历史的细节召回上。
MemT 1.0今天交出的,还只是记忆原生新思路的初步计算实现,但实际效果已经能和文本记忆比肩,再继续发展下去,潜力亦是无限。 记忆原生,原生在哪里? 那么问题来了,经验没有留在任务上下文里,模型又是从哪里把它用上的? 这恰是MemT 1.0的架构重点。 MemT 1.0提供的原生路径,是先将相关经验编码为内部动态状态。 生成后续动作时,当前查询通过专门的记忆分支读取该状态,再将结果与原有注意力输出融合。
在具体参数化实现中,MemT 1.0保留基座的原有计算流程,在选定的Transformer模块中加入原生记忆分支,拆开看包括三层:主干权重:承载模型已有的通用能力,并在训练记忆时保持冻结; 超记忆:读写投影、门控这类可训练参数决定具体怎样编码、更新和读取记忆; 局部记忆:动态矩阵状态保存交互中新加入的信息。 这样区分后,模型不仅能带上新的经历,也不必每次都去微调整个主干,只有对应任务轨迹的动态状态发生变化。 这套机制的读写也很有讲究。 写入时,隐状态经过投影,生成记忆的键值;
擦除、写入和遗忘门控,共同调节已有矩阵中的关联; 读取时,当前输入被映射为记忆查询,读出相关信息,再经归一化和输出门控参与后续生成。 更新机制采用的是基于Gated DeltaNet-2的逐Token生成,并做了稳定化处理。 (小道消息:Gated DeltaNet-2的作者也参与了相关讨论)它会在每一轮结束后触发,靠门控调整已有记忆关联,轮内则仍按Token顺序调整状态。 消融实验证明了这一点,将逐Token更新换成整轮聚合后,Nano的记忆基准平均分从约47.0降到了41.0。
六分的差距,足以说明连续的Token级更新能更好地处理记忆衰减,并及时修正轮内关联。 但当记忆的内容不断扩充,模型容量不够了怎么办? 这时MemT 1.0又依托MoE,提出了MoS(Mixture-of-Storage)解决方案。 MoS将一个记忆原生模块扩展为多个记忆专家,再分别学习存储与使用路由。 其采用的是稠密融合,所有记忆专家都参与计算,路由权重决定各自贡献。 这就与基座MoE的稀疏专家路由明显不同了。 不过,结构还只是起点。
为了让模型真正学会使用这条通路,团队构建了340亿Token的记忆训练语料,其中包含继续预训练200亿,后训练140亿。 继续预训练的格式都是统一的,先把长文本切成连续片段写进记忆,再让模型拿着记忆状态去回答查询。 每处理完一个片段,模型再更新状态,供下一段使用。 后训练进一步对齐任务结果,数据也包含三类:记忆原生的语言建模数据、记忆存储与利用数据(比如摘要、续写、压缩等),以及专门强化长程记忆的任务数据。
这里也有一点值得单独拎出来讲,此前冻结的主干会充当教师模型,看到完整的历史信息,MemT 1.0作为学生,只能看到自己的记忆状态,再沿着off-policy蒸馏让学生去对齐教师的分布。 综合下来,记忆原生的重点逐渐清晰,把历史编码成状态还只是第一步,接着怎样保留、更新和读取才构成记忆原生模型的全部。 这条路线的价值,还需要结合经验复用效果、资源开销和长期运行条件来综合判断。 从持续学习到RSI,记忆打开能力增长空间那么又有朋友可能要问了,为什么要用记忆原生?
现有的外部记忆方案已经很成熟了,也有不错的实践案例,相比之下,记忆原生才刚起步,效果也大差不差。 非也! 记忆原生也有个独到之处:它让经验的表示与读写本身,开始成为模型能力扩展的对象,也就是MemT团队讨论的Memory Scaling,即从推理增长之外,找到模型性能增长的第三条曲线。


来源:北京智源研究院 · hub.baai.ac.cn