Hinton的RSI论文 ,22位署名作者里,坐着Bengio、OpenAI首席科学家Pachocki、Anthropic联创Jack Clark……几乎AI的半壁江山都在这儿。
它把经验编码成内部动态状态,再通过训练学习怎样写入、更新和读取,最后让这些状态经由记忆分支参与后续计算。
从早期要求模型记住信息,到用好经验,模型对记忆的要求不断升级,也让记忆一步步从幕后走到台前。
MemT-1.0-Nano 总计36B参数、激活3B,基座用的是“源神”Qwen3.6-35B-A3B; MemT-1.0-Flash 则向上突破,高达288B参数、激活17B,基座是经过进一步后训练的DeepSeek-V4-Flash。
它们共同的变化,即都是在选定的Transformer模块里增加了一条与原有注意力 并行的记忆计算通路 。
比如同样面对一个新任务, 外部记忆 的做法是把记忆原文、检索证据乃至抽象方法塞回上下文,让模型复用经验。
经验经过编码,成为可更新的矩阵状态;模型生成答案或动作时,通过专门的记忆分支读取状态,读出结果再与原有注意力输出融合,影响后续生成。
但这样做的好处也很明显,让读写参与训练能够换来更顺畅的方法复用,不过代价也有,如果想要精确删除、解释与恢复,就需要额外机制的加入。
接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的记忆中,为下一轮探索提供参考。
到了 第二轮 ,同样从起点出发,左边仍会在岔路上重复试探,右边则借助上一轮经验, 避开已经走过的死胡同 ,沿有效路线抵达终点。
视频链接:https://mp.weixin.qq.com/s/DTdaGUk8o0dwkx1wxnnbYw
实验在经过多轮对话后,MemT-1.0-Nano仍然 成功get ,回答出了原定时间、正式修改后的时间,并确认其他安排没有变化。
平均得分分别为50.6和47.0,位列参与评估的参数化记忆方法 前两名 ,相比其它模型断崖式领先。
MemT 1.0今天交出的,还只是记忆原生新思路的初步计算实现,但实际效果已经能和文本记忆比肩,再继续发展下去,潜力亦是无限。
MemT 1.0提供的原生路径,是先将 相关经验编码 为内部动态状态。生成后续动作时,当前查询通过 专门的记忆分支读取 该状态,再将结果与原有注意力输出融合。
在具体参数化实现中,MemT 1.0保留基座的原有计算流程,在选定的Transformer模块中加入原生记忆分支,拆开看包括三层:
这样区分后,模型不仅能带上新的经历,也不必每次都去微调整个主干,只有对应任务轨迹的动态状态发生变化。
写入时,隐状态经过投影,生成记忆的键值;擦除、写入和遗忘门控,共同调节已有矩阵中的关联;读取时,当前输入被映射为记忆查询,读出相关信息,再经归一化和输出门控参与后续生成。
更新机制采用的是基于 Gated DeltaNet-2 的逐Token生成,并做了稳定化处理。
消融实验证明了这一点,将逐Token更新换成整轮聚合后,Nano的记忆基准平均分从约47.0降到了41.0。
这时MemT 1.0又依托MoE,提出了 MoS (Mixture-of-Storage)解决方案。
MoS将一个记忆原生模块扩展为多个记忆专家,再分别学习存储与使用路由。其采用的是 稠密融合 ,所有记忆专家都参与计算,路由权重决定各自贡献。
为了让模型真正学会使用这条通路,团队构建了340亿Token的记忆训练语料,其中包含继续预训练200亿,后训练140亿。
继续预训练 的格式都是统一的,先把长文本切成连续片段写进记忆,再让模型拿着记忆状态去回答查询。
后训练 进一步对齐任务结果,数据也包含三类:记忆原生的 语言建模数据 、 记忆存储与利用数据 (比如摘要、续写、压缩等),以及专门强化长程记忆的 任务数据 。
这里也有一点值得单独拎出来讲, 此前冻结的主干会充当教师模型 ,看到完整的历史信息, MemT 1.0作为学生 ,只能看到自己的记忆状态,再沿着off-policy蒸馏让学生去对齐教师的分布。
综合下来,记忆原生的重点逐渐清晰,把历史编码成状态还只是第一步,接着怎样保留、更新和读取才构成记忆原生模型的全部。
现有的外部记忆方案已经很成熟了,也有不错的实践案例,相比之下,记忆原生才刚起步,效果也大差不差。
它让经验的表示与读写本身,开始成为模型能力扩展的对象,也就是MemT团队讨论的Memory Scaling,即从推理增长之外,找到模型性能增长的第三条曲线。
原来的经验有没有用,可以看检索后能否改善任务结果;到了MemT 1.0这里,还可以进一步追问:同样的经历,换一种内部表示、更新规则和读取方式,能不能用得更好?
诚然,这还远不能证明原生记忆的长期上限高于外部记忆,但至少围绕内部状态的训练与容量扩展,可以带来进一步的 能力收益 。
Loading comments…