Post

LongMemEval:从零理解聊天助手的长期记忆评测、系统设计与完整实验(ICLR 2025)

LongMemEval:从零理解聊天助手的长期记忆评测、系统设计与完整实验(ICLR 2025)

论文:LongMemEval: Benchmarking Chat Assistants on Long-Term Interactive Memory
论文链接:arXiv 摘要 · 本文阅读版本 PDF:2410.10813v2
作者:Di Wu、Hongwei Wang、Wenhao Yu、Yuwei Zhang、Kai-Wei Chang、Dong Yu
机构:UCLA、Tencent AI Lab Seattle、UC San Diego
发表:ICLR 2025
版本:2024 年 10 月首发;本文依据 2025 年 3 月 4 日的 v2,共 28 页
官方项目:xiaowu0162/LongMemEval
笔记时间:2026 年 10 月 16 日

本文覆盖论文正文、附录 A–E、实验表格、提示词设计、错误分析及伦理声明。它是一份面向初学者的解释性阅读笔记,不是逐句翻译。文中的“作者解释/假设”表示论文提出但未必独立验证的机制解释;“本文解读/延伸”表示为理解和开展工作补充的分析。实验数字属于论文当时的模型与设置,不能用来判断 2026 年产品的当前能力。文末专门记录原文内部不一致和复现时仍需确认的事项。

1. 先理解:这篇论文到底在解决什么问题

1.1 能聊天、支持长上下文和有长期记忆,是三件不同的事

一个助手可能在当前对话里回答得很好,却不知道你上个月换了工作;也可能记得你喜欢摄影,却忘记自己曾向你推荐过什么镜头。长期记忆要解决的是:在持续发生、不断变长的交互中,保存有用信息,在未来问题出现时找回相关证据,并结合时间、更新和多条证据给出正确回答。

这里的“记忆”主要指系统可读写的外部记忆,不等于模型预训练参数中学到的世界知识。知道某个相机品牌是什么,是世界知识;知道“这个用户上周买了该品牌的某款相机”,才是交互中形成的个人知识。

长上下文窗口只说明一次可以输入多少 token,不保证模型能准确利用每处信息。token 是模型处理文本的基本单位,不能直接等同于汉字、英文单词或对话轮数。即使能塞入全部历史,也可能出现遗漏、干扰、时间混淆,以及读取成本随历史增长的问题。

1.2 作者认为既有评测漏掉了什么

论文引言提出两组不足。

第一,历史对话不够贴近真实助手使用:不少数据是人与人闲聊,或者集中在个人背景交谈,缺少写简历、安排旅行、选购产品等任务型互动。实际任务里,用户常常只顺带透露一句个人信息,助手却会产生很长的回复。这种信息密度和角色分布,与短小的人设对话不同。

第二,评测能力不完整:找回一句话只是起点。系统还要汇总不同会话、记住助手说过的话、判断哪个信息已被更新、理解相对时间,以及面对错误前提时承认不知道。原有历史长度通常固定,也不便于随着模型进步继续提高难度。

因此,这篇论文同时做了两件事:

  1. 构造一个有人工证据标注、历史长度可扩展的长期记忆评测集。
  2. 用它拆解记忆系统的设计因素,而非只公布一个排行榜或提出一个复杂的新模型。

1.3 先记住整篇论文的逻辑链

1
2
3
4
5
6
7
8
9
10
11
12
13
未来问题尚未出现
    ↓
用户与助手持续产生会话
    ↓
索引阶段:保存什么?用什么表示让它容易被找到?
    ↓
未来问题出现
    ↓
检索阶段:如何理解问题,找回相关历史,处理时间约束?
    ↓
阅读阶段:如何从取回的材料中提取证据、推理并回答?
    ↓
分别检查:证据有没有找全?答案是否正确?

作者最终推荐的经验组合是:以一轮用户—助手交互作为存储粒度,保留对话内容;在检索键中加入提取出的用户事实;对确实可以解析出时间区间的问题使用时间约束;把检索结果按时间排序,以 JSON 呈现,并要求模型先提取相关证据再作答。后文会解释为什么这些建议都有适用条件。

2. 入门概念与相关研究位置

2.1 session、round、fact、key、value 分别是什么

概念中文解释对长期记忆的影响
Session一次多轮会话语境完整,但可能很长且混合多个主题
Round一条用户消息和紧接着的一条助手回复比整段会话更聚焦,仍保留局部交互上下文
Fact从对话抽取的一条事实简短、易聚合,但可能遗漏限定条件或细节
Value找到以后交给阅读模型的记忆内容决定最终有没有足够证据回答
Key用于定位这份内容的检索表示决定相关记忆能否进入候选集
Query从当前问题形成的检索请求可以包含文本含义,也可以包含时间约束
Reader阅读检索材料并回答问题的语言模型即使检索正确,也可能读错或推理错
Oracle retrieval人为只提供已标注的证据材料隔离阅读困难;不是可直接部署的真实检索器

最重要的区别:key 可以比原文更突出某些信息,value 则仍然保留原文。 把抽出的事实拼进 key,不意味着要把原始对话压缩掉。

2.2 与一般 RAG 的关系

RAG,即检索增强生成,通常先从外部文档中找材料,再让模型回答。本文把这个过程用在用户与助手的交互历史上。

它多出几种困难:历史不断增加;同一人的状态会改变;“上周”“上次”需要时间定位;用户和助手分别承担不同的信息来源角色;信息的重要性在写入时未必显而易见;未来查询可能要求将多段不相邻对话拼在一起。

本文解读:普通文档检索常问“哪个文档包含答案”,长期记忆还会问“这条陈述发生在何时、当时是否成立、后来是否失效、说的是用户真实经历还是助手的建议”。论文覆盖了其中一部分,但没有完整解决所有状态管理问题。

2.3 论文归纳的三条记忆技术路线(原文 §2)

  1. 延长上下文:直接读全部历史。系统简单,但成本高,也可能受到无关内容干扰及“中间信息不容易被利用”的影响。
  2. 可微记忆模块:修改模型结构或训练方法,将外部记忆访问融入模型计算,例如 Memory Networks、Memorizing Transformers 等方向。
  3. 上下文压缩与检索:把历史变成内部压缩表示、离散 token,或者可检索文本块。本文主要采用逐会话处理的外部记忆视角,便于接入既有助手。

基准本身并不要求必须用 RAG;作者研究的优化方案才主要属于第三条路线。

2.4 既有基准比较(原文 Table 1)

下表保留原论文的比较口径,数字中的 k、M 分别约为千、百万;它们不是本文重新统计的当前版本规模。

基准场景会话数问题数上下文深度论文标记的能力覆盖
MSC开放域5k—1k没有按本文五种问答能力设置
DuLeMon开放域30k—1k同上
MemoryBank个人信息3001945k信息提取、时间推理
PerLTQA个人信息4k8,593约 1M信息提取、拒答
LoCoMo个人信息1k7,51210k信息提取、跨会话、时间推理、拒答
DialSim电视剧角色1k–2k约 1M350k信息提取、跨会话、时间推理、拒答
LongMemEval个人信息50k500115k / 1.5M五种能力全部覆盖

PerLTQA 的上下文深度是作者估计值;DialSim 的跨会话能力在表下注释中限制为最多两次会话。正文还提到 MemoryBank 的 15 位用户、LoCoMo 的 50 条长期历史,以及 PerLTQA 的 3,409 段对话,表格中部分数量作了取整或使用不同统计单位。长期历史条数、其中的 session 总数、最终问题数不能混为一谈。

这张表证明的是作者设定下的覆盖范围差异,不代表其他基准没有价值,也不代表问答题数越少反而越好。

3. LongMemEval 的任务定义与七类问题

3.1 每个评测样本是一个四元组(原文 §3.1)

\[(S,q,t_q,a),\qquad S=[(t_1,S_1),(t_2,S_2),\ldots,(t_N,S_N)],\qquad t_q>t_N.\]

这里,$S$ 是按时间从早到晚排列的完整历史;$N$ 是会话数;$S_i$ 是第 $i$ 个会话;$t_i$ 是该会话时间;$q$ 是未来问题;$t_q$ 是问题提出时间;$a$ 是参考答案。

