Token导航 LogoToken导航

AI 资讯 · 科技行者

MemFold解析AI助手长期记忆失效问题

更新 2026-10-29科技行者正文 6761字阅读约 22分钟

你有没有遇到过这种情况:跟一个客服机器人聊了十次,每次都要重新解释一遍自己的需求,它好像从来没真正"认识"过你。更尴尬的是,有时候它明明记住了你说过的话,却在给建议的时候完全没用上。你三月份说过不喜欢戴智能手表,九月份它推荐健身方案的时候,又把智能手表塞回来了。

这不是bug,这是整个长期记忆AI领域一直没解决好的问题。

记住和用好,是两件事

先说清楚一件容易被混淆的事:一个AI助手能不能把你说过的话存下来,和它能不能在恰当的时候用上这些话,根本是两件不同的能力。

存储这件事,技术上早就不难了。无论是把聊天记录整理成文档,还是用某种压缩算法把历史对话变成一堆数字,都能做到"记住"。但真正难的是,当用户问"推荐点健身方式"的时候,AI能不能想起来"哦,这个人之前说过讨厌戴智能手表",并且真的把这条信息用进回答里,而不是嘴上说用了实际上没用。

论文里举了个挺扎心的例子:评测长期记忆能力的时候,很多AI模型能准确复述出用户偏好是怎么变化的,甚至能说清楚变化的原因,但一到真要给建议的环节,它却完全不受这个偏好约束,该推荐什么还是推荐什么。还有些时候,用户的拒绝不是直接说"我不要",而是用一种比较含蓄的方式表达出来,AI压根识别不出这是在表达反对。更有意思(也更让人无奈)的是,有研究专门测试AI会不会"忘记该忘记的东西",结果发现很多agent还在执行用户后来已经明确否定过的指令。

这就好比你雇了一个秘书,TA把你说过的每句话都记在笔记本上,笔记做得工工整整,可是真正安排你行程的时候,完全没翻过那本笔记。记忆和行动之间,隔着一条沟。

两种记忆方式,各有各的毛病

要理解MemFold做了什么,得先知道现在主流的两种记忆方案是什么样的。

第一种叫文本记忆,顾名思义,就是把历史对话原封不动(或者简单整理一下)存成文字,每次用户提问的时候,把这堆文字塞进AI的输入里。这种方式的好处是人能读懂,也方便修改,但致命问题是:历史越长,输入就越长。聊了一年的用户,TA的历史记录可能是聊了一周用户的几十倍,AI每次回答都要把这些文字全部重新处理一遍,又慢又贵。

第二种叫潜在记忆(Latent Memory,也就是用一组固定数量的连续向量来代表整段历史,不管对话多长,最后压缩出来的向量数量是固定的)。这解决了长度膨胀的问题,接口大小跟历史长短无关了。但新问题来了:这些压缩出来的向量,到底训练得好不好?

论文指出一个很关键的点:现在大多数压缩器的训练方式,是让AI学着用压缩后的向量去"还原"出原始文本,或者去模仿一个标准答案。听起来挺合理,但这里有个隐藏的坑:这种训练方式打分用的句子,都不是AI自己生成的,而是人工准备好的参照答案。

这就好比你在训练一个翻译员,考试内容永远是让TA翻译课本上的例句,可实际工作中TA面对的是客户现场脱口而出的大白话。考试成绩好不代表现场发挥好,因为考试从来没让TA真正"上场"过。如果不改变这种训练方式,压缩出来的记忆向量可能在"复原文本"这件事上表现完美,但AI真正自己说话的时候,该用上记忆的地方照样会漏掉,而这种训练方式根本发现不了这个漏洞,因为它从来没让AI自己说过话。

MemFold的核心思路:让AI自己说话,再去评判说得好不好

MemFold这篇论文的出发点很直接:评判一份压缩记忆好不好,不该看它能不能还原文本,而要看AI自己基于这份记忆说出来的话,有没有真正用上该用的信息。

具体怎么做呢?整个流程分成几步。

第一步,有个记忆压缩器(Compressor),负责把跟当前问题相关的历史信息,压缩成固定数量的K个连续向量(这里K是一个预先设定好的数字,比如256,代表记忆的"容量预算",不管对话历史多长,压缩出来的向量数量永远是K个)。这组向量就成了AI阅读记忆的唯一接口。

第二步,也是最关键的一步,叫在线策略优化(on-policy optimization,意思是直接在AI自己生成的回答上做训练,而不是用别人准备好的标准答案做训练)。AI先用压缩后的记忆向量,自己生成一堆候选回答,然后用两种信号来打分和调整。

