用 AI 最崩溃的瞬间:花半天纠正它把任务做对,换个新会话,它转头又踩进同一个坑。今天开源的 MemT 1.0 想解决这个问题------把「记住」做成模型自己的能力。
一、发生了什么
10 月 20 日,上海的「记忆张量」团队(MemOS 背后团队)发布并开源记忆原生大模型 MemT 1.0 系列:Flash 288B(激活 17B,基座为后训练版 DeepSeek-V4-Flash) 和 Nano 36B(激活 3B,基座 Qwen3.6-35B-A3B),权重已挂在 HuggingFace 与 GitHub,配套论文见 arXiv(2610.26825)。在 11 项记忆基准上,两款模型平均得分 50.6 / 47.0,位列参数化记忆方法第一、第二(来源:官方公告、36氪、量子位、新民晚报)。
二、技术拆解:记忆的三条路线
模型「记住事」目前有三条路线,区别在于经验存在哪、怎么用:
| 维度 | 外挂文本记忆(RAG/留档) | 长上下文 | 记忆原生(MemT 1.0 路线) |
|---|---|---|---|
| 记什么 | 原文全量存档 | 每轮全量进上下文 | 训练学出的内部状态 |
| 长期成本 | 存储便宜,检索链路要养 | KV Cache 随历史线性膨胀 | 状态体积固定(Nano 40 MiB/轨迹) |
| 逐字溯源 | 强 | 强(原文在场) | 弱,需额外机制 |
| 长历史细节召回 | 强(官方也承认整体仍占优) | 强但贵 | 起步阶段 |
| 经验复用 | 靠检索组织,链路自己搭 | 基本没有 | 模型内化,实测接近文本经验组 |
MemT 1.0 的做法是在选定的 Transformer 模块里加一条与注意力并行 的记忆通路,分三层:主干权重(通用能力,训练时冻结)、超记忆(读写投影与门控,可训练)、动态局部记忆(每条交互轨迹独立维护的矩阵状态)。每轮交互结束时,基于 Gated DeltaNet-2 的机制逐 token 更新记忆,靠擦除、写入、遗忘三组门控决定哪些留、哪些覆盖。消融实验里,把逐 token 更新换成整轮聚合,Nano 均分从 47.0 掉到 41.0------连续更新不是实现细节,是这套方案能成立的前提。
容量扩展靠 Mixture-of-Storage(MoS):把记忆模块拆成多个记忆专家,用稠密路由分配读写,与基座 MoE 的稀疏路由是两套逻辑。训练用了 340 亿 token 语料,核心技巧是蒸馏:冻结的主干当教师看完整历史,学生模型只看自己的记忆状态,逼它学会「闭卷」答题。
效果上,一个官方测试很直观:用户先定展览时间,中途正式改期,还顺嘴提了个未采纳的备选方案,之后闲聊 500 多轮、约 6.6 万 token 不再提展览------闭卷状态下 Nano 仍能分清「周日定论」和「周一备选」。没提供的生日,它老实答不知道。上周《Meta 发布 Muse Wonder:跑分追平是背景板,「主动记忆」第一次成了》里写的是产品层把记忆当卖点,今天这个是架构层把记忆做进模型,一周之内两级跳。
三、我的判断
真信号不是跑分,是账本。 KV Cache 随历史线性膨胀,固定记忆状态不随历史增长:官方口径下,128K token 历史时 Nano 端到端速度约为完整上下文方案的 1.86 倍,持久化状态约为 KV Cache 的 1/66;256K 历史时约 3.99 倍。对短对话这个优势不存在,但对长周期伴随场景(客服、个性化助手、跨月项目),成本结构完全不同。
三盆冷水也要端上来。第一,官方自己写了短历史下 Nano 通常更慢 ,别拿它替换所有会话。第二,记忆噪声有真实损耗:LiveCodeBench v6 上 Flash/Nano 相对主干分别掉 0.7 和 5.8 分,「通用能力无损」不能只看平均分。第三,经验闭环目前靠外部系统 在卡壳点触发写入,「自主积累经验」还没实现。上周写PostgreSQL 19 延期时提过,AI 把「发现」变便宜了、「处置」还是人工价------把处置经验沉淀下来复用,正是往这堵墙上凿的第一批洞,但凿子现在还握在外部系统手里。
为什么值得盯:这是记忆原生路线首次近 300B 规模的工程验证,且完全开源。它不证明记忆原生会赢,但证明这条路在真实规模上跑得通------「经验复用率」有望和单次跑分一起,进入企业 AI 选型的考核表。
四、对开发者的启示
- 不是 RAG 替代论。 逐字引用、来源审计只有原文能保证;经验调用才是记忆原生的主场。现实的架构是混合:外挂管事实,原生管经验。
- 按场景对号入座,下面这个决策脚本可以直接拿走:
python
# memory_route.py -- 记忆方案选型决策器(规则版,按你的场景对号入座)
import argparse
def main():
ap = argparse.ArgumentParser()
ap.add_argument("--history-tokens", type=int, required=True,
help="单会话典型历史长度")
ap.add_argument("--need-exact-quote", action="store_true",
help="是否需要逐字引用原文/来源/版本")
ap.add_argument("--cross-session", action="store_true",
help="经验是否需要跨会话/跨周期复用")
ap.add_argument("--long-running", action="store_true",
help="是否长周期伴随(周/月级持续交互)")
args = ap.parse_args()
routes = []
if args.need_exact_quote:
routes.append("外挂文本记忆(RAG/全量留档):逐字引用与溯源审计只有原文能保证")
if args.history_tokens < 32_000:
routes.append("长上下文:历史不长,直接塞上下文最简单,别引入额外组件")
if args.cross_session or args.long_running:
routes.append("记忆原生/参数化记忆:长周期下 KV Cache 线性膨胀,固定状态成本恒定,经验复用是主收益")
if not routes:
routes.append("维持现状:现有方案没有痛到值得迁移")
print("推荐组合(按优先级):")
for i, r in enumerate(routes, 1):
print(f" {i}. {r}")
if __name__ == "__main__":
main()
- 想上手先看资源账:Flash 288B / Nano 36B 都不是消费级显卡能玩的规模,权重开源不等于部署便宜。
FAQ
Q1:MemT 1.0 能替代 RAG 吗?
不能一概而论。官方口径是文本记忆系统在长历史细节召回上整体仍有优势;需要逐字引用和审计的场景,外挂仍是硬需求。更现实的路径是两者混合分工。
Q2:40 MiB 的记忆状态是什么概念?
Nano 每条交互轨迹的 FP32 记忆状态体积(官方技术报告口径),不含模型权重与当前轮 KV 缓存。关键在于它不随历史增长------这是与 KV Cache 的本质区别,也是长周期场景成本可控的原因。
Q3:现在能直接用到生产吗?
权重已在 HuggingFace(MemTensor/memt-1)与 GitHub 开源。但经验写入目前依赖外部系统在卡壳点触发,「模型自己越用越聪明」还差反馈与验证机制这一环,建议先在评测环境验证自己场景的经验复用收益。
延伸一下:前天 OpenAI 那份《agent 的权限是你给的,越界是它自己想的》讲的是 agent 行为的边界,今天这篇讲的是 agent 经验的积累------两件事合起来才是 agent 落地的完整拼图。开源模型怎么选,也可以参考《Meta 开源 816B》里的对照表思路。
这个专栏每天一篇 AI 解读,关注不迷路。
你们团队现在的 AI 应用,跨会话的经验是靠外挂库、靠上下文硬塞,还是干脆没管?
专注 AI 工程化实践与出海外贸技术