没有人工智能内存基准测试真正破坏了什么

推动人工智能内存采用的指标几乎都是检索指标。良好的检索是必要的。没有广泛使用的基准测试代理写入存储数据后会发生什么情况。

没有人工智能内存基准测试真正破坏了什么

我开始在 ChatGPT 中跟踪我的锻炼情况。次数、重量、训练感觉如何。几周后,我要求它将今天的表现与之前的会话进行比较。它给了我一个自信、详细的比较。数字是错误的。

不是稍微差一点。错误的。它引用的会话与我实际记录的内容不匹配。我回顾了我的谈话历史。它“比较”的数据并不以其声称的形式存在。其中一些看起来像是我几周前告诉它的内容的有损摘要。其中一些看起来像是发明的。

自然诊断是幻觉。模型编造了事情。我无法证实这一点。 ChatGPT 从未存储过原始数据吗?它是否存储了一些东西然后将其汇总?记忆在会话之间是否发生了漂移?我无法得知系统在我记录这些会话之日相信什么,或者它是否曾经保存过实际的数字。我不能排除幻觉。我也不能排除腐败的可能性。

无法区分才是真正的问题。对于大多数人工智能存储系统,您无法判断您看到的是哪种故障模式。诊断工具不存在。几乎没有人在建造它。

两种故障模式,而不是一种

业界有一个词形容“模特说错话”:幻觉。它是所有错误输出的包罗万象的。当代理使用持久内存时,有两种不同的故障模式。他们需要不同的修复。

幻觉是模型级别的失败。法学硕士生成的内容没有输入依据。检索结果很好。这一代人出了问题。这些修复是模型级的:更好的基础、检索增强生成、受限解码、验证链。

内存损坏是基础设施级别的故障。存储的数据有误。模型忠实地检索它。答案看起来是正确的,因为检索是正确的。检索到的内容发生了变化。

内存损坏通过了每一项为幻觉设计的检查。该段落与查询相符。该模型引用了其来源。输出接地于存储的数据。每个护栏都说答案是基于真实信息的。信息有误。

为什么腐败是默认现象

默认情况下,代理内存的每个主要类别都存储可变状态。

平台内存(ChatGPT、Claude、Gemini、Copilot)会覆盖更新时的条目。没有版本踪迹。检索系统(Mem0、Zep、LangChain Memory)在合并时合并或替换内存。

基于文件的系统(markdown、JSON)保持可变,除非您添加 git。 Git 为您提供小型存储库的真实历史记录和差异。对于代理写入的数据,它在千兆字节规模上的扩展性很差,并且很少有团队将其视为内存的预​​写日志。

标准数据库(SQLite、Postgres)可以实现事件源、时态表和审计触发器。它们的默认路径仍然被覆盖:“UPDATE”替换该行并且旧值消失。

这些都没有保留版本化历史记录或防止静默突变开箱即用。他们中的任何一个都可以。几乎没有人这样做。

即使是深思熟虑的新设计也可能陷入同样的​​陷阱。 Garry Tan 的 GBrain 规范 从第一天起就得到了很多正确的信息:SQLite、FTS5、矢量搜索、MCP。该规范仍然重写编译后的事实,而不是附加到它。您的代理重写了 7,471 个合并错误的页面。错误的版本成为规范。没有审计线索。干净的架构,相同的突变模型。

这不是一次糟糕的发射。它是整个品类的标杆文化。采用率、星级和资金跟踪检索指标:k 处的召回率(通常写为 R@k)、精度、延迟、压缩比。这些指标很重要。良好的检索是必要的。当智能体写入自己的内存时,这是不够的。没有广泛使用的基准测试存储数据写入后会发生什么情况。

MemPalace 是一个最近的例子。该项目在两天内就在 GitHub 上获得了 19,000 颗星,“完美的基准分数”。 独立分析发现标题数字是检索召回指标,而不是端到端准确性。误导性的发布文案是 MemPalace 的一个问题。激励结构是该类别的问题:检索分数为 19,000 颗星,关于写作完整性的问题为零。 Supermemory、Mem0 和我跟踪的至少十几个其他人在同一个轴上竞争。没有人发布关于存储的事实是否在代理写入一周后保持不变的指标。

对于传统应用程序,可变状态很好。对于代理记忆来说这是一个问题。代理经常跨会话写入,有时会发生冲突。两个会话为同一字段写入不同的值。最后写入获胜。第一个值消失。没有人得到通知。没有任何记录表明它曾经有所不同。

LLM 驱动的总结使情况变得更糟。系统将旧记录合并到新摘要中。摘要取代原文。如果合并是错误的(两个人合并为一个人,一个细节被遗漏,一个歧义问题解决得很糟糕),那么原来的人就会消失。您无法将摘要与它所替换的内容进行比较。被它取代的东西已经不复存在了。

这不是理论上的。当我在擦除后恢复我的生产数据库时,我有不同日期的备份。我可以比较不同时间的实体状态。一些实体在 3 月 3 日和 3 月 9 日的备份之间存在差异。在仅附加系统中,这两个值都作为带时间戳的观察值保留。在可变系统中,只有最新的才能生存。你永远不会知道早期值的存在。

