上下文窗口忘记了重要的事情 - 我为 AI 代理内存构建了一个使用强化的衰减引擎

大多数人工智能记忆系统保存的是最新信息,而不是最重要的信息。以下是我如何使用艾宾浩斯遗忘曲线为法学硕士构建更好的内存引擎。后文“上下文 Windows 忘记重要的事情——我为 AI 代理内存构建了一个使用强化的衰减引擎”首先出现在《走向数据科学》上。

来源:走向数据科学

TL;DR:

AI 代理记忆系统使用滑动窗口驱逐旧上下文:如果某件事在 N 轮内没有被触及,它就会消失。这将第 1 回合中陈述过的基本事实和第 40 回合中的一次性调试日志视为相同的 — 无论其中一个实际使用了多少次,较旧的都会失败。我构建了一个记忆引擎,使用艾宾浩斯遗忘曲线对保留进行评分,其中每次回忆都会增强项目的稳定性并非线性地推动其逐出范围。在 50 个种子会话中,它的基础召回率是 100%,而仅新近度基线的召回率为 0%——我追踪了确切的数学原因,然后找到了其优势完全消失的具体失败案例。

要点

这里的问题是结构性的,不是你可以通过调整来解决的。使用固定的新近度窗口,您会遇到数学难题:如果您在 window_size 轮内没有触摸某个项目,它就会从内存中擦除。它是否是五分钟前系统中使用最频繁的项目并不重要,一旦它滑过该窗口,它就会消失。

其次,在新近度失败的情况下进行强化复合。通过让保留率随着回忆频率而变化,衰减引擎仅基于一些早期交互,就将项目的有效生存范围推高了几个数量级。

第三,让我们明确一点:这并不是全面的“更好的记忆”。为了确保这不是基准工件,我构建了一个失败案例测试。当某个事实被引入一次并且从未被回忆起时,衰减引擎的性能与基线相同。这就是这个机制的诚实边界。

第四,它完全是确定性的。一切都依赖于明确的转动计数器,而不是挂钟时间。为了验证,我在两台不同的机器和操作系统上运行了该套件 - 不同的输出是字节相同的。

完整代码:https://github.com/Emmimal/memory-decay-engine/

已经过时的事实

这是给谁的

为什么这对真实系统很重要

资源