☰
Metis:把历史对话记忆压入大模型参数
2026/10/9 7:52:46 网站建设 项目流程

一句话总结

Metis 把跨多轮历史压缩进固定大小的原生记忆状态,推理时上下文不含历史信息也能完成记住、更新、遗忘、反思与问答;它不替代外挂记忆,而是走一条延迟更稳、存储恒定的互补路线


  • 论文标题:Metis: Memory Foundation Model
  • 论文地址:https://arxiv.org/abs/2607.26760
  • 作者背景:记忆张量、中国人民大学、新加坡国立大学、上海交通大学、同济大学
  • 代码地址:https://github.com/MemTensor/Metis
  • 模型地址:https://huggingface.co/collections/IAAR-Shanghai/metis

一、动机

多模态、长思维链这些年陆续被内化成 llm 的原生能力,agent 记忆却大多仍挂在模型外面:检索一段相关历史,再拼回提示词。外挂记忆可解释、能跨模型复用,目前也是工业界最有效的方案,但它有三个结构性缺口:

  • 目标脱节:外挂记忆优化的是拼出一段好上下文,模型优化的是在给定上下文上做语言建模。两边各训各的,目标未必一致
  • 梯度断路:检索、重排、拼接都是离散操作,端到端后训练几乎没有可导路径。用强化学习绕过去只能部分缓解,还有效率问题
  • 在线开销:这些操作都需要额外调用服务,可能会增加线上推理延迟

作者认为,存哪些、读哪些信息本身就是预测,经常有意图和内容缠在同一句话里的情况,离散规则难以拆干净,取的时候无论是按语义相似度、按情绪,还是按多种隐含指标的组合,写多少规则都还是可能会漏。于是展开设想:能否让记忆也落尽连续函数空间,融入模型与前向计算焊在一起

这条路线称为记忆基础模型,内化后的能力叫原生记忆:历史以参数形式驻留模型,记住 / 遗忘 / 更新在前向里自动完成。Metis 就是这条路线的第一个原型


二、实现方案

2.1 架构设计

Metis 不动骨干原有的注意力和 FFN,只在每层 Transformer 块里加一个 Metis 块。它分两部分:

  • 本地记忆(随会话变化):每层一个固定大小的矩阵 M 和向量 S,M 相当于把历史各轮的「键 × 值」累加、压扁后的 KV 缓存;S 是这些键的累加和,用于归一化。会话开始时两者为零,每轮结束改写一次,大小始终不变
  • 超记忆(上线后冻结):一组中期训练学出的静态权重:重要性向量 W_agg 决定哪些 token 值得写;记忆键 / 值投影 W_k / W_v 决定写成什么;记忆查询投影 W_q 决定怎么读

2.2 记忆存取

一轮对话结束后,超记忆块通过学成的自适应函数把本轮上下文聚合成紧凑表示。具体地,先给本层每个 token 的隐状态打重要性分,按 top-ρ 挑一小撮出来,把它们的隐状态投影成记忆键和值,再按折扣因子融进 M,旧信息按比例衰减,S同步更新。top-p 截断本身不可导,训练时用直通估计器把梯度绕回稠密分布,实现端到端学习

读取时不复用原始 query,而是额外投影出一个专门的记忆 query 读 M 与 S,再与当前步的因果自注意力按权重混合

作者理论证明了这一做法近似于于插入了「虚拟记忆前缀」,历史不以文字回到提示词,而以数值直接参与计算,二者之间的误差可控

如此一来,层内原注意力、记忆读出、记忆写入彼此无串行依赖,原则上可并行;记忆状态大小固定,读出成本不随历史轮数线性涨。

2.3 数据工程

从 27 个公开基准合成 35.7 万条(约 4.06 亿 token),覆盖记住、遗忘、更新记忆,以及把多条事实串起来的反思,从而让模型具备记忆操纵的能力。同一事实写显式指令与隐式叙述两种说法,并插入干扰轮,逼模型从意图推断而非抓关键词

除此之外,还收集了 60.9 万条辅助数据,专门治两类病:干扰(易混事实绑错、忘掉甲却弄坏乙)与记忆污染(闲聊或不需要记忆的问题仍把已记内容写进回答)。训练时冻结骨干,只更新记忆相关参数


三、实验结果

3.1 记忆操作能力测试

测试对象包括各尺寸的 Qwen 原版、本文提出的 Metis 以及其他零上下文记忆框架 Temp-LoRA 和 δ-Mem,外加完整、部分完整(RAG)上下文的对照组。测试任务包括记忆操作和基于记忆的问答,结果如以下两张表所示:


可见 Metis-27B 在几乎所有评测项上都达到了最高分数,更小尺寸的版本也明显强于对照方案

3.2 消融实验

把门控换回线性加权,整体相对跌幅只有 0.58%,操作类任务甚至略升;发生断崖下跌的是自适应聚合:状态大小固定时,选哪些 token 写进去是重中之重;去掉独立 query 与归一化的跌幅也与理论一致:共享矩阵里要靠专用 query 和归一化压噪声

3.3 记忆容量

一块固定大小的记忆,到底装得下多少记忆?作者做了两方面测试:

  • 步级容量(一次写入能装多少):把一批事实一次性写进记忆,再回头抽查最早、中间、最新的三条。塞进去的越多答得越差,其中最早那条崩得最快,说明单次写入的信息量有明显上限
  • 轨迹级容量(反复更新能留住多少):把 40 条事实分批写进记忆,每轮都抽查最早、中间和最新的三条。更新轮数一多,最早那条几乎一路走低,中间和最新的也跟着起伏。这说明新写入并不是干净地覆盖掉最旧的记录,而是把干扰散布到了整块记忆状态上

3.3 域外和通用能力测试

在记忆操作场景下,测试数据流水线之外的记忆基准,可见平均情况下是 Metis 领先,但并未能全盘超越对照组

通用能力测试结果如下,可见在初始状态下(尚未注入记忆)Metis 与初始的 Qwen 模型相比,并没有显著改变模型行为;而诸如无关文本后,效果明显下降,这类似于在上下文中增加无关提示词而导致模型能力退化

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询