LurusTech

Memorus · 公开基准报告

长期记忆公开基准报告

2026-09 · LongMemEval_S / LoCoMo · 数据、流程、失败与下一步全部公开

LongMemEval_S · 问答准确率
0.837
同一作答模型只给证据:0.905
held-out 147 题(含 9 道应弃答)· 只跑一次 · 2026-09-30
LongMemEval_S · 会话检索 any@5
0.971
held-out
138 题可评分 · 会话级 · 2026-09-30
LoCoMo · J
0.746
类别 1–4
1540 题 · 判 1 次 · 2026-09-30

结论。同一个低价作答模型下,memorus 检索出的上下文让问答准确率达到 0.837,与只给证据会话时的 0.905 相差 0.068;会话级检索 any@5 为 0.971。

局限。作答用的是低价通用对话模型(关闭推理);强闭源作答模型下的分数我们没有跑,不作推断。held-out 也有轻度污染,见「局限与计划」。

一次真实检索

一道题,一次实际检索。

下图是 dev 集里一道题上的一次真实检索:52 段会话、516 轮对话的向量被投影到三维, 问题向量和 memorus 实际返回的前 10 条命中一起标了出来。

dev 集 · multi-session · 题号 b5ef892d

How many days did I spend on camping trips in the United States this year?

中文意译:今年我在美国露营一共花了多少天?

标准答案
8 days
判分
判对
作答模型的回答原文

Based on the relevant chat history, you mentioned two camping trips in the United States this year: 1. A 5-day camping trip to Yellowstone National Park last month (from Session 3). 2. A 3-day solo camping trip to Big Sur in early April (from Session 4). So, you spent a total of 8 days on camping trips in the United States this year.

52 段会话 · 516 轮 · 3 段证据会话 · 前 5 名覆盖全部证据会话(all@5 = 1)

  • 证据会话(点更大、带描边)
  • 其他会话(小点、按会话着色)
  • 问题(二维图中为星形,三维中为深色八面体)
  • 前 10 命中(连线;其中 7 条来自证据会话,画实线,其余虚线)
  1. 第 1 名分数 0.691● 证据会话user: I'm looking for some new hiking boots. Do you have any recommendations for waterproof boots that are good for multi-day backpacking trips? By the way, I j…
  2. 第 2 名分数 0.677● 证据会话assistant: Moab is strategically located near several incredible national parks, making it an ideal base for exploring the American Southwest. Here are some day…
  3. 第 3 名分数 0.648● 证据会话assistant: Yellowstone is an amazing destination! I'm sure you had an incredible time exploring the geysers, hot springs, and wildlife. Now, the Rocky Mountain…
  4. 第 4 名分数 0.646● 证据会话user: I'm planning a trip to Moab, Utah and was wondering if you could recommend some must-see attractions and trails in the area. By the way, I've been loving …
  5. 第 5 名分数 0.605● 证据会话assistant: The White Rim Road is a unique and adventurous experience, but it does require some planning and preparation. Here's more information on the permits …
  6. 第 6 名分数 0.587● 证据会话user: I'm planning a trip to the Rocky Mountains in Colorado and I was wondering if you could recommend some good hiking trails and camping spots in the area. B…
  7. 第 7 名分数 0.550○ 非证据会话user: How does the United States Senate hold a filibuster?
  8. 第 8 名分数 0.527○ 非证据会话assistant: What a great goal! Limiting social media usage can have a significant impact on productivity, mental health, and overall well-being. There are many a…
  9. 第 9 名分数 0.506● 证据会话assistant: Moab's climate and events can greatly impact your trip, so I'd be happy to share some insights on the best times to visit and notable events. **Best…
  10. 第 10 名分数 0.500○ 非证据会话assistant: Let's add that to the tracker. How many books did you buy, and what was the total cost? If you don't remember the exact titles, we can just use a ge…
真实数据:LongMemEval_S dev 集一题的全部对话轮次,用开源多语言嵌入模型(1024 维)编码后做主成分投影(前三主成分解释约 13% 方差,位置远近仅示意)。连线为 memorus 定稿检索配置实际返回的前 10 条命中。数据导出脚本位于内部仓库,未公开。