$a$ 不一定是一个字符串。有些题是开放的个性化建议,因此它可以是一段评价标准,规定答案应该如何利用用户信息。

评测在线记忆系统时,应依次提供历史会话,最后才提出问题。不能在建立记忆时把未来问题或答案交给系统,否则就变成针对已知问题筛选证据,偏离长期记忆任务。

3.2 五种核心能力与七类问题的对应关系

能力问题类型实际在测什么
信息提取 IEsingle-session-user找回用户在某次会话中说过的信息
信息提取 IEsingle-session-assistant找回助手在某次会话中提供的信息
信息提取/个性化使用single-session-preference利用用户信息形成符合偏好的回答
跨会话推理 MRmulti-session跨两次以上会话聚合、比较、计数
知识更新 KUknowledge-update识别个人信息变化,使用适合问题的新状态
时间推理 TRtemporal-reasoning同时利用时间戳和对话里的时间表达
拒答 ABSabstention识别历史并不支持的问题,避免补造答案

3.3 把 Figure 1 的七个例子逐一读懂

用户事实提取:用户谈有声书时顺带说通勤单程 45 分钟。未来问通勤多久,答案是单程 45 分钟。难点是事实隐藏在别的任务里,没有被显式标记成“请记住”。

助手事实提取:助手曾推荐罗马适合浪漫晚餐的餐厅 Roscioli。之后用户问“你推荐的是哪家”。只保存用户画像无法完成这个任务,必须保留助手说过什么。

偏好使用:用户询问 Sony A7R IV 闪光灯、Sony 24–70mm f/2.8 镜头维护、相机包升级。未来让助手推荐配件,应体现与 Sony 摄影设备的兼容性。这里不是复述一句“你喜欢 Sony”就够了,信息必须影响实际建议。

跨会话汇总:用户在不同会话提到 Korg B1 钢琴、Fender Stratocaster 电吉他、Yamaha FG800 木吉他,以及考虑出售的 Pearl Export 鼓。问目前有多少乐器,原例答案为 4。尤其“考虑卖掉”不等于“已经卖掉”,需要保留状态限定。

知识更新:先提到一家人去夏威夷,后来提到刚去过巴黎。问最近一次家庭旅行,要答巴黎。找回一个语义相关地点还不够,还要判断时间和更新关系。

时间推理:不同日期谈到与朋友、父亲一起参观不同博物馆。问距离上次“与朋友”参观过去几个月,需要同时筛选同行对象、定位事件时间、计算与提问时间的间隔。不能简单选最近一条“博物馆”记录。

拒答:历史涉及 10 加仑和 20 加仑鱼缸,用户却问 30 加仑鱼缸里有多少鱼。正确行为是指出缺少这项信息,而不是挪用相似鱼缸的数字。

这些例子说明:一个关键词命中不等于找对证据,一段看起来相关的回答也不等于完成记忆任务。

3.4 拒答不是单独采集完全陌生的问题

作者从其他类型中选 30 个问题,改成带错误前提的问题。这样,历史中存在很像答案的内容,模型更容易被诱导去填补空缺。

本文解读:这是在测试“证据边界”。但 30 个拒答问题仍然很少,也不足以覆盖现实中所有缺失、矛盾、歧义和不确定性情况。

4. 数据构造:真正昂贵的是人工控制证据

本节整合正文 §3.2、Figure 2、附录 A.1–A.3 及 Figure 7–9。

4.1 先定义 164 个属性,再生成用户背景

作者人工建立属性体系,包含五大类。它并不是简单给每个用户分配“爱旅行、爱音乐”几个标签,而是为生成有细节、跨时间的个人经历提供主题空间。

大类子类和覆盖内容
人口统计信息年龄、性别、族裔、国籍、语言、教育水平、职业
生活方式购物、媒体消费、社交媒体参与、日常作息、旅行、休闲娱乐、饮食烹饪、活动参与
情境家居环境、社交环境、时间环境
人生事件教育与职业变化、家庭变化、健康经历、迁居等
拥有的物品交通工具、电子设备、宠物、房产、收藏、服饰、运动和兴趣设备等

Table 5 中生活方式的展开很具体:

  • 购物:网购频率、常去商店、会员计划、促销、优惠券、送礼习惯、环保倾向、奢侈或预算型购物、电子产品、服装、食品杂货、替他人购物。
  • 媒体消费:书、电影、电视剧、音乐、播客、电子游戏、流媒体、剧院、报刊、YouTube、教育内容、有声书和电子书。
  • 社交媒体:发帖、评论、关注者、群组、标签、活动、私信、直播、暂停使用社交媒体。
  • 作息:起床、睡眠、上班上学、用餐、运动、茶歇、通勤、晚间和周末活动、清洁安排、与亲友相处。
  • 旅行:频率、目的地、自驾、旅行社、户外探险、航空公司、酒店、家庭或独自旅行、打包习惯。
  • 休闲:阅读、绘画、乐器、舞蹈、看体育和参加运动、园艺、观鸟、钓鱼或狩猎、桌游、电子游戏、健身课、瑜伽、雕塑、摄影、单口喜剧、写作、收藏、模型、水族饲养。
  • 饮食烹饪:家常菜、外卖、素食、菜系偏好、零食、烧烤、烘焙、调酒、烹饪课程。
  • 活动参与:演唱会、剧院、美术馆和博物馆、体育比赛、电影节、宗教活动、读书活动、慈善、展会、讲座或工作坊、主题公园、集市、社交活动、赛车、博物馆导览等。

情境进一步区分家中房间、装修风格、照明、家具、技术设备和植物;独处、家人、朋友、陌生人互动;一天中的时间、星期和季节。

人生事件涉及毕业、学术成就、留学、重要项目、升职、创业、出生或收养、婚姻、家庭团聚、疾病或手术、心理健康经历、购房、旅行、搬家、海外生活、难民或移民经历、失去亲人、改名、信仰和里程碑。物品类别包括汽车、自行车及其他车辆、电脑、手机、宠物及农场动物、动物护理用品、住房土地、艺术古董与收藏、稀有物品、衣服首饰鞋包、运动装备、乐器、健康设备、手工和摄影用品。

这些类别的意义是让问题来源具有足够广度;它们本身不是最终系统必须采用的记忆 schema。

4.2 背景生成提示词想要什么(Figure 7)

默认用 Llama 3 70B Instruct。输入一个属性主题,让模型想象用户近期在该方面的个人事实,生成较长、信息充分的文本,包含横跨数天、数周或数月的事实或事件,不要求写成故事。

作者发现这个零样本提示已足以产生后续出题所需的细节,因此没有在这一步使用更复杂的方法。

4.3 模型提议题目,人工决定题目的质量

Llama 3 70B Instruct 根据背景提出候选问答;时间推理、跨会话推理和偏好题还使用 GPT-4o 提供候选。每个问题类型约生成 1,000 个候选,最终保留率约 5%。这个比例是论文报告的粗略数,不宜与总计 500 题机械相乘还原精确流程。

作者认为自动候选往往深度和多样性不足,所以经过大量人工过滤、编辑和改写。随后人工把答案拆成一条或多条证据陈述,必要时先给问题和证据分配日期。

这一步将问题的逻辑结构显式化。例如“旺季每周工作多少小时”,可以被拆成“平常每周 40 小时”和“旺季多 10 小时”。最终答案 50 需要两份证据合成,而不是直接把 50 放进一个容易检索的句子。

4.4 将每条证据分别藏进任务型会话

两份 LLM 分别扮演用户和助手进行 self-chat。用户侧掌握背景与目标证据,以自然任务间接透露信息。例如通过咨询车险透露刚买车,而不是直接宣告“你要记住我买车了”。

Figure 8 的关键约束是:用户消息短,通常 1–2 个简单句;语气中性,不要过分热情、正式、客气或冗长;不反复回复感谢,而是直接问后续问题;不能泄漏该题其他证据。助手侧直接响应用户消息,没有额外的专门提示工程。

每段模拟最多 10 轮;任一侧生成空序列可以提前结束。这一步使用的 Llama 3 70B,与后面系统索引实验使用的 Llama 3.1 8B 是不同用途的模型,不能混淆。

4.5 人工审核既检查答案,也控制难度

