斯坦福研究人员发布了 Memorilla,一个面向 LLM 的开源记忆系统。Memorilla 记忆系统读取整个文档集合,只向一个冻结的 LLM 提供 16 个记忆 token。在 FactKG 上,冻结的 Qwen3-8B 使用 Memorilla 得分为 84.33%,而将所有文档放入上下文时为 80.43%。它实现这一点所用的文档 token 少了 108 倍。代码、训练配方和检查点以 Apache 2.0 协议公开。你可以通过我们的 GPULeaderboard.com Chrome 扩展查看部署选项和规格。
TL;DR
规模:194M 参数的可训练记忆模块。无论集合大小如何,它始终输出 16 个记忆 token。编码器(Qwen3-Embedding-4B)和解码器(Qwen3-8B)保持冻结。
运行环境:Linux 搭配 CUDA GPU 和 Python 3.11。快速开始需要 1 块 80 GB 的 GPU(配方在 H100 80GB 上运行)。未披露量化变体。
性能:在 8 个基准测试中报告的平均分最高(49.68),在 8 个中的 5 个上得分最高。
最佳:PersonaMem-v2 准确率 44.60%,而完整上下文为 27.92%。
最差:PubMedQA 准确率 59.00%,而 LLMLingua-2 为 69.00%。
什么是 Memorilla?
Memorilla 是一个记忆模块,可将文档集合转换为 16 个向量,供冻结的 LLM 使用。这项工作来自 Jure Leskovec 的 SNAP 团队,合著者来自多伦多、宾夕法尼亚和 MIT。
冻结的 LLM 只能使用其上下文窗口中的内容。完整上下文提示会随着历史增长而变慢。检索会粘贴与问题最相似的片段,可能错过较弱的线索。Memorilla 走第三条路:它从整个存储中学习每个问题需要什么。
Memorilla 如何工作?
流程有 3 个步骤:
编码一次。冻结的 Qwen3-Embedding-4B 对每个文档仅嵌入一次。新文档永远不会强制重新编码旧文档。
按问题读取。16 个学习槽关注问题和完整存储。该模块使用 2 个交叉注意力层,8 个头。
注入。这些槽被投影到 Qwen3-8B 的输入嵌入空间,并前置到问题之前。
只有记忆模块参与训练:8B 解码器对应 194,123,776 个参数。训练分 3 个阶段进行。阶段 1 使用约 198 万条 Wikipedia 释义重构样本。阶段 2 增加来自 10 个问答与摘要数据集的约 134 万条样本。阶段 3 在全部 8 个基准测试上微调。完整流程在 4 块 H100 GPU 上耗时约 19 小时。
Memorilla 在基准测试上表现如何?
根据论文主表,所有基线均使用同一个冻结的 Qwen3-8B。分数由研究团队自行报告。
FactKG:准确率 84.33%,对比完整上下文 80.43% 和 MemoRAG 80.38%。
PersonaMem-v2:44.60%,对比次优方法 xRAG 的 30.90%。
TriviaQA:精确匹配 57.00,略高于 MemoRAG 的 56.60。
LaMP-4 / LaMP-7:ROUGE-L 分别为 18.15 和 48.37,均为最佳分数。
平均值:49.68,对比 xRAG 的 41.92、LLMLingua-2 的 40.75 和 Mem0 的 38.02。
Memorilla 在 3 个基准测试上落败。在 PubMedQA 上得分为 59.00%,而 LLMLingua-2 达到 69.00%。这些摘要总共只有 324 个 token,因此压缩收益有限。MemoRAG 在 PersonalizationV4(67.88% 对 66.65%)和 NarrativeQA ROUGE-L(20.51 对 19.31)上领先。MemoRAG 在这两项上使用的文档 token 分别多出约 690 倍和 50 倍。
压缩率在 NarrativeQA 上达到峰值:16 个 token 替代 67,385 个文档 token,缩减 4,212 倍。作为智能体记忆,8 个记忆 token 将 Qwen3-4B TextWorld 智能体的平均成功率从 18.6% 提升到 24.2%。
与完整上下文相比,Memorilla 有多快?
在 1 块 H100 上,Memorilla 在 512 篇文档(约 128K token)时用 0.74 秒作答。完整上下文从 0.75 秒减慢到 19.9 秒,即慢 27 倍。记忆模块本身耗时约 2 毫秒。
可选的记忆缓存会预计算交叉注意力键和值。在 1 块 B200 上,100 万篇文档时一个问题耗时 8.1 毫秒,400 万篇时耗时 33 毫秒。使用 torch.compile 后,100 万篇的情况降至 5.0 毫秒。缓存在 400 万篇文档时占用 80 GiB。
如何运行 Memorilla?
在 Linux 上用 uv 安装,然后加载 MemoryVLLM.from_pretrained。首次运行会下载约 25 GB 的模型。检查点位于 memorilla/Memorilla-Qwen3-8B,分为 Stage 1、2、3、PV4 和 PMv2 文件夹。
每个检查点都必须用它训练时所用的解码器运行(评估文档)。自定义数据需要包含 collection_id、question、answer 和 documents 列的 parquet 文件。研究团队还发布了 PersonalizationV4:149 个合成用户,每人 200 段对话,采用 CC BY 4.0 许可。
Memorilla 对比 Mem0、MemoRAG 和 xRAG
基准测试分数来自 Memorilla 的论文,该论文在同一个 Qwen3-8B 上运行了所有基线。许可证来自各项目的仓库。
Memorilla(论文)MemoRAG(仓库)Mem0(仓库)xRAG(仓库)方法学习到的潜在记忆 token记忆模型引导检索提取的文本记忆单 token RAG 压缩(论文)每次查询的文档 token 数(几何平均)167842121LLM 读取的内容16 个软记忆嵌入检索到的文本检索到的记忆文本1 个投影嵌入许可证Apache 2.0Apache 2.0Apache 2.0未披露FactKG(准确率)84.3380.3872.7978.98PersonaMem-v2(准确率)44.6028.7627.4830.90PubMedQA(准确率)59.0067.0024.0036.00NarrativeQA(ROUGE-L)19.3120.5113.8016.928 项基准测试平均值49.6847.52(我们的计算)38.0241.92
要点总结
16 个记忆 token 即可为冻结的 Qwen3-8B 替代整个文档集合。
FactKG:84.33% 对比全上下文的 80.43%,token 数减少 108 倍。
报告的 8 项基准测试最高平均值:49.68。
薄弱点:PubMedQA 为 59.00%,以及细粒度事实。
Apache 2.0 代码;194M 参数检查点已发布在 Hugging Face 上。
查看论文、浏览 GitHub 仓库并下载检查点。你可以通过我们的 GPULeaderboard.com Chrome 扩展在此查看部署选项和规格。
另外,欢迎在 Twitter 上关注我们,别忘了加入我们 150k+ 的 ML SubReddit 并订阅我们的新闻通讯。等等!你在 Telegram 上吗?现在你也可以在 Telegram 上加入我们。
需要与我们合作推广你的 GitHub 仓库、Hugging Face 页面、产品发布或网络研讨会等?联系我们
Stanford Research Open-Sources Memorilla, a Latent Memory Module for Frozen LLMs 一文首发于 MarkTechPost。