MemT 探索原生记忆,声称缓存缩减66倍
MemT-1.0 提出将记忆融入模型计算,以缓解长上下文 KV 缓存随序列长度增长的显存压力。文章声称缓存存储可缩减66倍,但摘录未给出对应实验条件与效果损失。
完整中文译文
长对话越长,模型为历史信息付出的显存和带宽成本就越高。MemT-1.0 尝试改变这笔账:不再主要依靠不断增长的 KV cache 保存过去,而是把历史压进模型持续更新的内部状态。原文报告,在 128K 历史长度下,Nano 版本的持久存储需求降至完整上下文 KV cache 的约 1/66。
这条路线值得关注,因为它同时触及长上下文推理成本和 Agent 的经验积累。但存得少是否还能记得准、不同用户的记忆如何隔离、商业部署是否可行,需要分开判断。
为什么长上下文越用越贵
KV cache 保存历史 token 的注意力中间状态,让模型生成后续内容时可以复用计算。代价是上下文越长,缓存越大。原文举例,Llama 3 70B 在 128,000 tokens 下,单个请求仅缓存就可能占用约 40 GB GPU 显存,直接挤占模型权重的空间。
现有记忆方案各有取舍。参数记忆把知识写进权重,推理时方便,但更新通常需要微调;RAG 把知识放进外部存储,便于更新,却增加检索、索引维护和上下文装载成本;长上下文保留历史最直接,但存储随长度线性增长,解码时访问历史缓存也会消耗带宽。
缓存量化、grouped-query attention、CPU 卸载,以及 prefix caching、MLA compression,都能缓解成本。MemT-1.0 则提出第四条路:让模型维护持续更新、不会随历史无限膨胀的内部状态。
它要改变的是历史信息的保存方式,而不只是把缓存压得更小。
固定大小的状态,怎样装下越来越长的历史
MemT-1.0 建立在此前的 Metis 骨干上,关键是两个机制。
Gated DeltaNet-2 负责单轮推理中的 token 级记忆更新。每读入新内容,模型通过带门控的 delta 规则修改固定大小的循环状态,而不是不断追加 KV 条目。可以把它理解成持续改写一份内部摘要,但这份摘要是参与计算的数值状态,不是一段可阅读的文字。
原文称,这套更新规则着重解决早期线性注意力中的状态失控和遗忘问题,并减少每步解码访问完整历史的带宽负担。不过,「设计目标是稳定」不能直接推导为长时间运行不会出错。
Mixture-of-Storage 则扩展单个循环状态的容量。原文将其描述为学习式路由:在快速、紧凑的状态和较慢、容量更大的记忆槽之间分配信息。具体存储层级、访问成本和路由细节,所给材料没有展开。
训练分为 continued pre-training 和 post-training,使用约 340 亿 tokens。两个版本分别是:
- MemT-1.0-Nano:总参数 36B,激活参数 3B,动态记忆 10M,骨干为 Qwen3.6-35B-A3B。
- MemT-1.0-Flash:总参数 288B,激活参数 17B,动态记忆 336M,骨干为 DeepSeek-V4-Flash。
这里的 10M、336M 没有明确解释计量口径,不能直接当作可容纳的 token 数。
66 倍之外,效果有没有一起保住
原文给出的存储和速度结果主要来自 Nano。128K 历史长度下,相对完整上下文 KV cache,持久存储减少约 66 倍,端到端推理加速约 1.86 倍;首 token 时间在 128K、256K 下分别加速 2.44 倍、4.19 倍。
这些是不同指标。存储缩至约 1/66,不等于总显存、部署费用或响应时间也缩至约 1/66。
记忆能力方面,团队在 11 项基准上报告结果,涵盖 MemBench、PersonaMem、LoCoMo、LongMemEval-S、MemoryAgentBench 和 BEAM-1M。Flash 平均分为 50.6,Nano 为 47.0,分别比最强参数记忆基线高 12.5、8.9 分。原文称两者也能与检索增强方法竞争,但没有提供足够的逐项对照,无法判断哪些任务更适合哪条路线。
通用能力在 MMLU-Pro、GPQA、IFEval、LongBench 上,与各自教师骨干的差距约为 1 至 2 分。
对程序员更有吸引力的是编程 Agent:把检索到的程序性经验内化后,SWE-bench Verified 和 SWE-bench Multilingual 分别提升 7.6、8.3 分,对照是没有这些经验的对应骨干。这支持「经验有助于完成代码任务」,但还不能证明原生记忆一定优于把同样经验交给 RAG 或上下文。
我的判断
我认可它把记忆成本放到架构层面处理的方向。长期助手需要反复利用偏好和任务经验,若每次都重新装载大段历史,成本确实容易累积。
但内部状态也让问题更难检查。历史一旦被压缩,遗漏的信息能否恢复、错误经验如何修正、用户要求删除某条记忆时能否准确执行,都会影响实际可用性。原文也承认,跨用户和任务的隔离没有充分说明,安全遗忘与状态纠正机制在摘要中缺少细节。
RAG 的检索可能失败,却便于查看、更新和删除知识条目;原生记忆减少了显式检索环节,但不能据此认定它更可靠。当前材料支持把 MemT-1.0 列为评测对象,尚不足以支持一般团队直接替换现有方案。原文提供了实验数字,但缺少硬件、并发和完整测试配置,66 倍也不能直接套到已有优化的服务栈。
许可同样影响采用:代码使用 PolyForm 非商业许可,论文使用 CC-BY-NC-SA,商业部署需要另行联系 MemTensor。公开权重不等于可以直接商用。
能拿来做什么
- 如果正在自建长上下文推理服务,可以用实际会话长度评测存储占用、端到端延迟和首 token 时间,并与当前已启用缓存优化的方案比较。
- 如果在做编程 Agent,可以参考原文的经验积累思路,对比「无经验」「上下文注入经验」「RAG 检索经验」和原生记忆,观察同类代码任务的完成情况。
- 如果准备试用公开权重,可以结合 Hugging Face 资源和 SGLang 会话持久化支持验证多轮行为,同时检查记忆隔离、错误修正和删除是否满足需求;这些能力不能从基准分数中推定。