专家逐段检查:

  1. 指定证据是否真的出现在对话中。
  2. 是否不小心透露了其他证据,导致跨会话题在一段内就能回答。
  3. 表述是否自然,尤其时间表达是否像用户日常说话。
  4. 证据在会话中的位置是否有变化。
  5. 会话是否自然结束,角色有没有混乱。

约 70% 的模拟会话经过人工修改。少数模拟用户变成了助手角色,无法修复的样本会被丢弃。作者还标注证据的具体位置,因此可以独立评估检索过程。

4.6 加入干扰历史:不是简单重复随机文本

附录 A.2 将过程拆成三个阶段。

会话池:ShareGPT、UltraChat、与当前问题属性不冲突的模拟会话。模拟干扰内容与证据有类似的风格和主题,但应避免引入让答案失效的矛盾。

抽样与排序:标准混合比例为 25% ShareGPT、25% UltraChat、50% 模拟会话。将干扰会话与证据会话混排;如果证据之间有必要的先后关系,再调整它们的顺序。

时间戳处理:若证据预先有日期,以其作为锚点,给前后干扰会话分配合理日期;若没有预设日期,则在 2023 年 5 月内随机赋值。

这样,同一个问题可以配置不同长度的“干草堆”。不过历史长度可扩展,主要表示干扰量可以增加,不意味着随着历史增加,真实人物经历的复杂性也等比例增加。

4.7 S、M、Oracle 三种设置

设置给系统的历史用途
LongMemEval S每题约 115k token,正文描述约 50 个 session评估较长但仍能尝试整段输入的历史
LongMemEval M每题 500 个 session,约 1.5M token评估大规模记忆与检索方案
Oracle sessions只提供该题证据会话去掉检索困难,诊断阅读与推理能力

M 的 500 是每题历史中的会话数;全基准的 500 是问题数。两者数字相同但含义不同。

4.8 Figure 9 的统计信息不能略过

六类基础题在图中约占:用户信息 14%、助手信息 11%、偏好 6%、跨会话 27%、知识更新 16%、时间推理 27%。这是图上取整后的比例,总和可能不是 100%。图中没有将 30 个拒答题作为独立扇区展示,不宜据此反推七类题的精确数量。

证据会话数最多 6 个,其中两会话最多,单会话也占较大部分。需要多会话证据的不仅是名称叫 multi-session 的题,知识更新和时间推理也可能需要多段历史。

证据在会话中位置不完全相同,但显著集中在第一轮。因而“位置具有多样性”不能理解成“均匀分布”。这是判断基准代表性时应保留的细节。

5. 如何评分:答案正确率与证据召回必须分开

5.1 用语言模型判断答案,而不是逐字匹配

原文 §3.3 使用 gpt-4o-2024-08-06 作为自动评判器,输入问题、标准答案或 rubric,以及模型回答,输出 yes/no。原因是同一个答案可以有多种表达,开放式个性化建议更无法用字符串完全匹配。

这不是让评判模型独立重新查全部历史。 它主要依据标准答案或 rubric 判断候选回答是否满足要求。

5.2 Figure 10 的四套评判规则

题型规则的实质
一般题型包含正确答案、语义等价,或包含足以得到答案的全部中间步骤,可以判对;只回答所需信息的一部分判错
时间推理在上述规则上,允许天数、周数、月数等出现相差 1 的计数误差
知识更新同时说到旧信息不自动判错,只要更新后的正确答案也被提供
偏好题不必覆盖 rubric 的每一条,只要正确回忆并使用了用户个人信息即可

这几个细节会实际改变分数含义。时间题的正确率不是严格日历计算精度;偏好题的正确率不是“完全符合所有偏好”;知识更新得分也不保证答案只给当前状态而完全不提旧状态。

5.3 人工元评测(附录 A.4、Table 6)

每种问题类型取 30 题,分别收集 GPT-4o 和 Llama 3.1 8B 的长上下文回答,用人工判断核对自动评判器。

题型对 GPT-4o 回答的判分一致率对 Llama 3.1 8B 回答的判分一致率
用户信息30/3029/30
助手信息30/3030/30
用户偏好27/3029/30
跨会话30/3030/30
知识更新30/3030/30
时间推理30/3029/30
拒答29/3027/30
表中平均值0.980.97

共涉及两组各 210 个判分。作者将偏好和拒答的部分偏差归因于答案开放性。高一致率支持使用该评判器,但不能证明每个边界案例都会判断正确,也不能直接外推到不同语言、不同输出风格或后续所有模型。

5.4 Recall@k 和 NDCG@k 的直观含义

Recall@k 关注前 $k$ 条检索结果覆盖了多少标注证据;NDCG@k 进一步考虑相关内容是否排在靠前位置。以下是帮助理解的标准检索指标写法,不是论文逐字给出的实现公式:

\[\mathrm{Recall@k}=\frac{|E\cap R_k|}{|E|}, \qquad \mathrm{DCG@k}=\sum_{j=1}^{k}\frac{2^{\mathrm{rel}_j}-1}{\log_2(j+1)}, \qquad \mathrm{NDCG@k}=\frac{\mathrm{DCG@k}}{\mathrm{IDCG@k}}.\]

$E$ 是相关证据集合,$R_k$ 是取回的前 $k$ 条,$\mathrm{rel}_j$ 是第 $j$ 条的相关性,IDCG 是理想排序的 DCG。实际复现还要核对项目代码对 round/session 标注映射、拒答题以及聚合方式的处理。

特别注意:附录 E.5 把检索是否“正确”做成了二元事件,并说明严格标准下漏掉旧状态也会判检索失败。不能直接把这一二元事件与表格里的平均 Recall@k 当成同一个量。

例如一题需要三条证据,只找回两条,部分覆盖率仍然不错,但缺失的第三条可能使计数答案必然错误。反过来,更新题只找到最新状态时,尽管缺少旧证据,仍可能正确回答当前状态。

6. 先导实验:为什么需要专门的长期记忆设计

6.1 商业系统人工实验的设置比标准 S 小很多

正文 §3.4 和附录 B 选了 97 题,每题只有 3–6 个 session,约比 S 短一个数量级。人工通过网页逐会话、逐轮与系统交互,再开新会话提问;每道题结束后手动清空记忆。问题分给五位标注者,存在争议时讨论。

这里干扰会话使用 50% ShareGPT + 50% 模拟会话,不是标准基准的 25/25/50 混合。评测在 2024 年 8 月前两周完成。

实验还排除了:需要跨数月真实交互的部分时间推理题、助手发言记忆题,以及拒答题。拒答未测,是因为当时使用的早期数据版本尚无这类题。不能把此实验描述成在完整七类标准评测上的产品排名。

6.2 总体结果(Figure 3a)

系统所用模型正确率
离线直接阅读同一短历史GPT-4o0.9184
ChatGPTGPT-4o0.5773
ChatGPTGPT-4o-mini0.7113
CozeGPT-4o0.3299
CozeGPT-3.5-turbo0.2474

GPT-4o 下,ChatGPT 相对离线阅读约下降 37%,Coze 约下降 64%。例如:

\[\frac{0.9184-0.5773}{0.9184}\approx37.1\%.\]

它不是下降 37 个百分点,实际绝对差是 34.11 个百分点。文章里“百分比”和“百分点”要始终区分。

mini 的系统结果高于 GPT-4o,并不能证明 mini 的底层推理更强:比较对象是包括写入、压缩、读取等机制的完整产品配置,而不是同样上下文下的纯模型能力。

6.3 分能力结果与故障原因(Table 7)

系统/模型IE 用户信息MR 跨会话KU 更新TR 时间
ChatGPT / GPT-4o-mini1.0000.6470.6670.652
ChatGPT / GPT-4o0.6880.4410.8330.435
Coze / GPT-3.5-turbo0.6250.1180.3750.043
Coze / GPT-4o0.8130.1470.2080.391

这组 TR 仅包含不依赖会话元数据的时间题。论文观察到,Coze 常常根本没有记下间接透露的信息;ChatGPT 通常一开始记录了证据,随后在压缩或改写记忆时损失信息。

作者想强调的权衡:以简短用户画像支持“看起来懂你”的个性化,与长期准确保留可供复杂问答使用的证据,并不是同样难度的目标。这里的故障原因来自人工观察,论文没有公开产品内部机制来验证更细的因果链。

6.4 长上下文直接阅读实验(Figure 3b)

