JOTO
Contact us
← AI 智库
大语言模型

如何让【模型本身】具有记忆:存入参数

2026 年 10 月 20 日

本文介绍 MemT 1.0 项目,探索将记忆直接内化至模型参数的技术路径。区别于依赖外挂文本的传统方法,MemT 在 Transformer 层中嵌入原生记忆块(local memory + hyper memory),通过自我蒸馏训练模型自主决定记什么、如何写入与读取。在 SWE-bench Verified 上,经验写入后准确率从 54.0% 提升至 61.6%,记忆表征固定为 40 MiB,具备成本稳定、越用越便宜、支持经验融合等特性,但准确性仍略低于原文检索。

模型记忆,一直靠外挂文本

现在大家说的「模型记忆」,所实现的方法,几乎都是让模型动态加载记忆文本,包括:

  • 你写的提示词、上传的文件
  • Agent 检索回来的知识库片段、搜索结果
  • Personal Agent 攒下的用户画像、对话摘要、记忆文件

用的时候,由模型外面的程序决定拿哪几段,塞进上下文

这种做法和思路是非常自然的,但也是有一些可见的问题的

一、记忆方法是确定的
把哪些内容存到记忆里,其实就是靠预先设定的一些规则。模型在上下文中看到了符合规则的内容,就会用文本把它存下来或者更新
而如果某些内容没有触发这些规则,模型其实就不会去记录它,那么对模型来说它也就是不存在的


二、越用越贵
就像是本文刚开始所提到的,如果你希望让这个记忆里有着足够的东西,那么你就总需要把上下文给到,那么你们的整个上下文就会越来越长,单次对话也将越来越贵


三、并不能真正复用
假如说,我希望让模型能在某些场景里表现的越来越好,我就需要动态的加载与更新各种 skill 或者文档。这样的话,无论我是第一次对话,亦或者是第 100 次对话,体感上也只是模型在回答我问题前参阅了工作文件,就显得非常不自然

每开一个新会话
每开一个新会话

当然,也有人试过把历史直接训进参数,比如 Temp-LoRA:拿这段历史,现场训练一个小的适配层。问题是慢,128K token 的历史,从准备到答完要 700.82 秒,原样带全文是 30.07 秒

如何让【模型本身】具有记忆:存入参数 配图 2

所以,要彻底甩掉外挂文本,让模型本身产生记忆,得满足两件事

  • 记忆需要存在模型的计算里,而非文本
  • 记什么、怎么记,需要由模型自己决定

另一条路:让记忆内化

如果不依赖外挂文本,记忆放在哪?

MemT 用两个模型做的实验,一个是 Qwen3.6-35B-A3B,另一个是经过初步后训练的 DeepSeek-V4-Flash(288B 版)

方法是在主干的一部分 Transformer 层里,加一个原生记忆块,跟原来的注意力并排跑,然后两路输出相加,36B 版的记忆状态是 10M,288B 版是 336M。在这个过程中,主干的权重不做修改

架构图
架构图

对于记忆块,分两部分:

  • 本地记忆(local memory):每层一块矩阵,就是记忆本身,随对话更新
  • 超记忆(hyper memory):决定怎么写、怎么读的那些参数,上线后固定

记忆写入

在每一轮对话结束的时候,会触发记忆写入操作
这时,模型将上下文的输入&输出的所有 token 逐个 token 过一遍,来决定三件事:

  1. 记忆储存在哪个位置
  2. 那个位置上原来的东西擦掉多少
  3. 新内容写进去多少

比如:用户先说展览定在周六,后来又说改到周日,读到“周日”的时候,原来那个“周六”就该被擦掉
在这个过程中,模型的整块记忆也都会统一淡掉一点(越早写进去的,淡得越多)

这里有一个小的 trick:几万个 token 连着改,记忆里的数值容易越滚越大,最终导致整个记忆系统崩溃。所以擦除时,它只会把数值往小了改,而不会去放大。于是无论聊多久,这一块的记忆总归都只有这么大,写完之后,这一轮的原文也就不必往下带了

记忆读取

当模型在之后问答的时候,就会进行记忆的读取,混合原有模型的权重,去不断地进行推理

在这个过程中,记忆大小是固定的,读一次的开销也是固定的,以保证模型在长期使用后,速度也不会受到影响

如何让【模型本身】具有记忆:存入参数 配图 4

模型如何学会记忆

对于外挂的文本记忆,通常是有一些人写的规则,比如要让模型去记住谁什么时候谈了哪些话,然后模型再照着规则把对话中的内容给摘出来,形成有效的记忆