第一种信号叫群体相对奖励(group-relative reward,简单说就是让AI针对同一个问题生成多个回答,比较这些回答里哪个得分更高,用相对高低来指导训练方向,这是一种常见于强化学习里的做法,叫GRPO)。这种信号负责告诉AI"这次回答对不对",是个大方向的指挥棒。

第二种信号是这篇论文真正的创新点,叫置信度门控的在线策略蒸馏(confidence-gated on-policy distillation,简称OPD)。具体是怎么运作的:论文设置了一个冻结不动的"教师模型",这个教师用的是没压缩过的完整文本记忆去阅读同样的问题,然后对学生(也就是正在训练的那个用压缩记忆的AI)自己生成的每一个词,重新打一遍分,看看教师在读完整文本的时候,对这个词有多大信心,跟学生用压缩记忆时的信心比起来,谁更有把握。

这里有个很巧妙的设计:教师从来不自己生成任何内容,它只负责给学生已经说出来的话打分。这意味着整个训练过程始终围绕着学生自己会说的话展开,不会把教师的用词习惯强行塞给学生。

分数差距越大的地方,说明学生在压缩记忆下的理解,跟真实文本支撑的理解之间差得越远,这个词就会被赋予更大的权重,鼓励学生在训练中更重视这类"压缩记忆没撑住"的地方。但这个权重有个上限,不会无限放大,论文管这个叫"置信度门控",门控的意思就是设了个闸门,防止教师在某个词上的判断过度主导整个更新方向。

这个设计解决的核心矛盾是什么?传统的那种"一个句子打一个总分"的奖励方式,没法告诉AI具体哪个词说错了。论文里有个很生动的例子:一段回答整体读起来很流畅,话题也对,但是其中推荐的某一个具体选项,恰好踩中了用户明确表达过的偏好禁区。如果只给整句话打一个分,AI没法知道问题出在哪一句、哪个词,只知道这次"不太对",但具体错哪儿了说不清楚。

这就好比老师批改作文,只在卷子最后写一个"65分",学生根本不知道是因为开头跑题了,还是中间一个论据用错了,还是结尾太仓促。而OPD这种逐词打分的方式,相当于老师在每一句话旁边都做了批注,告诉你"这句话你这里的理解比标准答案差了一截"。如果不这么做,AI只能靠猜,训练效率会低很多,而且很可能学到一些似是而非的教训,比如以为是因为话说得太长才扣分,而不是因为真正违反了用户的偏好。

为什么说这个教师不是"更聪明的老师"而更像是"参照系"

这里有个容易被误解的地方,值得专门说清楚。

教师模型的任务准确率,其实比训练到后期的学生还要低。论文里特意做了实验验证这一点。这听起来很反直觉:一个准确率更低的模型,凭什么能指导一个准确率更高的模型?

答案在于,教师存在的意义根本不是"给出正确答案",而是提供一个"读了完整文本会怎么理解"的参照。它和学生本质上是同一个模型的两个版本,一个读压缩后的记忆向量,一个读完整的文本记忆,两者刚开始训练的时候是完全一样的权重。教师的作用只是告诉学生:"你压缩记忆读出来的理解,跟我读完整文本的理解相比,差在哪里。"

论文用了一个数学上很讲究的说法:这套机制在理论期望上,等价于一种"反向KL散度"(KL divergence是衡量两个概率分布有多不像的一种数学工具,反向KL散度在这里的意思是,学生被拉向教师的方向,但拉力的强度是有上限的,不会被教师的某个极端判断带偏)。而且论文严格证明了,这种机制不会把教师自己偏好的用词硬塞给学生,学生从来没说过的词,不会因为教师喜欢而被凭空提升概率。

换句话说,这不是找一个更厉害的老师来抄答案,而是找一个"读了完整资料的自己",去提醒"读了压缩笔记的自己"哪里理解浅了。

这就像两个你,一个认认真真读完了一整本会议记录,另一个只拿到了一页浓缩的摘要卡片。读完整会议记录的那个你,可能业务能力一般,但TA知道哪些细节在摘要卡片里被弄丢了。如果不设这个对照,只靠摘要卡片的那个你根本不知道自己漏了什么,错了都不知道错在哪儿。

压缩预算K,多大才合适

论文里专门做了实验,测试记忆向量数量K从64一路加到512,看看准确率和成本怎么变化。