怎么读这张图

  • 每个点是一轮对话,颜色代表它所在的会话;证据会话(共 3 段)的点高亮显示。
  • 星是问题向量;连线连到 memorus 实际返回的前 10 条命中。
  • 三维坐标是 1024 维嵌入的主成分投影,前三个主成分只解释约 13% 的方差, 所以远近只是示意;检索本身在 1024 维里进行。
  • 这道题来自 dev 集(不是 held-out)。选它,是因为它是一道典型的多会话计数题: 前 5 名覆盖了全部 3 个证据会话(all@5 = 1),定稿配置下作答判对。

测什么

两个公开基准,六个指标。

LongMemEval_S(cleaned 版)

  • 500 题、6 个题型,其中 30 题应弃答(该说「不知道」)。
  • 每题带约 48 段会话,要在其中找到证据再作答。
  • 我们切成 dev 353 题与 held-out 147 题:dev 用来迭代,held-out 定稿后只跑一次。

LoCoMo

  • 10 段长对话、1986 题,类别 1–5。
  • 类别 5 为对抗 / 应弃答,按公开 J 分口径不计;计分题 1540 道(类别 1–4)。
  • 我们对 LoCoMo 不调参:基线、定稿各跑一次。

指标

指标定义
指标含义
any@k前 k 条命中覆盖至少一个证据会话的题占比(会话级检索)。
all@k前 k 条命中覆盖全部证据会话的题占比;多会话题才真正拉开差距。
ndcg@10前 10 条命中的排序质量。
问答准确率判分模型按官方提示判对的比例。
oracle同一作答模型只给证据会话时的准确率,是上限参照。
JLoCoMo 的判分口径:判分模型判对的比例,只计类别 1–4。

题型缩写

  • KU知识更新
  • MS多会话
  • SSA单会话(助手说过的)
  • SSP单会话(偏好)
  • SSU单会话(用户说过的)
  • TR时间推理

怎么测

写入、检索、作答、判分,每一步用什么都写明。

嵌入模型:开源多语言嵌入模型(568M 参数,1024 维)。作答与判分分属不同厂商。

防过拟合

  • 数据冻结,两份数据的 sha256:LongMemEval_S d6f21ea9d60a0d56f34a05b609c79c88a451d2ae03597821ea3d5a9678c3a442LoCoMo 79fa87e90f04081343b8c8debecb80a9a6842b76a7aa537dc9fdf651ea698ff4
  • 切分固定:key 为 question_id 去掉末尾 _abs;h = SHA-256("memorus-lme-v1:" + key),取前 8 字节大端 u64,模 100 小于 30 的进 held-out,其余进 dev。 dev 353 题、held-out 147 题;跑前固定,不换盐。
  • 每一步跑之前先写预测与停止条件;同一个假设在 dev 上最多跑 3 次。
  • held-out 在定稿后只跑一次;LoCoMo 永不调参,基线与定稿各一次。
  • 已知污染:切分之前,曾在全部 470 题上看过分题型检索汇总,所以 held-out 并不完全干净。

判分怎么校验

  • 官方判分提示逐字节取自上游并核对(LongMemEval 按题型加应弃答;LoCoMo 用公开的 J 分提示)。
  • 三道校验针对的是一个候选判分模型(与阅读同档),对照标签来自另一厂商的判分模型:与对照标签的一致率(oracle 341/353,0.966; 检索 337/353,0.955); 错答顶替的误收率 0.033(60 对,阈值 ≤ 5%); 与第二判分(免费小模型)的一致率 0.84,低于事先放宽到的 90%;按事先写定的规则该项仅记录、不据此换判分。
  • 一致率与误收率达标,但这个候选判分模型偏宽:oracle 0.870 → 0.904,检索 0.618 → 0.657(+0.034 / +0.039),超出事先写定的 ±0.02。 按事先写定的规则,不用它,判分改回另一厂商的模型(即对照标签的来源);本页所有问答分数都出自这个判分模型。

口径:dev · 2026-09-29 起 · 计划文档

结果

先看 held-out,再看 dev 与 LoCoMo。

held-out:问答总分对比只给证据的 oracle

口径:held-out · 2026-09-30 · a629dc2两者用同一作答模型;差 0.068。题型均值 0.854,阅读输入 1.94M token。

held-out:会话检索(四项)

口径:held-out · 2026-09-30 · a629dc2138 题可评分。

held-out:分题型问答