无人运行的审计

大多数团队都会检查是否出现幻觉。他们验证模型的输出是否基于检索到的上下文。他们测试模型是否发明了事实。

几乎没有人检查存储的事实是否已更改。问:

您能看到发生了什么变化吗? 如果某个值与上周不同,您能看到这两个值吗?它是什么时候发生变化的,是什么触发了它?

你能重放过去的状态吗? 你能重建代理在特定日期所相信的内容,而不仅仅是今天的快照吗?

您能追踪来源吗? 对于任何存储的事实,您能否命名创建或更改它的代理、会话和输入?

如果答案是否定的,腐败就无法被发现。并非不可能。无法检测到。它现在可能正在发生。直到下游发生故障并且有人询问该数字来自哪里时,您才会知道。

是什么阻止了它

内存损坏是结构性的,而不是模型问题。更好的提示和更智能的检索并不能解决这个问题。修复是建筑性的。

不变性。 观察结果在写入后不会改变。新信息就是新观察。旧的留下来。实体状态源自完整的历史记录,而不是单个可变行。

出处。 每个事实都携带元数据:哪个代理在何时、从什么输入、在哪个会话中编写了它。当某个值看起来错误时,您可以追踪保管权。当两个代理发生冲突时,您会看到两者并进行选择。

**时间重播。**状态来自观察日志,而不是当前行。你可以在过去的任何时间重建信念。当当前和过去的状态出现分歧时,腐败就会变得显而易见。

这些财产需要花费一些钱。仅附加日志会增长。从历史记录中重新计算状态的成本比读取一行的成本更高。整合的系统正在根据完整的历史记录来交换存储和延迟。不变性以简单的写入和严格的存储来换取可审计性。当智能体写入影响真实结果的记忆时,这种交易是值得的。对于许多生产案例来说,它已经是这样了。

我将这些属性构建到 Neotoma 中。我没有预测到每一种腐败情况。我不断遇到可变状态,产生错误的答案,但无法诊断它们。 Neotoma 需要安装时间。它不是零设置。您不能将内存作为普通文件进行编辑。这些都是真实的成本。赌注是,一旦代理编写驱动决策的状态,版本化历史、出处和重播就比便利性更重要。

复合风险

腐败会以幻觉通常不会的方式复合。当有人读到并说“那是错误的”时,幻觉的答案常常会消失。一次对话,一次错误。

损坏的内存条目仍然存在。它再次被检索。它影响了后来的决定。我的锻炼比较一次也没有失败。后来的每次比较都基于相同的漂移或缺失数据。每个答案单独看起来都很好。除非我交叉检查自己的记录,否则该错误是不可见的,这违背了代理跟踪器的目的。

将其扩展到真正的赌注。内存中的错误电子邮件意味着每次发送都会发送给错误的人,直到有人注意到为止。错误的金额意味着不止一张错误发票。

损坏存在于内存层,而不是模型。正常调试会漏掉它。该模型有效。检索工作有效。存储的数据是错误的,或者从未正确存储过。您无法快速设计过去的基础设施,从而放弃其自身的历史记录。

检查什么

如果您使用代理内存,请尝试此操作。选择您的代理在两周多前存储的五个实体。把它们找回来。将当前值与您认为最初存储的值进行比较。

如果您无法进行比较,则您的系统不会保留历史记录。你是腐败盲人。这并不意味着腐败发生了。这意味着你不知道它是否有。一旦代理商花钱、接触客户或触发现实世界的行动,“我们不会知道”是不够的。

严格的写入完整性基准测试将像这样运行。为 N 个已知值的实体提供种子。运行读取和写入相同实体的 M 代理会话。等一周吧将存储的值与原始值进行比较。

两个分数很重要。 漂移率: 在没有明确用户修正的情况下,有多少比例的值发生了变化? **可检测性:**对于每个变化,系统能否显示它发生的时间、导致它的原因以及之前的值?今天也没有广泛使用的人工智能内存基准测试报告。

该行业对抗幻觉的做法是正确的。更困难的问题已经出现在看起来健康的系统内部,因为几乎没有人检查存储的事实是否仍然是存储的事实。

业界何时开始询问

当代理错误有价格标签时,写入完整性就不再是可选的。如今,许多错误都得到了重生或迅速调整。代理越来越多地在现实世界中付款、发送电子邮件、执行代码和行动。当代价高昂的失败归因于记忆漂移而不是模型混淆时,事后分析会在“模型是否产生幻觉?”之后添加第二个问题。存储的数据有变化吗?

这种压力不会停留在拥有合规团队的企业内部。 审计压力会转移到低端市场 只要错误会造成金钱损失。顾问、独立构建者和小团队将需要相同的答案:系统在产生输出时相信什么?如果你的内存层不能说,那么内存层就是责任。

触发因素是经济因素,而不是哲学因素。第一次公开的事后剖析将责任归咎于记忆的无声破坏,而不是幻觉,这将改变业界谈论可靠性的方式。事后分析是“何时”,而不是“如果”。

12 最小阅读量散文
分享