长对话记忆系统的流行做法是「先提取再存储」:让 LLM 把对话压缩成结构化的记忆条目,人物、偏好、事件各归其位,需要时检索这些条目。听上去很合理,也确实省 token。但很少有人问:提取这一步丢掉了多少东西?
论文说了什么
这是一个受控消融,设计上刻意做得很窄。检索用同一套混合方案,重排用同一个 bge-reranker-v2-m3,回答模型和评分模型都不变。唯一变动的变量是存储介质:一边是 LLM 提取的结构化条目,一边是不做任何加工、512 字符滑窗切开的原文对话。
结果一边倒。LoCoMo(10 段真实对话、699 个问题)上,原文切片 43.9%,预算对齐的结构化条目 29.2%,最好配置的 GraphRAG 只有 13.0%;给原文切片加一跳图谱是 43.1%,没有提升。LongMemEval-S 上差距扩大到 22.0 个百分点,67.4% 对 45.4%,McNemar 检验 p < 10⁻¹⁵。时序推理这一类分歧最大,50.2% 对 31.2%。
失败模式的归因比总分更有说服力:69% 的结构化条目失败,源于事实在提取时根本没被抽出来。提取发生在写入时刻,那时提问的分布还不知道,模型只能猜什么重要,而答案需要的细节往往正是被判为不重要的那部分。这是写时信息损失,检索阶段再怎么优化也补不回来。
成本这一项本来是提取方案的主场,结论也没站住。结构化条目比原文短 5.1 倍,单次回答确实更便宜,但按「每一千条正确答案」折算,原文切片 12.5 美元,结构化条目 14.9 美元,而且这还没算提取本身的前期开销。省下的 token 被更低的命中率吃掉了。
这篇的证据强度
在消融设计上这篇做得很干净:单变量、管线固定、显著性检验给了,成本口径也换算到了可比的单位上,不是只报总分。跨两个基准同向复现,量级差异不小。
有一处矛盾作者选择公开而不是抹掉:合成基准上的结果与真实对话基准相反。合理的解释是,为提取式方法设计出来的合成数据在自我验证,因为构造问题时就假定了答案落在可提取的实体和关系上。这个解释说得通,但它同时是一个警告:基准和方法同源时,评测结果衡量的是契合度而不是能力。这条对读者的意义大于对这篇论文本身的意义。
需要拎清楚的是结论边界。这篇比的是「提取后替代原文」与「原文」,不是「提取」与「不提取」。结构化条目在需要跨会话聚合、需要给人看的场合仍然有用。论文的结论应当读作:结构化记忆应该增强原文,不应该替代原文。
对实践的意义
FIM One 的知识库与会话记忆遵守一条纪律:原文永远在场,结构化索引只负责导航,不充当唯一事实来源。这条纪律的代价是存储和检索成本更高,上面的成本换算说明这个代价是划算的。
对做 RAG 系统的团队,有一条可以直接抄走的架构决策,以及一个判断题。抄走的是:不要让蒸馏后的表示成为唯一可检索对象。判断题是:你的系统在写入时刻做的每一次「这条重要、那条不重要」的裁决,都是在提问分布未知的情况下下注。能推迟到查询时刻再做的裁剪,就不要提前做。