口径:held-out · 2026-09-30 · a629dc2题型:KU 知识更新 · MS 多会话 · SSA 单会话(助手说过的) · SSP 单会话(偏好) · SSU 单会话(用户说过的) · TR 时间推理。147 题(各题型已含应弃答); 其中 9 道应弃答单独统计为 0.889。 MS 0.760,同一作答模型的 MS oracle 为 0.880; 其余题型的 held-out oracle 没有逐项记录,所以不画。

dev:分题型检索,词法 + 向量对比纯词法

口径:dev · 2026-09-29 起 · fcf6e75题型缩写见「测什么」。纯词法的 all@5:MS 0.416,TR 0.543(其余题型未单列)。dev 353 题,检索可评分 331–332 题。

LoCoMo:分类别 J(类别 1–4)

口径:LoCoMo · 2026-09-30 · a629dc2判 1 次(预算所限,公开常见做法是 3 次)。作答为整句,F1 0.08–0.21,不与公开 F1 比。

LoCoMo 轮次级检索

LoCoMo 轮次级检索:基线与定稿
配置any@5any@10ndcg@10
基线0.5580.6630.448
定稿(+ 词法清理)0.5590.6580.454

口径:LoCoMo · 2026-09-30 · a629dc2

  • 作答用前 50 条命中轮次(约 2k token / 题)。
  • 轮次级检索比会话级难得多:每段对话约 590轮。any@10 只有 0.658,是明显的短板, 下一版计划的检索组把它列为首项。

怎么提上去的

每一步:改了什么,为什么,花了什么。

问答(dev)

  1. Q0 · 问答(dev 353 题)

    基线:纯词法检索,只给命中轮

    0.618

    竖线刻度:oracle 0.870(只给证据会话,dev)

    改了什么
    纯词法检索,作答上下文为前 20 条命中轮及其前后各 1 轮。
    为什么
    起点。失败归因(161 题逐题)显示:多会话题部分召回 25 题、证据齐全但只拿到命中轮 13 题、聚合式问句整体漏召 11 题;时间推理题孪生会话 12 题、旁白漏召 10 题;偏好题问句与证据措辞错配 6 题。
    代价
    阅读输入 3.32M token。

    口径:dev · 2026-09-29 起 · 计划文档

  2. Q1 · 问答(dev 353 题)

    检索换成词法 + 向量,作答改给整本会话

    0.765

    竖线刻度:oracle 0.870(只给证据会话,dev)

    改了什么
    检索换成词法 + 向量混合;作答上下文改为前 5 个会话整本。
    为什么
    多会话题要跨会话计数、汇总,零散命中轮给不全,所以给整本会话。
    代价
    阅读输入 4.25M token。

    口径:dev · 2026-09-29 起 · fcf6e75

  3. Q2 · 问答(dev 353 题)

    加词法清理,再补第 6–10 名会话的命中轮

    0.813

    竖线刻度:oracle 0.870(只给证据会话,dev)

    改了什么
    在 Q1 上加词法通道清理,并给第 6–10 名会话的命中轮 ±1 邻轮(定稿配置)。
    为什么
    Q1 逐题拆分显示可挽回的错题主因是前 5 个会话装不全兄弟会话;离线估算后选了中间方案(见下表)。
    代价
    阅读输入 3.53M token。

    口径:dev · 2026-09-29 起 · fcf6e75

检索(dev)

  1. B0 · all@5(dev;any@5 0.828)

    基线:纯词法(客户默认配置)

    0.630
    改了什么
    无改动,客户默认的纯词法检索。
    为什么
    起点。纯词法在多会话题上 any@5 0.857,但 all@5 只有 0.416;偏好题 any@5 只有 0.333。
    代价
    不涉及阅读 token。

    口径:dev · 2026-09-29 起 · fcf6e75

  2. B0 + 向量 · all@5(dev;any@5 0.828 → 0.973)

    词法 + 向量混合

    0.837
    改了什么
    在词法之外加向量通道(开源多语言嵌入模型)。
    为什么
    纯词法的缺口集中在多会话与偏好题;加向量后多会话题 all@5 0.416 → 0.701,偏好题 any@5 0.333 → 0.857。
    代价
    多了嵌入开销,见「成本与复现」;不涉及阅读 token。

    口径:dev · 2026-09-29 起 · fcf6e75

  3. B1 · all@5(dev;any@5 0.973 不变)

    词法通道清理

    0.849
    改了什么
    查询侧去掉英文功能词,覆盖率只算内容词;两个开关默认关,只影响英文。
    为什么
    any@5 已 0.973,剩下的缺口在 all@5:0.837 → 0.849。中文冻结回归集除一项已知用例(17/18 → 18/18)外逐字节不变。
    代价
    不涉及阅读 token。

    口径:dev · 2026-09-29 起 · fcf6e75

