glasshouse 草案设计了覆盖多语言、照片和超长对话的记忆评测,分别报告17个维度,不汇总单一总分。通过小规模与完整测试对比区分容量下的检索退化,并对事实更新后的陈旧回答设置扣分规则;作者披露其公司经营记忆基础设施。
我在一家开发记忆基础设施的公司工作,所以我的立场有偏向:我们参与竞争的,正是这个 benchmark 要衡量的能力。我们编写了一个名为 glasshouse 的长期记忆 benchmark,想听听大家的看法:它是否值得在你自己的系统上跑一遍?
各家记忆系统都在公布自己的成绩,但这些数字对不上。促使我们动手做这件事的案例是:Zep 公布的 LoCoMo 得分是 84%,Mem0 重新计算后得到 58.44%,随后 Zep 又给出了 75.14%。同一个系统、同一个 benchmark,三个数字。LongMemEval 和 BEAM 都提供了数据集和脚本,却都没有提交结果的地方,因此大家仍然各报各的成绩。
在一段包含 197 万个 token 的对话中,设置了 2,847 个问题,涵盖 10 种语言,并包含 50 张照片。
共 17 个评估维度,每个维度单独报告成绩。没有一个用来概括整体表现的总分,因为一个系统可能在某个维度上很强,在另一个维度上却完全不堪用。
标准测试采用 full 档,包含 103,572 轮对话、1,547 个问题。规模较小的 core 档包含 1,882 轮对话,用作对照:如果系统从 core 到 full 时成绩下降,说明它知道答案,却无法在大量信息中检索出来。
STALE:某个事实发生了变化。找到新值得满分,回答“I don't know”得一半分,自信地重复旧值则得零分。
CONTRADICT:说话者相隔数周,给出了两条互不相容的说法。指出两者存在冲突得满分,自信地选定其中一条则得零分。
RECONCILE:两条陈述看起来互不相容,但在不同条件下都成立。系统会解释两条陈述各自成立的条件,还是选定其中一条,并认定另一条是错的?
FALSE_MEMORY:你断言了一件从未在对话中提到过的事。系统会附和吗?
跨语言:800 个问题,信息以一种语言存入,再用另一种语言提问,覆盖全部 10 种语言。
是否给部分分数,只看一个问题:不完整的回答会不会带来危险?明确暴露出信息缺口的回答得一半分,因为用户可以继续追问。把错误值当作当前值给出,得零分。如果对所有问题都回答“I don't know”还能拿到超过 20% 的分数,构建检查也会判定失败。
这还是一份草案,尚未发布。提交结果的文件夹是空的,我们也还没有提交自家系统的成绩。
你需要自己编写 ingest 步骤。我们不提供 runner,因为我们能写出来的 runner,只会适配我们自己销售的产品。
评分会通过 OpenRouter 调用作为裁判的 LLM,使用你自己的 key,因此需要花钱。我们已经在 answer mode 下运行过裁判,但还没有让 memory mode 接受它的评判。
合成对话并不等于真实用户的生活。
你会在自己的记忆系统上运行这个 benchmark 吗?如果不会,还缺少什么?
哪个维度看起来设计不合理,或者不公平?
如果一家运营 benchmark 的公司同时也销售记忆产品,你会信任这个 benchmark 吗?
阅读这些内容不需要账号。如果想了解细节,可以看看 github.com/wontopos/glasshouse。
初稿是我在 AI assistant 的帮助下写的,之后由我自己编辑。
如果需要采取进一步措施,可以考虑屏蔽此人和/或举报滥用行为。