记忆张量开源 MemT 1.0,把记忆写进模型,聊得越久越省。

记忆张量开源 MemT 1.0,把记忆写进模型,聊得越久越省。

摘要 MemT 1.0 是记忆张量(MemTensor)10 月 20 日开源的记忆原生模型,有 Nano(36B)和 Flash(288B)两个型号。它在 Transformer 选定层的注意力旁边并联一块记忆:每轮对话结束,把这一轮逐 token 写进一块固定大小的记忆状态,下次回答只读这块记忆,聊天原文不再放进上下文;写什么,是用“老师看原文、学生只看记忆”的蒸馏训练出来的。11 个记忆评测上,它在参数化记忆方法里排第一,但仍明显低于把原文交给模型的文本记忆方案;历史越长越划算,128K 时端到端快 1.86 倍,存储约为整段上下文的 1/66。

MemT 1.0 的技术报告附录里有一段 516 轮的英文长对话。第 6 轮,用户说自己筹备的小展览定在周六下午 3 点、东厅、免费入场;第 7 轮说正式改到周日下午 4 点,其他不变;第 8 轮又说有人提议挪到周一,但还没定。之后 508 轮聊的是台灯、书和墙上的一块反光,再没提过展览。最后问:展览原定几点,正式改到几点,场地、票价、联系人变了没有?MemT-1.0-Nano 答对了全部,也没把周一的提议当成定论。

难的是,它回答时手里没有这约 6.6 万 token(模型读写文字的计量单位)的聊天原文。MemT 1.0 是记忆张量(MemTensor)10 月 20 日开源的模型,它在模型内部加了一块固定大小的记忆:每轮对话结束,模型把这一轮写进去;下一轮回答时只读这块记忆,原文不再放回模型眼前。下面讲它怎么记、记得准不准、什么时候划算,以及离“越用越聪明”还差什么。

AI 现在怎么记住你:三种办法各有代价

大模型的权重(训练时学到、存成参数的知识)在聊天时不变,“记住你”靠的是外面的办法,大致三种。最常见的是把聊天记录整段放进上下文(模型每次回答时能看到的全部文字),最准,但越聊越长,KV 缓存(模型为读过的每个 token 存下的中间结果)也跟着变大。第二种是外挂记忆,比如 RAG(检索增强生成:先从资料库搜出相关片段,再贴进上下文)和 MemOS 这类记忆系统,用时先搜再读,记录照样越积越多。第三种是把历史训练进参数,比如 Temp-LoRA 边聊边训练一小块附加参数,报告实测 128K 历史要花约 700 秒。

MemT 1.0 走第四条路:在模型里加一块固定大小的记忆状态,读和写都在模型自己的计算里完成,写什么、怎么写是训练出来的。打个比方,整段上下文像每次回答前把全部聊天记录重读一遍,外挂记忆像去档案柜里翻,Temp-LoRA 像为每位用户改印一版课本;MemT 则给每段对话发一本页数固定的笔记本,每轮聊完由模型自己往上记、擦、让旧笔迹变淡,回答时只看本子。本子不会变厚,存储和读取成本就固定,代价是写满后只能覆盖和压缩,细节会丢。

打个比方:让 AI 记住历史的四种办法。前三种的记录越积越多或要额外训练,MemT 给每段对话一本页数固定的笔记本

MemT 1.0 怎么记:注意力旁边并联一块记忆

Transformer(今天主流大模型的基本结构)由几十层堆成,每层的核心是注意力(让每个 token 去前文里找和自己相关的词)。MemT 1.0 在选定的层里给注意力并联了一个原生记忆模块(Native Memory Block):当前输入一路照常走原来的注意力,另一路去记忆里查,两路结果相加后继续往下算。骨干模型原有的部件一个不改,通用能力因此基本保住。

MemT 1.0 的架构:选定的 Transformer 层里,原注意力和记忆注意力并联;右侧上方是局部记忆和超记忆,中间是每轮结束时的写入,下方是生成时的读取

记忆分两部分。局部记忆(Local Memory)是每段对话独有的一组矩阵,开局全是 0、随对话变化,就是比方里的笔记本。超记忆(Hyper Memory)是负责读写的那组参数:Query、Key、Value 投影把当前文字换算成“查什么、记在哪、记什么”,再加四个门,擦除门调整旧的关联,写入门决定写进多少新信息,遗忘门控制旧内容衰减多快,输出门控制读出的记忆对当前回答影响多大。超记忆训练好后固定、所有用户共用,局部记忆一人一份。