为什么选「前 5 会话整本 + 第 6–10 名命中轮」

Q1 逐题拆分(oracle 答对、本次答错的可挽回题):多会话:缺证据会话 18 题;多会话:证据齐全仍错 7 题;时间推理:缺证据 13 题;偏好:证据齐全仍错 5 题;时间推理:证据齐全仍错 1 题;偏好:缺证据 1 题;知识更新:缺证据 2 题;知识更新:证据齐全仍错 2 题。主因是前 5 个会话装不全兄弟会话。 于是先做了一次不花 token 的离线估算,在 216 道多证据题里数证据全在上下文中的题:

离线估算:不同作答上下文方案下,证据全在上下文中的题数
方案证据全在上下文的题数阅读输入
前 5 会话整本(Q1)168基准
前 5 整本 + 第 6–10 名命中轮 ±1(Q2,选用)182阅读输入 +8%
前 10 会话整本183阅读输入 +31%

选中间方案。Q2 之后剩下的可挽回题:检索不全 多会话 9、时间推理 9、偏好 1、知识更新 1; 证据齐全仍答错 多会话 8、偏好 3、时间推理 1。

dev 分题型问答

dev 分题型问答准确率(含应弃答)
步骤总分KUMSSSASSPSSUTR应弃答阅读输入
oracle(只给证据会话)0.8700.8640.8191.0000.8571.0000.8040.7142.15M
Q0 纯词法检索,前 20 命中轮 ±10.6180.7580.3490.9020.3330.9110.5570.6673.32M
Q1 词法 + 向量,前 5 会话整本0.7650.8330.5660.9760.5710.9780.7420.7144.25M
Q2 + 词法清理 + 第 6–10 名命中轮 ±1(定稿)0.8130.8790.6751.0000.7141.0000.7420.6673.53M

口径:dev · 2026-09-29 起 · fcf6e75 / 计划文档(oracle 与 Q0)· 353 题含应弃答

dev 检索汇总

dev 会话级检索汇总
配置any@5all@5any@10all@10ndcg@10
B0 纯词法(客户默认配置)0.8280.6300.904—0.701
纯向量(开源多语言嵌入)0.9580.8310.9850.8890.882
纯向量(通用小型英文嵌入,截 800 字符)0.9640.8280.9790.8670.882
词法 + 向量0.9730.8370.9850.8920.887
B1 = 词法 + 向量 + 词法清理(定稿)0.9730.8490.9880.9010.890

口径:dev · 2026-09-29 起 · fcf6e75 · 检索可评分 331–332 题 · 「—」表示该项没有记录

定稿配置

  • 检索:词法 + 向量混合检索(开源多语言嵌入模型)+ 词法通道清理(查询侧英文功能词、覆盖率只算内容词)+ 嵌入输入截断 8000 字符。两个清理开关 query_stopwords / content_word_coverage 默认关,只影响英文查询;中文冻结回归集除一项已知用例(17/18 → 18/18)外逐字节不变。
  • 作答上下文:前 5 个检索会话整本 + 第 6–10 名会话的命中轮 ±1 邻轮(--top-sessions 5 --tail-sessions 5 --neighbors 1)。

没采用的尝试

失败的也写在这里。

  1. 01全局词频(global_idf)

    结果
    英文 dev any@5 单开 0.840、叠加后 0.861;但中文冻结回归集 ndcg@10 0.865 → 0.860、abstain_auc 0.710 → 0.683,触发事先写定的「任一 bucket ndcg 降 > 0.005」停止条件。
    理由
    停止条件成立,不采用;另有多租户侧信道顾虑:全局词频会泄露其他租户的词分布。
  2. 02按会话多样化命中

    结果
    没有跑。
    理由
    会话级指标按会话首次出现的顺序排名,多样化保留每组首条命中的相对顺序,前 k 个会话逐位不变,结构上零收益,所以没有花筛选时间。
  3. 03会话按命中分数聚合排序(Q3)

    结果
    检索 any@5 0.973 → 0.982、all@5 0.849 → 0.870;问答 0.813 → 0.807(差 2 题)。系数「最佳 + 0.3 × 第 2、3 佳」的 0.3 事先写定、没有调过。
    理由
    检索升、问答未升(0.813 → 0.807,差 2 题),不采用。
  4. 04词法清理对偏好题的预测

    结果
    预测翻正 +2 ~ +5 题,实测 0 题。
    理由
    预测落空,如实记录。