下面完整保留 Oracle 与 S 对照。CoN 表示先提取笔记再回答,后文详解。

模型Oracle 无 CoNS 无 CoN相对下降Oracle 有 CoNS 有 CoN相对下降
GPT-4o0.8700.60630.3%0.9240.64030.7%
Llama 3.1 70B0.7440.33455.1%0.8480.28666.3%
Llama 3.1 8B0.7100.45436.1%0.7100.42040.8%
Phi-3 128k 14B0.7020.38045.9%0.7220.34452.4%
Phi-3.5 Mini 4B0.6600.34248.1%0.6520.32450.3%

三个不能略去的现象:

  • 更大的模型未必在这项长上下文任务上更好。例如 Llama 70B 在 S 上低于 8B,不能只凭参数量预测长历史利用能力。
  • CoN 不保证帮助整段 115k 历史阅读。它在 GPT-4o 上提高分数,在几个其他模型上却下降。
  • 论文正文概括“下降 30%–60%”,但表中有 66.3%。更严谨的说法是“常见大幅下降,个别配置超过 60%”。

作者推测:历史继续增长时可能更差。本文没有把这个推测写成对任意模型、任意历史长度都已验证的规律。

7. 统一框架:三阶段、四个控制点

7.1 三阶段与四函数(原文 §4、附录 C.1)

记忆库可写成:

\[D=[(k_1,v_1),(k_2,v_2),\ldots].\]

key 可以是离散文本、实体,也可以是连续向量;同一个 value 可以对应多个 key。附录用四个函数解释系统:

  • $I$:索引函数,把会话转成键值记录。
  • $Q$:查询构造函数,把自然语言问题变成检索器使用的表示。
  • $S$:相关性评分函数,为记忆排序;可以是向量相似度,也可以是图上的排序。
  • $R$:阅读函数,结合语言模型和取回的记忆生成答案。

为避免与前面的历史 $S$ 混淆,下面仅在教学性公式中把评分函数写成 $S_{\mathrm{score}}$:

