文章摘要
针对传统AI模型依赖外挂文本记忆存在规则固定、成本随内容增长递增、无法真正复用等痛点,以及已有内化方案效率低的问题,记忆张量团队推出MemT 1.0项目,通过新增记忆原生块实现记忆内化存储于模型参数,该方案具备多项优势,仅准确性略逊于外挂文本,相关研究资源已公开。

近期接触到一项极具探索性的记忆技术项目,核心思路是摒弃外挂文本,将记忆存入模型参数中,为解决传统模型记忆的痛点提供了新方向。

在传统模型的应用中,记忆的实现几乎都依赖外挂文本:用户输入的提示词、上传的文件,智能体检索的知识库片段,或是用户画像、对话摘要等,都会被塞进模型的上下文窗口,单次对话结束后这些内容就会消失。

这种方式虽自然,但存在三个明显问题:

  • 记忆规则固定:只有符合预设规则的内容才会被记录,未触发规则的内容会被模型忽略;
  • 越用成本越高:上下文窗口会随着记忆内容的增加不断变长,单次对话的计算成本也随之上升;
  • 无法真正复用:模型每次回答问题都需要“查阅”外挂文本,体感上更像在调用外部文档,而非自身记忆。

也有尝试将历史直接训练进参数的方案,比如小型适配层训练,但存在速度慢的问题:12.8万token的历史内容,准备到输出需要约700秒,仅输出全文需要约30秒,效率较低。

要彻底摆脱外挂文本,让模型自身产生记忆,需满足两个核心条件:一是记忆要存储在模型的计算结构中,而非文本形式;二是记忆的内容和存储方式需由模型自主决定。

记忆张量团队推出的MemT 1.0项目,正是针对这一需求提出的解决方案,其核心思路是将记忆内容存储为固定大小的记忆状态,具体由模型自主定义。

该项目在两款模型上开展实验:一款是350亿参数的模型,另一款是2880亿参数的模型。方法是在主干Transformer层中添加记忆原生块,与原有注意力机制并行运行,两路输出相加。其中,350亿参数模型的记忆状态为10兆字节,2880亿参数模型的记忆状态为336兆字节,且主干模型的权重不做修改。

记忆原生块分为两部分:本地记忆是每层的一块矩阵,随对话更新;超记忆是决定读写规则的参数,上线后固定不变。

记忆写入在每轮对话结束时触发,模型会逐轮处理上下文的输入和输出内容,决定三件事:记忆存储的位置、原有内容的擦除比例、新内容的写入比例。比如用户先确定展览在周六,后改为周日,模型会在读取“周日”时擦除原有“周六”的记忆,同时所有记忆会统一淡化,越早的内容淡化越多。为避免记忆数值过大导致崩溃,擦除时只会减小数值,不会放大,确保记忆大小始终固定。

记忆读取则在后续问答时进行,模型混合原有权重和记忆状态推理,记忆大小和读取开销固定,保证长期使用后速度不受影响。

传统外挂记忆是人工设定规则,模型按规则提取内容;内化记忆则需要模型从结果中学习,判断记住的内容是否能帮助回答后续问题。具体方法是模拟自我蒸馏:模型准备两份上下文,一份是完整的历史原文(作为“老师”),另一份是本轮对话加记忆(作为“学生”),学生的目标是在看不到原文的情况下,和老师给出相同的回答。

内化记忆的效果可从三方面对比:

  • 成本优势:记忆表征固定,无论历史多长,仅需40兆字节,保证了速度和成本;
  • 经验可存储:从4万多条成功代码轨迹中总结出1040条经验,写入模型记忆后,对话中无需显示,在软件工程基准测试集上,三次都做对的比例从54%提升到61.6%,效果和直接把经验塞进对话一致;
  • 准确性稍逊:在11项记忆测试中虽最优,但比外挂文本略差,外挂文本可直接还原原文,理论上能100%准确。

与外挂文本相比,记忆原生有三个核心差异:

  1. 能生成新经验:明文只能存储已有的几条经验,而内化记忆可将多条经验融合,生成新的内容,这也是大模型比知识库问答更强大的核心原因;
  2. 越用越便宜:高频读写的记忆内化后,无需每次重复输入上下文,使用越多成本越低,未来每个组织或许都能将自身记忆内化,形成独特的模型基座;
  3. 对可靠度优化有用:常见的可靠度优化思路是用模型做对的答案训练自身,将偶尔做对的题练成常做对;还有知识题训练,不把事实放进上下文,仅用记忆存储,正确率从27%提升到91%,这些都可尝试内化到模型中。

该项目的相关研究报告、模型和代码已公开,感兴趣的可进一步了解。

以上内容不代表本平台立场,仅供读者参考