预测 vs 实测

先写预测,再看结果:命中 17 项,落空 9 项。

从 12 组预测中摘录 26 个主指标逐项:17 项命中,9 项落空。 每一项都在跑之前写下区间,跑完不改。

预测与实测逐项对照
项目集合预测实测结果
1.B0 纯词法 any@5dev0.834 ± 0.030.828 命中
2.词法 + 向量 any@5dev[0.93, 0.97]0.973 落空超上沿 0.003,严格按区间记落空
3.纯向量比词法 + 向量低多少dev低 0.01–0.04低 0.015 命中
4.小型英文嵌入纯向量 any@5dev[0.85, 0.93](我们不信公开的 0.966 能复现)0.964 落空公开数字基本复现
5.Q0 oracledev[0.85, 0.93]0.870 命中
5.Q0 检索作答总分dev[0.60, 0.75]0.618 命中
5.Q0 应弃答dev≥ 0.70.667 落空
6.同档判分与旧标签的分数差dev≤ ±0.02+0.034 / +0.039 落空按事先规则换判分
7.词法清理 any@5dev[0.84, 0.87]0.858 命中
7.词法清理 MS all@5dev[0.43, 0.50]0.468 命中
7.词法清理翻正的偏好题数dev+2 ~ +50 落空
8.Q1 总分dev[0.76, 0.84]0.765 命中
8.Q1 MSdev[0.60, 0.75]0.566 落空
8.Q1 SSPdev[0.62, 0.86]0.571 落空
8.Q1 TRdev[0.65, 0.78]0.742 命中
9.Q2 总分dev[0.78, 0.83]0.813 命中
9.Q2 MSdev[0.62, 0.72]0.675 命中
9.Q2 TRdev[0.74, 0.80]0.742 命中
10.Q3 聚合排序总分dev[0.81, 0.84]0.807 落空
11.any@5held-out[0.95, 0.99]0.971 命中
11.all@5held-out[0.80, 0.90]0.855 命中
11.问答总分held-out[0.77, 0.85]0.837 命中
11.oracleheld-out[0.84, 0.91]0.905 命中
11.问答与 oracle 的差held-out≤ 0.080.068 命中
12.轮次级检索 any@10LoCoMo[0.80, 0.92]0.658 落空轮次级、每段约 590 轮,远难于会话级
12.JLoCoMo[0.70, 0.82]0.746 命中

口径:dev(组 1–10)· held-out(组 11)· LoCoMo(组 12)· 明细与提交号见各结果小节

与公开数字对照

同一把尺子才能比,所以先写清楚尺子。

我们held-out 0.837,oracle 0.905;作答用低价通用对话模型(关闭推理),判分用另一厂商的通用对话模型(关闭推理)。

作答与判分模型不同,下表只作档次参照,不是排名。

LongMemEval 问答准确率

LongMemEval 公开问答准确率
系统数字作答档次来源类型链接
Zep(Graphiti)0.712强闭源模型(基准官方所用档)论文arXiv 2501.13956(在新窗口打开)
Supermemory0.816强闭源模型(基准官方所用档)他方研究页转引mastra.ai(在新窗口打开)
Emergence厂商称不可独立复现其内部 0.860 版0.824强闭源模型(基准官方所用档)厂商自报emergence.ai(在新窗口打开)
Mastra Observational Memory0.842强闭源模型(基准官方所用档)厂商自报mastra.ai(在新窗口打开)
Hindsight0.890开源权重大模型(120B 级)厂商论文arXiv 2512.12818(在新窗口打开)
LongMemEval 论文 oracle(只给证据)约 0.92强闭源模型(基准官方所用档)论文arXiv 2410.10813(在新窗口打开)

按档次看:强闭源作答模型(基准官方所用档)下的公开值为 0.712–0.842;开源权重大模型档的公开值见表; 我们用的是低价作答模型,0.837。只给证据时,我们 0.905,论文 约 0.92。 作答模型、判分模型与题目子集都不同,这些数字不构成排名。

LoCoMo J(类别 1–4)

我们:0.746,低价通用对话模型(关闭推理)作答,判 1 次。