记住的东西,是否能帮助回答之后的问题
至于具体的做法,是让模型模拟自我蒸馏(emmmm...好像也不是很准确,反正大概意会一下这个意思),让模型准备两份上下文:

  • 一份能看到完整的历史原文,作为蒸馏里的老师
  • 一份是本轮对话+记忆,作为蒸馏里的学生

学生的目标,便是在看不到原文的情况下,与老师做到相同的回答

如何让【模型本身】具有记忆:存入参数 配图 5

记忆效果

对于训练得到的记忆,在一些方面是优于外挂记忆的,比如成本;但也有不如的地方。这里也是做一个简单的比照

一、记忆成本有优势

在通过训练的方法进行记忆储存后,它的记忆表征是固定的。无论历史多长,它存的内容也就只有 40 MiB,确保了速度和成本

如何让【模型本身】具有记忆:存入参数 配图 6

当然,你也可以选择把这个记忆的容量去扩充,这个时候分数也会跟着涨(记忆未尝不能 scale)

如何让【模型本身】具有记忆:存入参数 配图 7

二、经验也能写进去

tech report 从 4 万多条成功的代码轨迹里,总结出 1,040 条经验,干活时把相关的那条写进模型的记忆,对话里一个字都看不到
在 SWE-bench Verified 上,每道题跑三次,三次都做对的比例从 54.0% 涨到 61.6%,和把经验直接塞进对话里一样

如何让【模型本身】具有记忆:存入参数 配图 8

过去攒下的经验,不占上下文,也能用在新任务上

三、准确性逊于原文

虽然这种方法,在 11 项记忆测试里都做到了最优,但离外挂文本还有一截(50.6 对 68.6)

毕竟外挂文本能直接翻原文,理论上能做到 100% 还原

如何让【模型本身】具有记忆:存入参数 配图 9

原生记忆的关键

和外挂文本比,原生记忆真正不一样的地方,我觉得有三点

一、能长出新的经验

用明文记经验,记下 1、2、3 条,就永远只有这三条
而经验写进参数之后,模型有可能把这三条融到一起,自己得出第 4 条

这也是大模型强于 KB-QA(基于知识库的问答)的核心原因:知识库只能查到存进去的东西,模型却能把学到的东西组合起来用

或许这个思路,能够做出未来的 Memory Scaling 也不一定

二、越用越便宜

高频读写的记忆和经验,内化进模型之后,不用每次再塞一遍上下文,用得越多,成本越低(或许以后每个组织都可以把自己的记忆内化,拥有一个独特的基座)

三、对 RSI 或许有用

RSI 常见的思路,是让模型拿自己做对的答案,再训练自己,以提高可靠性:把偶尔做对的题,练成经常做对

拿 DeepSeek-V4-Flash 做后训练时,有两组数据:之前 8 次都没做对的题,练完正确率只有 1.6–4.0%;另一组很难的知识题,不训练,只把相关事实放进上下文,正确率就从 27% 涨到了 91%

如何让【模型本身】具有记忆:存入参数 配图 10

而现在,这些收获都以外挂文本的形式放在模型外面,或许可以尝试把这些东西做到模型里面

如何让【模型本身】具有记忆:存入参数 配图 11
如何让【模型本身】具有记忆:存入参数 配图 12

JOTO 企业落地观察

  • 企业若采用参数级记忆方案,需重新评估 RAG 知识工程的投入优先级——当经验可固化进模型参数,知识库的实时性与检索链路复杂度价值将下降,但知识沉淀的颗粒度与标注质量要求反而上升。
  • 这类系统对智能体工程提出新约束:记忆写入/读取需与 Agent 的决策循环深度耦合,不能仅靠外部调度器触发;企业需在 Agent 架构中预留记忆状态接口,并定义跨会话状态迁移协议。
  • 参数记忆的“不可解释擦除”机制(如自动淡出、数值限幅)对企业 AI 安全治理构成挑战:关键业务记忆可能被隐式覆盖,需配套设计记忆快照、版本回溯与审计日志能力,而非依赖黑盒参数更新。

立即咨询 JOTO

JOTO 提供覆盖企业智能体规划与搭建、AI 平台私有化部署、RAG 知识工程、AI 安全治理、FDE 驻场共创及持续运营优化的全周期 AI 落地服务,帮助企业把验证中的 AI 能力转化为安全、可控、可持续迭代的生产力。 联系 JOTO 获取 AI 落地咨询

想把这些做法用到你的业务里?

留下你的场景和痛点,我们帮你判断从哪一步开始。

联系我们
Contact Us

Start your enterprise AI rollout

Tell us your industry, team, and current pain points. We'll get back to you within one business day to help you decide what to tackle first, what data to prepare, and which platform fits.

WeChat
Scan to add us for a 1:1 chat
JOTO WeChat consultation QR code

Tell us what you need

Once we receive your details, we'll be in touch within one business day.