结果是单峰曲线,K=256的时候效果最好,128到512这个区间差距都不算大,只有K=64明显不够用。更有意思的是K=512反而效果略微下降,论文作者的解释是,训练流程本身是按固定预算设计的,没有针对每个K重新调整初始化方式,所以这个下降可能是训练配置的问题,不代表更大的记忆容量天生就学得更差。

成本方面,K从64加到512,整体token开销几乎没变化,变化幅度不到百分之一。这是因为增大K带来的输入token增量,和整个处理流程里的其他部分比起来,占比太小了。真正占大头的成本,是读取整段用户历史、生成文本记忆这一步,这一步每次都要做,跟压缩预算大小没关系。

这意味着压缩记忆这个设计确实把"接口大小"和"历史长度"脱钩了,但没能把"读一次历史"这个固定成本降下来。这是个值得记住的边界:压缩解决的是接口膨胀,不是读取开销。

实验结果:数字说话

论文在三个不同大小的Qwen系列模型上做了测试,涵盖PersonaMem-32K(偏好追踪基准)

PersonaMem*:一个专门评测AI能不能准确追踪用户偏好随时间演变的基准数据集,分32K和128K两个版本,数字代表对话历史的长度,128K意味着历史更长、信息更分散,难度也更高。

和PersonaMem-128K两个版本。结果显示,MemFold在这两个基准上拿到的准确率都是所有对比方法里最高的,而且历史越长,领先优势越明显。举个具体数字,用Qwen2.5-3B这个模型,在PersonaMem-128K上,MemFold做到了88.4%的准确率,而同样设置下用传统强化学习方法训练的GRPO只有58.4%,相差整整30个百分点。换成Qwen2.5-7B,MemFold在这个基准上更是达到了94.4%,而全文本输入这种最直接的方法只有24.0%。

这里有个特别值得停下来想一想的现象:很多在短历史(32K)上表现还不错的方法,一旦历史拉长到128K,准确率就断崖式下跌。比如xRAG

xRAG*:一种把检索到的内容压缩成单个token的上下文压缩方法。

在32K时表现一般,但到128K的时候反而上升到55.8%左右,变化很不规律,说明这类方法对历史长度的适应性不稳定。而MemFold在两个长度下都保持高水平,这说明它学到的不是某个长度特有的技巧,而是一种更通用的"怎么从记忆里提取有用信息"的能力。

更让人意外的是成本这块。按理说,准确率这么高,应该是靠砸更多计算资源换来的吧?但论文测的端到端token消耗显示,MemFold的平均成本和全文本输入基本持平,甚至在加权平均上还更低。也就是说,这次的准确率提升不是靠烧资源堆出来的,是训练方式本身更聪明了。

论文还测试了跨数据集的迁移能力,用在PersonaMem-32K上训练好的模型,直接拿到PrefEval

PrefEval*:一个评测AI能否识别隐含表达(而非直接指令)的用户偏好的基准,这里用的是其中的隐式人格子集。

上测试,模型完全没在PrefEval上做过针对性训练。结果MemFold依然保持相对最好的表现,虽然在PrefEval这个基准上,各家方法的差距本身就比较小(整体准确率都偏低,最高也就十几二十的百分比),说明这个基准本身难度很大,但MemFold至少没有像一些对比方法那样,表现比什么都不做的全文本基线还差。

另外还测试了用LoCoMo

LoCoMo*:一个专门评测长期对话记忆能力的数据集。

训练出来的模型,拿到LongMemEval

LongMemEval*:一个涵盖知识更新、多轮会话推理、时间推理、用户偏好回忆等多种长期记忆能力的综合基准。

上测试,MemFold同样保持了相对最稳健的表现,而很多基于潜在记忆的方法在这个基准上表现很差。

拆解每一块贡献有多大

论文做了细致的消融实验,拆掉某个组件,看看少了它表现会掉多少。

结果显示,如果去掉"读者初始化"这一步(也就是先让AI学会怎么读压缩记忆这个接口,再去做后续的强化学习训练),表现下降最明显,说明AI必须先学会"读"这个新接口,才能谈得上用好它。如果去掉GRPO这个任务奖励信号,表现也掉得很厉害。而去掉OPD这个逐词置信度信号,表现同样下降,但幅度比去掉GRPO小一些。