LoCoMo 公开 J 分
系统数字作答档次来源类型链接
Mem00.669低价闭源小模型论文(Mem0 自家)arXiv 2504.19413(在新窗口打开)
Mem0 图谱版0.684低价闭源小模型论文(Mem0 自家)arXiv 2504.19413(在新窗口打开)
同论文全文上下文基线0.729低价闭源小模型论文arXiv 2504.19413(在新窗口打开)
Zep(Mem0 论文中测得)0.660低价闭源小模型论文(竞争方测得)arXiv 2504.19413(在新窗口打开)
Zep(Zep 自己复现)0.751未披露厂商博客blog.getzep.com(在新窗口打开)
Letta(文件系统代理)0.740低价闭源小模型厂商博客letta.com(在新窗口打开)
Memobase0.758未披露第三方复现github.com(在新窗口打开)
MemOS0.733低价闭源小模型第三方复现arXiv 2602.15313(在新窗口打开)
MIRIX0.854低价闭源小模型(新一代)论文arXiv 2507.07957(在新窗口打开)
MIRIX 论文同实验全文上下文基线0.875低价闭源小模型(新一代)论文arXiv 2507.07957(在新窗口打开)

按档次看:低价闭源小模型作答的公开值为 0.660–0.740;标「未披露」的行不知道作答档次; 我们判分只判 1 次,公开常见做法是 3 次取均值。「全文上下文基线」行是同论文的对照基线,不算系统。

会话检索

LongMemEval 会话检索 any@5 对照
来源any@5说明
公开审计0.966某开源项目宣称的 Recall@5,审计后等价于「通用小型英文嵌入模型 + 原文分块」的纯稠密检索
我们复跑0.964在自己的写入路径上用同一小模型,dev
我们定稿0.973dev
我们定稿0.971held-out

公开审计记录:github.com(审计记录)(在新窗口打开)

更强或未披露作答口径下的厂商数字(单列,不与上表比)

更强或未披露作答口径下的厂商自报数字
基准系统数字作答档次链接
LongMemEvalMastra Observational Memory0.949更新一代低价闭源模型mastra.ai(在新窗口打开)
LongMemEvalHindsight0.914更新一代强闭源模型arXiv 2512.12818(在新窗口打开)
LongMemEvalMem0 研究页0.944未披露mem0.ai(在新窗口打开)
LoCoMoMem0 研究页0.925未披露mem0.ai(在新窗口打开)

本领域自报数字的问题

  • 同一系统换作答模型,分数可以差 20pp 以上:第三方复现中 LangMem 在两种低价闭源小模型下分别为 0.513 与 0.734。 arXiv 2602.15313(在新窗口打开)
  • Mem0 与 Zep 互测的结果相差约 9pp(0.660 对 0.751),双方各执一词,尚无中立裁定。
  • 有开源项目宣称 LongMemEval / LoCoMo 满分,公开审计后回落到常规检索水平;有厂商公开承认其 LoCoMo 99.95% 来自在测试对话上训练。 github.com(审计记录)(在新窗口打开)
  • 判分口径、子集(是否含类别 5、是否只用部分题)、作答上下文预算不同,都会造成 20–40pp 的差异。
  • 我们的做法:同一作答模型下报「检索上下文」与「oracle」两档;判分模型经过校验;找不到可复现方法的数字不列(例如声称「两榜第一」却没有给出数字的)。

成本与复现

花了多少,以及复现需要什么。

  • token:模型账户充值后本轮共约 14M token(阅读为主,低价档;判分每轮约 8 万 token);此前 Q0 两次约 5.5M token 不在此数内。
  • 嵌入:GPU 上单条 28 ms;容器 CPU 版满载约 1.2 s。
  • 长输入:默认 batch 2048 token 装不下长轮次(3,076 token 即报错),改用 8192 上下文的变体, 并设 max_input_chars = 8000(个别轮次长达 7.6 万字符)。
  • 并发:逐题独立、有界并发,--jobs 8 的墙钟约为串行的 1/3。

评测命令(形态)

# 嵌入后端经 MEMORUS_EVAL_EMBED_{PROVIDER,MODEL,DIMS,MAX_CHARS} 指定(定稿 MAX_CHARS=8000);配置补丁经 MEMORUS_EVAL_CONFIG_TOML 传入
memorus-eval longmemeval --arms staging-lexical-embed --data longmemeval_s_cleaned.json \
  --split heldout --dump-hits 20 --include-abstention --jobs <N> --out <arm>.jsonl