读和写分开。生成这一轮回答时,记忆是一张不变的快照,每个 token 都去查它;这一轮结束后,模型把刚才的输入和回答逐个 token 写进去。写入规则叫 Stable GDN-2,基于 Gated DeltaNet-2(一种带门控的增量更新:先读出记忆里已有的内容,只按差值去改,而不是一味叠加),并加了防止数值发散的稳定机制。每段对话的记忆状态可以存成文件、下次恢复,换个会话接着用,聊天原文不必恢复。

两个型号里,MemT-1.0-Nano 以 Qwen3.6-35B-A3B 为骨干,总参数 36B、每次激活 3B,每段对话的记忆状态约 40 MiB;MemT-1.0-Flash 以团队再训练过的 DeepSeek-V4-Flash 为骨干,总参数 288B、激活 17B。容量还能用 MoS(Mixture-of-Storage,混合存储)扩:把一块记忆拆成几个“记忆专家”,和 MoE(混合专家)每次只挑少数专家不同,所有记忆专家都参与读写。报告里记忆专家从 2 个加到 4 个,均分最多高 2.7 分。

该记什么,是老师教出来的

记忆模块一开始什么都不会,“该留什么、怎么用”靠训练,方法是蒸馏(让一个模型模仿另一个模型的输出)。老师是不加记忆模块的原骨干,能看到完整的聊天原文;学生是 MemT,只能看到当前这一轮和自己的记忆。两者对同一段回答逐个 token 给出“下一个词是什么”的概率,训练让学生的概率尽量贴近老师。骨干参数全程冻结,只训练记忆参数。

关键在于误差会往回传。学生答得和老师不一样,误差不只修正这一刻怎么读,还沿着记忆传回更早几轮的写入,告诉模型当初该把什么写进去。所以它学到的不是“把文字压缩进状态”,而是“为了以后答得对,现在该记什么”。

训练:老师看完整原文,学生只看记忆,学生的回答向老师看齐,误差一路传回早先的写入

训练数据共 340 亿 token。前 200 亿用于继续预训练(CPT):长文按 2K token 切段,学生每次只看当前一段,前面的内容只能从记忆里取;后 140 亿用于后训练,题型有摘要、续写、压缩和各类记忆问答,部分数据参照了 MemOS 匿名化的真实交互。两步都不能省:去掉后训练,Nano 的记忆均分从 47.0 掉到 36.3;把逐 token 写入改成每轮整体写一次,掉到 41.0,比换哪种更新公式的影响大得多。

记得准不准:参数化记忆第一,离文本记忆还差一截

报告用 11 个记忆评测考它,按历史长度分四组,从不到 16K 到 BEAM-1M 的百万 token,考长期记住、信息更新和个性化理解。考法是先清空记忆,按时间顺序写入历史,再提问;MemT 答题时上下文里没有历史原文。

11 个记忆评测的平均分:MemT 在参数化记忆方法里排前两名,但低于把原文交给模型的文本记忆方案

在不给原文、只靠参数化记忆的方法里,Flash 均分 50.6、Nano 47.0,排前两名,比第三名 Temp-LoRA(38.1)高 12.5 和 8.9 分。把原文交给模型的文本记忆方案则明显更高:整段上下文约 65 到 66 分,记忆张量自家的 MemOS 约 68.6 分。差距在 LongMemEval-S、BEAM-1M 这类要从长历史里找准细节的题上最大。报告的解释很直接:文本方案答题时手里有原文证据,MemT 只能从一块不断被覆盖的状态里恢复信息,保真度(记得有多准)是接下来要补的。

附录的四个案例都出自开头那段对话,难度逐级上升:4K 处答出出差城市和样册在谁手里,16K 处被问从没提过的生日时回答“不知道”而不是编一个,32K 处把一条两步的领用规则正确套到两个人身上,64K 处就是展览改期。这些是挑出来展示的成功案例,说明它能做到,不代表每次都对。

报告附录的四个案例,都来自同一段长对话:历史越来越长,题目从回忆事实到识别信息更新

加了记忆会不会变笨?报告先往记忆里写一段无关内容,再考六项通用能力。Flash 平均分与骨干持平,Nano 平均低 0.9 分,主要掉在 LiveCodeBench v6 编程题上(−5.8)。

聊得越久越划算,短对话反而更慢

