米拉的记忆宫殿

0 阅读7分钟

最近有个开源项目 MemPalace,在中文互联网又小火了一下。它之所以受到关注,是因为开发者名单里有个熟悉的名字:米拉·乔沃维奇,就是那个在《生化危机》里打了十五年丧尸的爱丽丝。好莱坞女演员跨界来做 AI 工具,这事儿本身就挺有意思。而 MemPalace 给出的成绩也非常亮眼:在 LongMemEval 和 LoCoMo 两个 benchmark 里,最高可以达到 100% 的准确率,远超 mem0、Zep 等商业系统。


故事要从 2025 年底说起。那时候米拉·乔沃维奇开始密集使用 ChatGPT、Claude 这些 AI 工具处理工作——商业决策、创意头脑风暴、合同分析、项目调试。几个月下来,她往这些系统里灌了成千上万轮对话,每一轮都是她思考过程的完整记录:考虑过哪些替代方案,权衡过哪些细微差别,做了什么决定以及为什么。

然后她打开一个新的聊天窗口,所有这些东西都消失了。

完全的失忆。每次对话都从零开始。昨天刚帮她理清复杂谈判逻辑的 AI,今天早上一个字都记不起来。用她自己的话说,她是在跟"一个有永久性短期记忆丧失的聪明助手"打交道。

她去找现成的解决方案。试了 Mem0,那家拿了 2400 万美元投资的 YC 公司。试了 Zep。试了市面上其他记忆工具。结果发现它们都有一个根本性的问题:用 AI 来决定什么值得记住。一个语言模型会读她的对话,提取它认为"关键的事实",把剩下的压缩成摘要,然后把原文扔掉。她的推理过程、她考虑过的替代方案、那些让她的决定真正有用的细微差别——全部丢弃。换成整齐的小 bullet points,却完全错过了重点。

这就是 MemPalace 的起点。不是一个技术洞察,而是一个人的洞察。整个 AI 记忆行业都建立在同一个假设上:存储很贵,上下文窗口有限,所以你得聪明地决定保留什么。但乔沃维奇作为一个用户而非工程师,从另一个角度看到了问题:那个"聪明"的部分本身就是问题。如果你让机器决定忘记什么,你就已经输了。

她需要一个开发者。她找到了 Ben Sigman。

他们花了好几个月开发。设计原则激进地简单:存储一切原文。不做摘要。不做提取。不让语言模型在归档前重写你的记忆。就保留原始对话,做好索引,让它们可搜索。


在 MemPalace 这个项目上,他们做了三个与众不同的尝试。

第一个是"四层记忆栈"。

你可以把它理解成给 AI 配了一个分层的记事本。最底层 L0 是 AI 的自我认知,"我是谁,什么性格",这一层始终带在身上,不会忘。L1 层是"关键记忆",从过往对话里挑最重要的片段,大概能装下十五段对话,也常驻在脑子里。L2 层是"按需调取",聊到具体话题时,比如"那个后端重构项目",再去把相关的记忆翻出来。L3 层是"深度搜索",实在想不起来了,全文检索。

这个设计的聪明之处在于控制成本。L0 加 L1 大概占六七百个 token,给 AI 留出了九成以上的上下文空间去处理当前对话。既保证了连续性,又不会把窗口撑爆。

测下来效果确实不错。在业界标准的 LongMemEval 测试里,这个方案拿了 96.6% 的分数。加上一些元数据过滤(关键词匹配、时间邻近性加权等),再配合商业大模型(Claude Haiku)的 rerank,最高能到 100%。不过这个结果也存在一定的争议。

第二个是"记忆宫殿"结构。

这是项目名称的由来。"记忆宫殿"传说是起源于古希腊人诗人西莫尼德斯的高效记忆法,通过把抽象、无序的信息转化为生动的图像,并跟自己熟悉的空间位置建立联系,来提高记忆效率和准确性。“记忆宫殿”也是世界记忆大赛冠军常用的技巧之一。MemPalace 借用了这套方法,把记忆分门别类存储在虚拟的宫殿结构里, Wing、Room、Closet、Drawer,一层层嵌套。Wing 是翼楼,代表一个项目或一个人;Room 是房间,代表具体话题;Closet 是衣柜,存摘要;Drawer 是抽屉,存原文。

想法很美好,但实际数据并不是很支持它。在 LongMemEval 里,“记忆宫殿”模式的最好成绩是 99.4%,跟混合检索模式(向量检索+元数据过滤)持平。在 LoCoMo 里,“记忆宫殿”模式的最好成绩是 85.7%,要低于混合检索模式的 88.9%。不管在哪个 benchmark 里,“记忆宫殿”都没有表现出优势。

第三个是 AAAK 压缩。

这也是很有争议的一个点。AAAK 是四个词的缩写:Assertion(断言)、Assumption(假设)、Action(行动)、Knowledge(知识)。简单说,就是把长句子压缩成代码一样的短字符串。比如 "Alice and Bob decided to use PostgreSQL" 变成 "ALC+BOB|database_decision|..."

文档早期版本声称这是"30 倍无损压缩",能大幅减少 token 使用。但实测下来,在 LongMemEval里,准确率从 96.6% 掉到了 84.2%,跌了十几个点,并非无损压缩。而且对于小文本根本省不了 token,把 Alice 压缩成 ALC,只是减少了字符数,并不一定减少 token 数。


MemPalace 项目发布以后,引起了极大的争议。Github 上有多个 issue (#27 #29 #39)都提出了质疑。质疑点主要集中在基准测试方法不合理、得分虚高、宫殿结构和AAAK压缩的有效性存疑以及 README 的声明和实际代码、测试结果不一致等几个方面。

Penfield Labs 更是发了一篇批评文章,标题毫不客气的指出:“None of the benchmark scores are real”。他们提出几个问题:LoCoMo 测试用的 top_k=50 可能超过实际候选数量,相当于返回所有结果;为了从 99.4% 推到 100% 做的三个针对性修复,更像是过拟合测试集而非真正提升能力;README 里的一些性能声明和实际代码不符;那个 headline 的 100% 需要用 Haiku 做重排序,不是纯本地,而纯本地分数是 96.6%——仍然是最好的,但不是 100%。

不过也有人复现了 96.6% 的测试结果(issue #39),这个成绩已经很优秀了。Milla 和 Ben 也对质疑做出了回应。他们更新了 README,承认了其中的一些问题。并且截至本文写作时,依然在积极的更新代码。


总的来说,MemPalace 还是很有意思的一个项目,即使排除米拉·乔沃维奇这个因素,也值得一看。存储全部的对话记录,而不是用 AI 提取所谓的“关键记忆”,或者整理成漂亮的“知识图谱”;用成熟的向量数据库进行检索,加上四层记忆栈控制上下文。这些朴素务实的工程选择,看起来效果不错。但是那些花哨的概念——记忆宫殿的层级结构、AAAK 压缩编码——就有过度设计的嫌疑了,经不起实际测试的检验。可能是为了好讲故事而做的差异化,也可能是一开始想法很美好,但做出来之后发现效果并不好,又不舍得放弃。在现有的一众 Agent Memory 产品和开源项目里,能有人出来做一些不一样的尝试,也是很不错的。希望 MemPalace 不是一次搏眼球的营销,而是实实在在去尝试解决 AI 记忆的痛点。


参考