# 配置补丁:[memory.lexical] query_stopwords = true;[ace.retrieval] content_word_coverage = true
python scripts/eval/qa/lme_qa.py --context retrieval --top-sessions 5 --tail-sessions 5 --neighbors 1 --split heldout ...
# 作答 / 判分模型由 QA_READER_* / QA_JUDGE_* 环境变量提供,仓库内只出现别名

数据与代码

LongMemEval_S sha256
d6f21ea9d60a0d56f34a05b609c79c88a451d2ae03597821ea3d5a9678c3a442
LoCoMo sha256
79fa87e90f04081343b8c8debecb80a9a6842b76a7aa537dc9fdf651ea698ff4
代码仓
目前为私有仓库,未对外公开;下列提交号供内部核对,对外复现以上方命令与数据集 sha256 为准。
提交(内部仓库提交号)
  • a629dc2结果定稿
  • fcf6e75聚合排序与尾部命中轮
  • 80e4720词法清理(默认关)

局限与下一版计划

没做到的,和接下来要做的。

局限

  • 作答模型是低价档;强闭源作答模型下的分数我们没有跑,不作推断。
  • LoCoMo 只判 1 次(公开常见做法是 3 次取均值),也没有跑全文上下文对照(约 3,000 万 token,超出预算)。
  • held-out 有轻度污染:切分之前,曾在全部 470 题上看过分题型检索汇总,所以 held-out 不是完全干净的。
  • LongMemEval_S 的会话级 any@5 对小模型也不难,真正拉开差距的是 all@k 与问答。
  • LoCoMo 轮次级检索 any@10 0.66 是明显的短板。
  • 词法清理两个开关已合入产品代码,默认关闭,可经配置开启(见上方评测命令的配置补丁);「整本会话 + 尾部命中轮」目前只在评测脚本里,尚未进入检索 API。
  • LongMemEval held-out 没有跑同作答模型的全文上下文一档,只报检索与 oracle 两档。
  • 延迟没有在本轮系统测量,所以不报。

下一版改造计划

分四组,每项写目标与验证方式。

检索3 项
  1. 1.LoCoMo 短轮次检索

    目标写入时把相邻轮上下文并入检索文本,或命中后按会话、相邻轮扩展。目标:轮次级 any@10 0.66 → ≥ 0.80。

    验证LoCoMo 永不调参,只跑一次。

  2. 2.时间感知检索

    目标查询里的相对日期(「上个月」「三周前」)对 valid_from 软加权。目标:temporal 问答 +5pp。

    验证dev 预测先行,held-out 换新后跑一次。

  3. 3.跨会话兄弟证据召回

    目标目标:held-out all@5 0.855 → ≥ 0.90。

    验证dev 预测先行,held-out 换新后跑一次。

作答上下文进产品2 项
  1. 4.「整本会话 + 尾部命中轮」进检索 API

    目标做成检索 API 的分组扩展参数,REST、MCP 与下游业务同源。

    验证评测改走产品 API,分数与评测链路逐题一致。

  2. 5.检索结果带新旧 / 已被取代信息

    目标把新旧、已被取代的信息交给作答侧,针对知识更新题取错新旧值的问题。

    验证知识更新题的可挽回错题清零。

质量与可信4 项
  1. 6.第二家厂商判分复核;LoCoMo 判 3 次

    目标用第二家厂商的判分模型复核全部定稿结果;LoCoMo 判 3 次取均值,并补全文上下文对照。

    验证两家判分的逐题一致率与分数差随报告公开。

  2. 7.held-out 换新

    目标新盐重切或换新数据,旧 held-out 转为 dev。

    验证新 held-out 同样先写预测、定稿后只跑一次。

  3. 8.CI 夜间 dev 回归

    目标每次发版在 CI 夜间自动跑 dev 回归,分数随版本公开。

    验证夜间任务产出分数文件,较上一版回退即告警。

  4. 9.公开检索延迟

    目标公开检索延迟 p50 / p95(含嵌入)。

    验证本页补延迟分布,并写明测量环境。

工程1 项
  1. 10.随包配置与部署

    目标随包配置启用词法清理开关(只影响英文查询);嵌入输入上限默认值;GPU 嵌入服务纳入部署;预发环境换新镜像。

    验证下游业务接入验证。

相关链接