固定大小的好处要在长对话里才显出来。报告用两张 GPU、一次只跑一个请求,测从写入历史到生成 128 个 token 回答的端到端耗时:Nano 在短历史上比整段上下文慢,32K 时持平,64K 时快 1.20 倍,128K 时快 1.86 倍,256K 时快 3.99 倍,省下的主要是准备历史的时间。首 token 延迟(TTFT,从提问到吐出第一个字的时间)也一样,Nano 一直在 104 到 112 毫秒,整段上下文到 128K 涨到 257 毫秒、256K 涨到 445 毫秒。

左:端到端延迟(含写入历史和生成回答);右:首 token 延迟。横轴是历史长度,左图纵轴为对数刻度

存储更直观。每段对话要存的记忆状态始终约 40 MiB,不随历史变长;整段上下文的 KV 缓存一路上涨,128K 时约是 Nano 的 66 倍,256K 时达到 5.061 GiB。RAG 只存文字片段和检索向量,短历史时比 Nano 省得多,到 256K 左右才和它持平。这些数字不含所有用户共用的模型权重,用户越多,总存储照样按人数增长。所以几轮的短对话用不上它,个人助理、客服、编程智能体这类一个会话要持续很久的场景才划算。

每段对话要保存的状态大小,纵轴为对数刻度:MemT-1.0-Nano 是一条水平线,整段上下文一路上涨

把编程经验写进记忆,而不是写进对话记录

最后一组实验把记忆用在编程智能体(能自己读代码、跑命令、改文件的 AI)上。团队从 41,057 条成功的修 bug 记录里总结出 1,040 条经验,每条写明适用条件、推荐步骤和验证方法,做题时检索相关的经验。常规做法是把经验作为文字写进对话记录,MemT 则写进记忆状态,对话记录里看不到。注入时机有两种:开工前,或等执行框架(harness,管理工具调用和上下文的那层程序)发现报错、空结果或同一操作重复三次时,每题最多一次。

经验引导的编程智能体:①检索经验 ②选择注入时机:开工前,或卡壳时 ③经验写进上下文或记忆,再与环境多轮交互

为了让 Nano 学会用记忆里的经验,团队在原骨干做失败的记录里找卡壳点,换上经验从卡壳处重跑,留下 42,403 条“原来做错、补上经验后做对”的样本,只训练记忆参数。评测时每题独立跑三次。在 SWE-bench Verified(500 道真实 GitHub 项目的修 bug 题)上,不给经验时平均成功率 66.07%,三次全对的比例(pass^3)54.0%;经验写进记忆、卡壳时注入,分别升到 69.73% 和 62.8%,写成文字的对照组是 69.13% 和 61.8%。

SWE-bench 两组成绩(卡壳时注入):经验写进记忆和写成文字效果相近,涨得最多的是三次全对的比例

覆盖九种编程语言的 SWE-bench Multilingual(300 题)趋势相同,只是开工前注入时文字版更好。提升主要在稳定性上,三次里至少对一次的比例(pass@3)没有跟着涨。报告举的 Django 例子里,没有经验时智能体找到代码就动手改,有经验时文字版和记忆版都先写复现测试再改。报告也写明,经验是外部系统总结和检索的;写入经验本身要花算力,上下文变短不等于总成本更低。

离“越用越聪明”还差什么

MemT 1.0 证明了“记住历史”可以做成模型内部一块训练出来、大小固定的状态:长对话里更快、更省存储,不给原文也能答对不少记忆题,还能装下编程经验。它还没证明这块记忆能和原文一样准。报告把固定容量列为第一条局限:新信息只能挤进旧的表示里,越聊越要在保留旧细节和写入新内容之间取舍。记忆张量的说法是,MemT 补上的是模型这一层,要和自家 MemOS 的文本记忆配成一条链路,高频用到的记忆和经验交给模型内化。

“越用越聪明”也要分清发生在哪。使用中被更新的只有每段对话的局部记忆,模型权重和超记忆都不变;局部记忆里攒下的经验能不能沉淀进参数,报告列为后续研究的问题。编程实验里的经验也是外部系统挑好再递进去的。离模型靠记忆自己改进自己,还有一段距离。

想上手的话,Nano 的权重用 Apache-2.0 许可,Flash 用 MIT;但 GitHub 上的推理服务代码(含 SGLang 集成)用 PolyForm 非商业许可,商用要另找团队授权。官方示例在 Linux 和两张 NVIDIA GPU 上部署 Nano。

MiniMax M3.1 Flash 做一张落地页比 Opus 5.5 便宜 88 倍,这笔账得拆开算。 2026-10-21
AI 画图的扩散法拿来写字,Mercury 3 比 GPT-6 Luna 快 8 倍。 2026-10-21

评论区