这说明两个信号不是平分秋色的关系:GRPO负责大方向上"对不对",是主力;OPD负责细节上"哪里理解浅了",是补充,但补充的作用确实存在,不是摆设。论文还特意对比了一个"纯文本空间"的对照组(也就是不压缩记忆,直接用完整文本做同样的训练流程),结果发现这个对照组表现跟MemFold差不多,但没有超过它。这说明在当前的训练方式下,压缩本身并不是拖后腿的那个环节,瓶颈不在"记忆被压缩了多少",而在"怎么训练AI用好这份记忆"。

最后,论文还做了一个很直白的验证实验:把AI该用的那份记忆,换成随机打乱的记忆,或者干脆什么都不给,结果准确率大幅下滑。这证明AI确实在依赖这份专属于当前问题的记忆内容,不是在凭空套模板回答,也不是完全忽略记忆瞎编。

一个具体的失败案例

论文给了一个很直观的例子。用户之前表达过"不喜欢用智能手表和健身追踪设备",然后问AI怎么监测健身进度。用GRPO训练的模型和用另一种对比方法OPSD训练的模型,都在回答里推荐了"使用Fitbit或Apple Watch这类穿戴设备",直接撞上了用户明确表达过的偏好禁区。而MemFold训练出来的模型给出的是写健身日记、测量身体数据、拍进度对比照片这类不涉及穿戴设备的建议,而且回答篇幅反而更短,只用了96个词就说清楚了,另外两个方法用了300个词还在违反偏好。

这个例子特别能说明问题:聚合的准确率数字看不出这种局部失误,因为整体话题相关性、流畅度都没问题,唯独那一个推荐点踩了偏好的雷。只有逐词级别的信号,才能发现并纠正这种藏在流畅表达里的小错误。

后续的研究方向

这篇论文发表之后,研究社群在长期记忆这个方向上还有不少后续探索。比如同期出现的一些工作开始探讨怎么让记忆写入过程本身也通过强化学习来优化,而不只是优化记忆的读取方式,这意味着未来可能出现"写"和"读"两端都用在线策略训练的完整闭环系统。另外也有工作在尝试把这种置信度门控蒸馏的思路,从单一轮回答扩展到多轮连续交互的场景,毕竟真实的用户对话很少是一问一答就结束的。

写在后面

读这篇论文的时候,有一个地方让我反复琢磨了很久:教师模型准确率比学生还低,却依然能帮助训练出更好的学生。这不是常见的"强者教弱者"的叙事,而是一种"知情者提醒"的关系,教师唯一的优势是它看到了学生看不到的完整信息,而不是它判断力更强。这个设计思路挺值得记住的:有时候你需要的不是一个更聪明的参照,而是一个信息更全的参照,哪怕TA本身没那么聪明。

另外一个细节也挺有意思,论文里提到压缩预算从64加到512,成本几乎不变,但准确率在256之后反而掉了一点。研究者没有急着解释这是"更大的记忆容量天生学得差",而是坦诚承认这可能是训练流程没有针对不同K重新调优导致的。这种谨慎的表态,比强行给出一个漂亮解释更让人信服。

论文最后提到的两个局限也值得多想一步:现在的记忆写入模块依赖一个更强的外部模型来生成初始训练数据,这个外部模型推理时不需要,但训练阶段省不掉。如果有一天没有这种更强模型可用,这套方法还能不能跑起来,这是个开放问题。另外测试的模型规模都在70亿参数以内,更大的模型上这套训练方式是否依然有效,论文也没有给出答案。

一个AI要真正记住你,还是要真正用上记住的东西,这中间的距离,可能比我们想象得更远。

Q&A

Q1:MemFold是什么?

A:MemFold是一种让AI助手在长期对话中更好地记住并实际用上用户偏好的训练方法,它把历史记录压缩成固定数量的向量,再通过AI自己生成的回答来训练,而不是靠还原文本或模仿标准答案来训练。

Q2:MemFold和普通的记忆压缩方法有什么区别?

A:普通方法训练压缩器时打分用的是人工准备的参照答案,AI自己生成的内容从来没被评判过。MemFold直接让AI基于压缩记忆自己生成回答,再用任务奖励和一个逐词置信度信号来评判这些回答好不好,训练和实际使用场景保持一致。

Q3:MemFold里的教师模型为什么准确率反而比学生低?

A:因为教师的作用不是给出正确答案,而是提供一个读了完整文本记忆后的参照理解。它只负责告诉学生压缩记忆读出来的理解和完整文本读出来的理解差在哪里,这种提醒作用和模型本身答题准不准是两件事。

文章标签AI产品

资讯来源:由AI资讯编辑整理自互联网公开内容,版权归原作者所有,未经许可,不得转载。