\[D_i=I_{\mathrm{online}}(S_i,D_{i-1}),\qquad q'=Q(q),\qquad D'=\mathrm{TopK}\bigl(S_{\mathrm{score}}(q',D_N)\bigr),\qquad \hat a=R(M,D').\]

实际阅读输入还包括问题和当前日期,附录符号把这些上下文省略了。在线索引函数可以修改或删除既有记录,不是只能追加;但论文的实证优化没有完整研究删除策略或生命周期管理。

7.2 四个控制点分别控制什么

控制点决策常见失败
CP1 Value保存整会话、一轮,还是提取后的摘要/事实太粗则噪声多,太压缩则证据消失
CP2 Key用什么表示记忆以便匹配查询重要事实被长文本埋没;抽象键又可能丢细节
CP3 Query问题如何改写,是否加入时间范围相似文本不等于同一时间;错误过滤排除证据
CP4 Reading如何组织材料,如何指导提取和推理找全后仍误读、漏数、混淆新旧状态

7.3 九类系统在框架中的位置(Table 2、附录 C.2)

系统Value / Key查询与检索阅读方式
In-context RAGround/session;key=value原问题;平面相似度检索直接回答
MemoryBank摘要+round;key=value原问题;平面检索;表中标记有时间意识直接回答
LD-Agent摘要+事实;key=value关键词;平面检索;有时间意识直接回答
CoNround/session;key=value原问题;平面检索先笔记后回答
ChatGPT事实型记忆;其他内部细节未知原表保留未知项未披露
Coze事实型记忆;其他内部细节未知原表保留未知项未披露
RAPTORround/session;节点摘要作 key原问题;平面或交互式检索原表未指定
MemWalkerround/session;节点摘要作 key原问题;交互式树导航交互式阅读
HippoRAGround/session;实体作 key实体查询;Personalized PageRank直接回答
本文推荐组合round;原始键+事实问题+时间;平面检索CoN

“平面检索”可以理解为直接比较查询与候选 key,而不是让模型逐层走树。Personalized PageRank 则从查询相关实体出发,利用图连接传播相关性。

作者保留了复杂索引的潜在价值:图、树可能适合某些查询;交互式阅读可以在材料不足时回退再找。但动态加入新会话时,它们需要不同程度的重建或更新,交互式导航还增加模型调用延迟。这张表是设计映射,不是作者把九套完整系统统一跑过一遍后的性能排行榜。

8. 实验公共设置:复现前先固定这些变量

正文 §5.1 与附录 D 给出了以下设置:

项目配置
主阅读模型GPT-4o、Llama 3.1 70B Instruct、Llama 3.1 8B Instruct
默认检索器Stella V5 1.5B 稠密检索模型
索引信息提取器Llama 3.1 8B Instruct
摘要/关键词/事实提取输入只使用用户侧消息,跳过助手回复
原始 session/round 检索 key只保留用户侧发言
阅读顺序按会话时间戳排序检索到的内容
§5.2–§5.4 默认阅读CoN + JSON
阅读解码贪心解码
最大生成长度800 token
主要设计实验LongMemEval M

“只用用户侧”是索引文本与提取实验的设置,不能扩写成所有原始 value 都删除了助手消息。round 的定义仍是用户消息加助手回复。也正因如此,索引只关注用户侧但评测包含助手信息,是值得单独研究的设计张力。

作者选 Stella 的依据是其在 MTEB 上的高表现;附录也比较 BM25 和 Contriever。论文没有提供完整的端到端延迟、显存、索引构建成本和生产吞吐量曲线,不应把准确率实验解释成全面的生产成本优势。

9. CP1:Value 粒度为什么重要(Figure 5)

9.1 实验比较了什么

作者比较五种存储表示:完整 session、拆分后的 round、session summary、session facts、round facts。横轴是送入阅读模型的 token 数,而不是只比较同一个 top-k;纵轴是答案正确率。GPT-4o 与 Llama 3.1 8B 分别报告全体问题和 multi-session 子集。

这是合理的比较方式:10 个完整会话与 10 轮对话的长度差距很大。如果只固定条数,会把“读取更多信息的收益”和“粒度本身的收益”混在一起。

9.2 完整会话保留语境,但会带入大量无关内容

一次会话可能从买相机转到旅游、预算、配件。检索到它虽然可能包含所需证据,但 reader 需要从大量文本中再找一次答案。在固定 token 预算下,大块会话也会挤掉其他必要证据。

拆成 round 后,每条通常更聚焦,因此 GPT-4o 的整体 QA 改善。对于 Llama 3.1 8B,round 与 session 表现更接近,不能将“round 更好”写成每个 reader 都显著获益。

9.3 为什么压缩为事实整体反而不好

事实提取会选择哪些细节值得保存。在未来问题尚未出现时,提取器不知道某个数字、型号、否定条件或助手建议以后会被问到。压缩错过的细节无法靠后续检索恢复。

本文教学例子:把“我想卖掉旧鼓,但还没卖”压成“用户卖掉了鼓”,不仅丢字数,还改变了资产状态。即使抽取没有凭空增加内容,若只记成“用户有音乐爱好”,未来也无法正确数乐器。

图中 session summary 整体很弱。round facts 在较短预算下可有不错表现,但不能据此断言所有原文都可以替换成事实。

9.4 跨会话推理是一个重要例外

在 multi-session 子集,事实分解有帮助。作者的解释是:不同会话中同一种信息被变成统一、简单的形式,更利于检索和聚合。比如各次活动都被整理成“用户参加了事件 X”,更方便跨会话计数。

这是作者的机制假设,不是实验直接证明“规范化”是唯一原因。事实抽取还会改变长度、噪声和信息密度,几个因素未被完全分离。

9.5 最佳阅读预算依赖模型

正文报告 Llama 3.1 8B 在检索内容超过约 3k token 后明显下滑;GPT-4o 在超过 20k token 时仍可以继续改善。图中是有限预算点的曲线,不能把 3k 或 20k 当成模型永久的硬阈值。

本文解读:应该联合调节召回数量、记忆粒度和 reader 能力。多找一些材料会提高证据覆盖率,同时也会增加噪声和阅读负担;最优点来自两种效应的平衡。

10. CP2:事实应该增强 Key,而不是简单替代原文

10.1 三种操作必须分清

令 $v$ 为原始记忆内容,$u(v)$ 为提取出的用户事实:

\[\begin{aligned} \text{原始键:}&\quad k=v,\\ \text{仅事实键:}&\quad k=u(v),\\ \text{事实增强键:}&\quad k=[u(v);v]. \end{aligned}\]

上式是解释性的记法;实际原始键使用用户侧文本。附录 D 说把提取内容放在原始 key 前面。第三种方式既突出事实,又保留原文的词语和上下文;阅读时仍可以取回对应的 value。

不要把本文的“多 key/多路径”自动理解成多个独立向量索引再融合。主实验推荐的是索引时把信息拼接进一个检索键。 真正的检索后排序融合在附录 E.3 单独测过,效果较差。

10.2 Table 3:Round 粒度完整结果

R5/N5 分别为 Recall@5/NDCG@5,R10/N10 同理;QA 列按 top-5 / top-10 排列。

KeyR5N5R10N10GPT-4o QA 5/10Llama 70B QA 5/10Llama 8B QA 5/10
V.582.481.692.512.615 / .670.600 / .624.518 / .534
fact.530.411.654.449.588 / .664.564 / .610.510 / .534
keyphrase.282.159.392.303.425 / .489.404 / .450.378 / .432
V + fact.644.498.784.536.657 / .720.638 / .682.566 / .572
V + keyphrase.478.359.636.410.541 / .652.538 / .620.472 / .524

只用 fact 并不优于原始键;只用关键词下降更大。V + fact 则同时改善检索和三个 reader 的 QA。GPT-4o top-10 从 67.0% 到 72.0%,是增加 5.0 个百分点,相对增加约 7.46%。Recall@10 从 0.692 到 0.784,是增加 9.2 个百分点,相对增加约 13.29%。

作者推测,强检索器已经能处理较长文本语义,所以用压缩表示替代原文不一定有收益;保留原文再突出用户事实才更合适。这仍是机制解释,不是严格的检索器内部分析。

10.3 Table 3:Session 粒度完整结果

KeyR5N5R10N10GPT-4o QA 5/10Llama 70B QA 5/10Llama 8B QA 5/10
V.706.617.783.638.670 / .676.592 / .570.524 / .464
summary.572.448.648.468.554 / .252.498 / .512.444 / .216
fact.642.524.814.571.644 / .512.544 / .550.470 / .404
keyphrase.482.375.576.401.618 / .498.440 / .450.388 / .414
V + summary.689.608.749.624.658 / .666.568 / .560.518 / .494
V + fact.732.620.862.652.714 / .700.588 / .584.530 / .490
V + keyphrase.710.587.768.602.665 / .672.590 / .566.526 / .508

这里有几项不应被平均结论掩盖:

  • session 的 R10 通常高于 round,不代表最终 QA 更好。同样取 10 条,session 给 reader 的文本更多、干扰也更多。
  • V + fact 下,GPT-4o 的 top-5 为 .714,top-10 反而 .700;Llama 8B 也从 .530 降至 .490。
  • Llama 70B 在 session top-5 的 .588,略低于基线 .592。因此事实增强不是每个单元格都提升。
  • summary-only 下 GPT-4o 从 top-5 的 .554 降到 top-10 的 .252,是很大的退化。原文没有针对这一异常提供可验证的逐例原因,不能自行归因于截断或某个具体实现 bug。

10.4 “平均召回提升 9.4%、准确率提升 5.4%”怎么理解

正文给出这两个汇总百分比。按 Table 3 中 V 与 V+fact 的数值计算,跨两种粒度、两个 k 的 Recall 相对提升平均约 9.4%;跨模型、粒度、k 的 QA 相对提升平均约 5.4%。因此适合将其读作相对提升的平均量,不是所有实验都增加 9.4 或 5.4 个百分点。

10.5 为什么关键词可能不如完整事实(本文解读)

“Sony;镜头;摄影”只表达主题;“用户使用 Sony A7R IV”表达主体—关系—对象。未来的问题往往问个人经历和具体状态,因此完整事实可能更贴近查询所需的语义结构。另一方面,这个解释不能外推为关键词在所有检索器上都无效,附录恰好报告了一些反例。

11. CP3:时间推理要把事件时间和会话时间分开

11.1 时间信息存在两个来源

会话时间戳告诉我们“什么时候说了这句话”;话语中的“昨天”“上个月”“去年夏天”告诉我们“事件什么时候发生”。二者不一定相同。

本文教学例子:6 月 10 日的会话里,用户说“我上周买了新自行车”。若未来问 6 月初买过什么,按会话日过滤可能漏掉它。需要根据会话日期解释相对时间,再把事件关联到可能发生的日期。

11.2 论文的两个步骤(§5.4、附录 D、Figure 12)

写入时:让 Llama 3.1 8B 从用户消息和会话时间中提取可确定日期的事件,返回包含 date 和 event 的 JSON 列表,日期格式为 YYYY/MM/DD。无法推断日期的事件不提取;没有可提取事件就输出空列表。

查询时:输入问题和提问日期,让模型推断有助于检索的开始和结束日期,返回 start、end。没有可确定的时间引用时应返回 N/A,不要猜。

索引端与查询端分别补充 10 个人工编写的上下文示例。实验比较 GPT-4o 与 Llama 3.1 8B 作为查询时间推断模型。时间区间用来限制检索范围,减少无关候选。

原文没有把模糊区间、不完整日期、无日期记忆的全部边界处理写成完整算法;不能根据这两个提示词补造实现细节。

11.3 Table 4:时间推理子集完整结果

每格依次是 Recall / NDCG。这里是 M 的时间推理子集检索结果,不是全题平均 QA。

Key / 查询时间模型Session @5Session @10Round @5Round @10
V / 不扩展.639 / .630.651 / .707.421 / .462.499 / .511
V / GPT-4o.654 / .660.707 / .679.451 / .565.495 / .538
V / Llama 8B.624 / .627.647 / .692.384 / .448.489 / .488
V+fact / 不扩展.684 / .688.721 / .782.489 / .500.550 / .598
V+fact / GPT-4o.722 / .732.797 / .758.526 / .548.722 / .669
V+fact / Llama 8B.677 / .688.711 / .744.481 / .532.570 / .647

作者报告强模型时间扩展平均使 round 召回相对提高约 11.3%,session 约 6.8%。但局部结果并不单调:V 的 round R10 从 .499 变成 .495;session 的 NDCG@10 在两种 key 下也下降。总体覆盖改善不等于每个 k、每个排序指标都改善。

效果最明显的一格是 V+fact、round 的 R10:.550 → .722,增加 17.2 个百分点,相对增加约 31.3%。这个数字不能冒充所有时间题或整个基准的平均提升。

11.4 时间推理问题不一定允许事先生成时间窗口(Table 11)

问题与提问日期GPT-4oLlama 3.1 8B关键判断
2023/05/28:买新吉他音箱时,已经学吉他多久?不提取日期05/01–05/28音箱购买时间未知,不能凭提问日期限定本月
2023/04/27:三月和四月最常乘哪家航空公司?03/01–04/30同左问题明确给出月份,两者都正确
2023/06/28:Turbocharged Tuesdays 在 Rack Fest 之前多少天?不提取日期06/21–06/28比较两个事件,不等于它们发生在最近一周
2023/03/10:番茄与万寿菊,哪种种子先开始育苗?不提取日期03/01–03/10有先后关系,不代表发生在当月

最值得保留的思想是:时间关系可以需要推理,却无法仅凭问题得出绝对检索区间。 要先找到事件,再解析时间;如果过早硬过滤,正确证据甚至没有机会被 reader 看见。

附录 E.4 将无时间引用的例子写为“1、2、4”,与 Table 11 的例子 2 矛盾;依据表中内容,应关注 1、3、4。这是原文交叉引用疑似笔误。

12. CP4:找到了,还要会读

12.1 CoN 与“泛泛地一步一步想”有什么区别

Chain-of-Note 的要求是先从历史材料中提取与问题有关的信息,再依据提取内容推理。其作用是把长材料阅读拆成两件事:从原文中定位、复制相关细节;在较短的证据集合上完成比较、计算、更新判断。

Figure 13 的 CoN 提示输入历史、当前日期、问题,并明确要求先抽取相关信息再推理。非 CoN 提示使用同样的输入,但不提出这一步骤要求。

论文不是要求模型产出任意长的推理过程,也没有在这里实现独立的多智能体系统。实际最大输出为 800 token。

12.2 为什么使用 JSON

作者希望结构化格式让模型更明确地把历史条目看成阅读数据,识别各条记忆的边界。读入前按时间戳排序,帮助维持时间一致性。

本文解读:JSON 的潜在价值是显式边界和元信息,而不是花括号本身带来能力。论文没有证明 JSON 优于所有其他结构化格式;也没有验证它能单独解决提示注入等安全问题。

12.3 Figure 6:Oracle 阅读实验完整数值

Reader自然语言+直接回答JSON+直接回答自然语言+CoNJSON+CoN
GPT-4o.862.822.910.924
Llama 3.1 70B.762.744.800.848
Llama 3.1 8B.710.746.710.756

在这张图里,检索没有失败,因为系统只收到证据会话。GPT-4o 最好与最差设置差 .102,即 10.2 个百分点。这直接说明仅仅优化召回仍然不够。

JSON 单独使用并不稳定:GPT-4o 与 Llama 70B 的直接回答都因 JSON 下降,而 8B 上升。CoN+JSON 在三个模型中都是本图最好组合,但提升幅度不同,不能概括为每个模型都提高 10 个百分点。

Figure 6 部分 Oracle 数值与 Figure 3b 不同。两处作为各自实验报告保留,原文没有完整解释差异,不应挑选较好值拼成一张“统一基线”。

12.4 把检索改进和阅读改进分开验证

一个有效的诊断矩阵是:固定 reader 看召回;固定证据看阅读;最后再测端到端。如果只看最终准确率,无法分辨提升来自证据更多、材料更短、排序更好,还是 reader 更擅长推理。

这也是本文框架比单一分数更有用的地方:它提供了可以分别替换和检验的接口。

13. 附录 D:提示词与实现细节的完整意图

本节是功能性中文归纳,不是可声称与原提示逐字等价的复现模板。若要求严格复现,应使用论文 Figure 11–13 和固定版本官方代码中的原始提示。

13.1 摘要抽取

输入 session 或 round,让模型用一个简短段落概括主要主题和关键信息,并更多关注用户说了什么、提出了什么要求。这里强调简洁,因此它天然带有取舍,不承诺保存所有未来可能需要的细节。

13.2 关键词抽取

生成关键词短语列表,用分号分隔。它偏向主题覆盖,并不强制保存主体、关系、数字和日期,也不保证各关键词之间的逻辑关系可恢复。

13.3 用户事实抽取

抽取个人信息、人生事件、经历和偏好;尽量保留数字、地点、日期等具体细节;每条用简单句表达;返回 JSON 字符串列表;尽量减少跨事实指代,用实体名替代代词;没有相关事实时输出空列表。

用户事实抽取使用 10 个上下文示例:5 个来自模拟用户会话,5 个来自 ShareGPT。期望输出由 GPT-4o 生成,再经人工修改。摘要和关键词提取不使用这套 few-shot,作者认为没有必要。

这些约束说明作者不只是写“总结一下用户”。尤其去指代化有助于单条事实脱离上下文后仍可读;但对话里隐含的实体如果解析错了,也可能引入事实错误。

13.4 两类时间提示

事件提取:会话日期和用户消息 → 可确定日期的事件列表。查询扩展:问题日期和问题 → 明确时间区间或 N/A。两者均配 10 个人工示例。

注意事件提取器是小模型,时间查询模型则比较过强弱模型。论文不是所有步骤都用 GPT-4o,也不是所有步骤都用同一套示例。

13.5 阅读提示

共同部分:说明提供的是与用户的历史聊天,要求基于相关历史回答;提供历史、当前日期和当前问题。CoN 版本多出“先提取所有相关信息,再基于这些信息推理”的步骤要求。全部阅读实验用贪心解码和 800 token 最大生成长度。

复现提示:在比较 CoN 和直接回答时,要保持历史材料、排序、模型版本和输出上限一致。否则提示效果可能混入上下文格式或截断差异。原文尚不足以解释所有跨表差异,见第 17 节。

14. 附录 E:补充实验与没有奏效的方案

14.1 五个额外模型(Table 8)

LC 指不做记忆操作、直接阅读全部输入;后四列的记忆检索实验都以 round 为 value。这里按原表保留数字。

模型Oracle 直接Oracle CoNS 全历史直接S 全历史 CoNS K=VS K=V+factM K=VM K=V+fact
Mistral-Nemo-Instruct-2407.688.686.162.286.640.666.554.598
Qwen2.5-7B.282.504.128.144.452.462.390.424
Phi-3.5-mini-instruct.488.490.312.352.550.570.462.468
Llama-3.2-3B-Instruct.522.636.008.010.466.508.466.470
Llama-3.2-1B-Instruct.386.398.010.016.312.336.286.312

证据支持的结论是:事实增强 key 在这张表的记忆实验中均有提升;直接读 S 常远低于只读证据;极小模型在长历史读取上接近失效,而经过检索后能够回答明显更多题。

需要保留的例外:Mistral 的 Oracle CoN .686 略低于直接回答 .688;因此正文“CoN 一致改善”的概括并不逐格成立。Phi-3.5 的 S 检索结果还超过表中的 Oracle sessions,提示 Oracle session 不是所有检索表示下不可超越的严格上界:短 round 可能比完整证据 session 更容易读。当然,跨设置的其他差异也需代码确认。

Table 8 的 Phi-3.5 Oracle 和 S 分数与 Figure 3b 不同,不能不加说明地合并。

14.2 检索器比较:BM25、Contriever、Stella(Table 9)

BM25 主要依赖词项匹配;Contriever 与 Stella 是向量语义检索。表中每格仍为 Recall / NDCG。

Key检索器Session @5Session @10Round @5Round @10
VBM25.634/.516.710/.540.472/.352.538/.372
VContriever.723/.634.823/.663.589/.454.747/.495
VStella.720/.594.794/.615.660/.498.784/.528
V+summaryBM25.626/.544.694/.565——
V+summaryContriever.732/.632.823/.657——
V+summaryStella.689/.608.749/.624——
V+factBM25.683/.560.757/.582.554/.454.608/.473
V+factContriever.762/.632.862/.658.612/.489.756/.530
V+factStella.732/.520.862/.552.644/.498.784/.536
V+keyphrasesBM25.632/.546.711/.569.453/.391.538/.416
V+keyphrasesContriever.740/.638.849/.668.546/.450.672/.489
V+keyphrasesStella.710/.587.768/.602.478/.359.636/.410

作者强调三点:稠密检索整体优于 BM25;事实增强是推荐做法;摘要和关键词在部分检索器、部分粒度上也有用。例如 Contriever 的 session R5,从 .723 到摘要增强 .732、关键词增强 .740、事实增强 .762。

但原表与作者概括之间存在例外:Stella 的 round R5 按此表是 .660 → .644,并非改善;此外部分 Stella 基线和 NDCG 与 Table 3 不一致。这里保留 Table 9 原值,不擅自修正,也不以不一致的行支持更强结论。

作者未比较更大的 embedding 模型,理由是其延迟通常不现实。这是实验范围的取舍,并非本论文完成了所有大检索模型的统一延迟实测。

14.3 多路结果融合为什么不如索引时拼接(Table 10)

Key Merging,KM:先将事实或摘要拼入原始 key,再做检索。

Rank Merging,RM:为原文和抽出的信息分别建 key,从不同路径检索,再按排名合并 value。

Table 10 的 KM 行与 Table 3 对应行相同。为避免重复大表,以下完整保留新增的 RM 行;与 KM 的数值对照使用第 10 节。

Value / RM 扩展类型R5N5R10N10GPT-4o QA 5/10Llama 70B QA 5/10Llama 8B QA 5/10
Round / fact.478.372.568.403.558/.596.536/.586.458/.482
Round / keyphrase.386.376.536.329.485/.590.460/.558.426/.466
Session / summary.608.488.684.511.600/.620.510/.544.468/.466
Session / fact.618.511.754.548.622/.688.574/.574.468/.466
Session / keyphrase.550.435.650.466.560/.620.454/.506.492/.482

例如 round+fact 的 GPT-4o top-10,KM 为 .720,RM 为 .596;R10 分别 .784 与 .568。这个差距说明增加检索入口并不自动提高最终证据质量。

作者假设:每条原始记录抽出 $m$ 个信息片段后,RM 可能将索引规模放大到原来的 $m+1$ 倍;KM 突出信息而不以同样方式增加条目数,因此更有效。

本文解读:还可能涉及重复候选、不同路径排名可比性和融合规则,但论文没有独立验证这些因素,也没有证明所有先进融合方法都不如简单拼接。特别不能把本文 RM 直接等同于某一种未经说明的标准 RRF 实现。

14.4 错误分解:读错仍然很严重(Figure 14)

附录 E.5 使用:round value、事实增强 key、Stella 1.5B、top-10、JSON、CoN。R 表示按其标准判定检索正确,G 表示回答正确。

以下按图中标签抄录:

ReaderR对/G对R对/G错R错/G错R错/G对
GPT-4o64.0%13.2%14.8%8.0%
Llama 3.1 70B62.6%14.6%17.2%5.6%
Llama 3.1 8B52.6%24.6%18.8%4.0%

图中 Llama 8B 的正确回答两项合计 56.6%,与 Table 3 对应配置的 57.2% 也有差异;前两种模型的合计则分别为 72.0% 和 68.2%,与 Table 3 对应值一致。原文未解释 8B 这一差异,因此不将两处统计强行统一。

对 GPT-4o 来说,总回答错误率为 28.0%,其中检索正确但回答错误占 13.2/28.0 ≈ 47.1%。Llama 70B 对应约 45.9%,8B 对应约 56.7%。这说明 reader 是独立瓶颈,小模型更明显。

这里原文正文存在需要指出的冲突:E.5 文字称“正确检索但错误生成”约为全部样本的 15%–19%、错误样本的 40%–50%;但图中橙色标签是 13.2%、14.6%、24.6%。15%–19% 更接近红色“R错/G错”的数值。本文采用图示的类别和数值,保留文字存在不一致这一事实。

14.5 为什么检索不全仍可答对

按图计算,在所有回答正确的例子里,检索也正确的比例约为 88.9%、91.8%、92.9%,与作者“约九成正确回答需要正确检索”的判断相符。

其余多为知识更新题:找到了最新信息,漏掉旧信息,按严格证据覆盖标准检索失败,但当前状态仍可答对。这说明“R错/G对”不必然是模型记住了答案或走了捷径;也可能是检索标注集合比当前回答所需的最小证据集更大。

作者将此结果视为基准难以绕过证据的支持。更谨慎地说,它说明这些实验里回答正确高度依赖相关记忆,尚不能排除所有可能的数据捷径。

15. 作者的原始思考、假设与开放方向

论文没有单独列一大章 future work,许多想法散落在讨论、脚注和附录。下面保留它们,同时区分证据强弱。

思考或判断依据性质与边界
长上下文不能自动替代有效记忆系统Figure 3、Table 8对所测模型和历史成立;不是对所有未来模型的定理
历史继续增长可能让直接阅读更差§3.4作者推测,不是无限长度实测
事实规范化有利于跨会话推理Figure 5、§5.2观察到收益;“格式统一”是机制假设
只用精简 key 不更好,可能因为强检索器已能理解长文本§5.3作者解释,没有单独的因果验证
原文与事实结合能兼顾信息完整和语义突出Table 3有较强经验支持,但有个别负收益设置
时间过滤是另一条有用的检索约束Table 4强模型整体有益;错误约束会降低召回
复杂树/图可改善某类查询,但在线维护更贵附录 C.2设计分析;未给全面成本实测
交互式阅读可以回退重新检索附录 C.2潜在优势,并有额外模型调用延迟
排名融合差,可能与索引膨胀有关附录 E.3作者假设;没有证明条目数是唯一原因
阅读策略仍有很大改进空间Figure 6、14即使证据齐全仍有明显错误,直接支持
可靠个性化与压缩效率之间存在权衡商业系统人工观察保存少而简洁与未来细节问答可能冲突
缺少删除操作会损害信任伦理声明指出了系统治理需求,但未提供删除算法

15.1 本文延伸:对实际研究最有价值的几个问题

以下是由上述证据推导的研究方向,不是作者已实现或已验证的方法。

第一,双层记忆是否比二选一更合理? 原始对话保存可追溯证据,抽取事实作为检索、聚合和状态表示。实验支持“事实帮助找原文”这一局部设计,但仍需研究存储成本、事实更新、回溯与删除的一致性。

第二,时间约束能否从硬过滤改为可回退的软约束? 小模型误造时间窗口会直接丢失证据。可以研究区间置信度、候选时间扩张、先不限时间找事件再缩小范围,以及过滤失败后的回退。论文未比较这些方案。

第三,检索目标应是逐条相关,还是证据集合充分? 多条近义结果可能都指向同一事件,却漏掉另一个必要事件。跨会话任务提示我们优化集合覆盖、去重和证据多样性,而不只是单条相似度。

第四,用户记忆和助手承诺是否需要不同索引? 论文评测助手推荐的内容,但默认 key 和事实抽取只用用户消息。可分别研究用户事实、助手推荐、计划、承诺和最终执行结果的表示;不能把建议当成已发生事实。

第五,知识更新应该保留历史版本还是覆盖旧值? 问“现在住哪”需要当前状态,问“去年住哪”需要过去状态。简单覆盖可能帮助前者却破坏后者。可以用带生效时间的状态和来源证据研究这一问题,但论文没有给出完整的版本化状态系统。

第六,阅读预算是否应动态分配? 小模型的预算曲线表明,不应全题统一扩大 top-k。可以按题型、证据数量和 reader 能力选择材料长度,进一步测 accuracy–latency–cost 权衡。

16. 从这篇论文走向自己的工作:建议怎样复现和诊断

本节是基于论文的实验建议,不是本次已经运行过的模型实验。

16.1 先做一个可诊断的最小基线

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
写入阶段(不知道未来问题)
  1. 保存会话日期、角色和原始文本
  2. 按用户消息 + 助手回复拆 round,保留原会话关联
  3. 用用户侧文本构造基础 key
  4. 提取用户事实,前置到基础 key,生成向量索引

问答阶段
  5. 将问题变成检索 query
  6. 首先跑无时间约束基线
  7. 取回 top-k 对应 value,按时间排序
  8. 用 JSON + CoN 读取,输出回答

诊断阶段
  9. 对齐证据标注计算检索指标
 10. 独立评估最终回答
 11. 保存“检索失败 / 阅读失败 / 证据不全仍答对”的案例

这里保留角色、原会话关联是便于排查的工程建议,不表示论文规定了一模一样的数据表字段。

16.2 建议的消融顺序

步骤只改变的因素解决的疑问
Oracle 直接 vs Oracle CoN+JSON阅读策略reader 本身能不能完成题目?
Session vs Roundvalue 粒度,控制 token 预算大块历史是否使阅读困难?
K=V vs K=V+fact检索 key事实提取是否帮助找到原文?
原文 value vs 事实 value保存内容是否因压缩丢失答案?
无时间过滤 vs 时间过滤查询约束是否提升时间题召回,是否误伤其他题?
不同 k / token 预算材料规模召回收益什么时候被阅读噪声抵消?
不同 reader阅读能力瓶颈是否已从检索转向阅读?

16.3 不要只记录总准确率

至少分开看七类问题、召回、答案正确率、输入 token、生成 token、写入和查询成本,以及误拒答和错误作答的案例。增加成本指标属于本文建议;论文主要报告检索和 QA 指标。

每个失败例子可以问:原文里是否确有答案?抽取时是否丢失?检索是否命中所有必要事件?日期是否解释正确?同一事件有没有重复计数?建议是否被误当成经历?新旧状态是否错用?reader 有没有读到证据却没有利用?

16.4 复现需要固定版本,不能只记模型系列名

应记录数据版本、文件校验值、模型确切 checkpoint/API 版本、提示词、向量模型、截断策略、top-k、排序、输出上限和评判器。尤其本文已经发现跨表数字存在不一致,复现应以固定配置产生的结果为准,而不是为凑到论文某个数字反复修改设置。

官方仓库链接用于定位实现入口;本文未运行官方评测,也未审核仓库当前代码与论文 v2 的全部对应关系。

17. 原文疑点、结论边界与应保留的限制

17.1 核对 PDF 后确认的内部不一致

位置不一致本文处理
Figure 3b 与 Figure 6部分相同名称的 Oracle 配置数字不同,例如 GPT-4o 无 CoN 在前者为 .870,后者直接阅读为 .862/.822按各自实验保留,不假定完全同设置
Figure 3b 与 Table 8Phi-3.5 的 Oracle 和 S 数字不同不合并;需要代码或作者说明差异
Table 3 与 Table 9Stella 的 K=V 以及部分 fact 行数值不同分别保留原表数值
Table 3 与 Table 9Session V+fact 的 N5/N10 为 .620/.652 vs .520/.552不擅自把附录“纠正”为正文
Table 9 与 E.2 文字声称事实增强一致改善,但 Stella round R5 按表从 .660 降到 .644对概括加上例外
Table 11 与 E.4 文字文字把例子 2 列入无明确时间范围,表中却有三四月依据具体问题解释,标注疑似编号笔误
Figure 14 与 E.5 文字“检索对、生成错”的比例和图中类别不符用图中颜色/图例/数字计算,并指出冲突
Figure 9只画六类基础题,没有单列拒答不反推七类精确分布

这些不是单靠 PDF 文本抽取产生的错位:关键数值和图例已对照页面图像核查。但它们的原因并未由原文充分交代,所以本文不猜测哪个实验一定“写错了”。

17.2 基准构造的边界(本文分析)

合成与真实使用之间仍有距离。 证据由人工设计、LLM 嵌入对话,再混入其他来源会话。它比直接插一句答案复杂,但不等于一位真实用户长期自然形成的完整生活轨迹。

长度扩展主要增加干扰,不增加证据链深度。 最多六个证据会话与 500 个历史会话是不同维度;百万 token 并不自动代表百万 token 都参与复杂推理。

证据偏向会话开头。 Figure 9 的位置分布提示,真实用户在长对话中后段补充或修正信息的难度可能需要额外测试。

问答是代理目标。 基准测的是能否依历史回答问题,不直接测长期用户满意度、主动帮助、任务执行成功、情绪支持质量等。

指标存在容忍规则。 时间 off-by-one 和偏好 rubric 的宽松条件有合理性,但不同产品可能需要更严格的评判。

一些重要能力没有专门隔离。 例如删除后的不可恢复性、细粒度访问控制、来源真实性、主动澄清、跨模态记忆、反复矛盾的状态管理,都不是该论文已充分验证的结论。

17.3 实验结论的边界(本文分析)

主实验围绕有限模型和固定检索器展开;部分结果依赖 reader、粒度和 top-k。论文没有给出完整的随机种子方差、置信区间或所有设置的显著性检验,像 .588 与 .592 的细小差距不宜过度解释。

成本方面,token 预算曲线有价值,但不能代替端到端计算成本。事实抽取、向量编码、时间查询、索引维护都需要资源。论文的推荐组合应看作有效且可分析的经验基线,而不是经过全面生产约束优化的唯一最优方案。

18. 可复现性、伦理与安全讨论

18.1 可复现性声明(第 11 页)

作者承诺提供固定的 S/M 数据、历史构造算法及来源混合、属性和提示词、记忆优化实现,使后续研究能重建评测并改变历史长度。本文链接了官方项目,但不把论文中的发布承诺自动视为对当前仓库每个文件的核验。

18.2 数据和人工成本

伦理声明称 ShareGPT 使用 Apache 2.0 许可、UltraChat 使用 MIT 许可,计划以 MIT 发布数据;这是论文对其使用版本的陈述,不是对其他镜像或后续版本的法律判断。

新建问题与证据会话经过人工筛查,以避免个人可识别信息和冒犯内容。工作主要由三位有三年以上 NLP 研究经验的内部专家完成,数据构造约 400 人时,商业系统研究约 150 人时。附录 B 又具体说明商业系统题目分给五位标注者;“主要三位专家”和该环节五位参与者应分别保留,不简化成全流程始终只有三人。

标注者接受目标说明,不确定案例通过讨论解决;相关时间计入正常工资。机构 IRB 判定数据收集流程可豁免。

18.3 作者明确提出的三类风险

  1. 个人信息泄漏:记忆的价值就是保存个体信息,这也构成泄漏风险。
  2. 缺少删除能力损害可信度:用户应能让系统忘记某些信息;仅仅在回答时暂时不显示,不等于真正删除。
  3. 恶意记忆内容影响未来输出:攻击者可能把有害内容写进记忆库,诱导后续越狱行为。

作者建议监控记忆读写的数据流并做充分测试。论文指出了问题,并没有实现完整的删除机制、隐私保护框架或抗记忆注入方案。

本文延伸:若原文、抽取事实、向量、摘要和缓存同时存在,删除需要处理这些派生副本;这是双层记忆方案的工程责任,不能因准确率改善而忽略。但其具体实现超出本文实验范围。

19. 阅读路线与全篇覆盖索引

19.1 初学者回读顺序

第一次读先掌握第 1–3 节,能区分 session、round、key、value 与七类题。第二次读第 4–6 节,理解数据为何困难,以及评分到底奖励什么。第三次读第 7–14 节,把每个实验放回索引、检索、阅读的具体控制点。真正动手前再读第 16–18 节,固定复现口径和结论边界。

19.2 论文各部分与笔记对应

原文部分内容笔记对应
Abstract、§1,第 1–2 页问题、贡献和核心观察第 1 节
§2、Table 1,第 2–4 页基准和方法背景第 2 节
§3.1–3.2、Figure 1–2,第 3–5 页任务、能力与数据构造第 3–4 节
§3.3、A.4、Figure 10、Table 6判分规则和人工元评测第 5 节
§3.4、Figure 3、附录 B、Table 7商业产品和长上下文先导实验第 6 节
§4、Figure 4、Table 2、附录 C统一框架与九类系统第 7 节
§5.1公共设置第 8 节
§5.2、Figure 5Value 粒度与预算第 9 节
§5.3、Table 3Key 设计第 10 节
§5.4、Table 4时间查询扩展第 11 节
§5.5、Figure 6阅读消融第 12 节
§6结论第 1、15 节,结合各实验解释
Reproducibility / Ethics,第 11 页复现承诺与伦理第 18 节
References,第 11–16 页背景方法来源第 2、7 节及下方阅读入口
A.1–A.3、Table 5、Figure 7–9,第 17–19 页属性、模拟、混合和分布第 4 节
附录 D、Figure 11–13,第 23–25 页索引和阅读提示词第 8、11、13 节
E.1–E.3、Table 8–10,第 26–27 页更多模型、检索器、融合失败第 14 节
E.4、Table 11,第 27–28 页时间区间错误例子第 11 节
E.5、Figure 14,第 27–28 页检索/生成错误拆解第 14 节

参考文献页包含被引用论文的书目信息,不是 LongMemEval 自己新增的实验。本文解释与方法选择直接相关的研究脉络,不将这些外部论文未在本文展开的细节冒充为已通读结论。

19.3 原文引用的后续阅读入口

下面按“希望补什么背景”归类,均来自原文参考文献;它们是阅读入口,不代表本笔记已逐篇核查全文。

  • 想理解跨会话记忆基准:MemoryBank、LoCoMo、PerLTQA、DialSim。
  • 想理解长文本为什么容易读漏:Lost in the Middle;Large Language Models Can Be Easily Distracted by Irrelevant Context。
  • 想理解粒度选择:Dense X Retrieval。
  • 想理解提取证据再作答:Chain-of-Note。
  • 想理解树索引:RAPTOR 与 MemWalker。
  • 想理解实体图检索:HippoRAG。
  • 想理解压缩路线:Gist Tokens、AutoCompressor 相关工作、LLMLingua、RECOMP。
  • 想理解模型内部记忆:Memory Networks、Memorizing Transformers,以及训练记忆增强语言模型的相关工作。

这篇论文留下的核心工作方式是:把“记忆不好”拆成可定位的问题。先确认信息是否写入且保真,再确认是否检索到充分证据,最后确认 reader 是否正确利用证据;只有这样,实验提升才能对应到明确的系统改进。

This post is licensed under CC BY 4.0 by the author.