top of page

SALT 检索到更多记忆,但小模型准确率下降

horizon machinelearning 的一篇帖子揭示了检索中的尖锐矛盾:SALT 能高效搜索完整记忆 trie,但当它返回过多内容时,小模型会产生幻觉。

开发者称,SALT 会将每一条输入存储在 trie 中;这是一种通过共享公共前缀来减少重复存储的树状结构。随后,它在 20% 的检索预算下使用主题主导度和 CELF 选择机制。这些实现层面的说法来自开发者的检索讨论,而非经过独立审查的评估。

据称,该系统可与聊天机器人配合使用,但如今 agent 也正在加入这一架构。这一变化提高了风险。多个模块可能检索到重叠记忆,重复边际相关的事实,并在采取任何行动前耗尽生成器有限的注意力。

核心问题并不在于 SALT 能否找到相关句子。它显然找得太多。更难的问题是,检索策略能否在保留所有必要依赖关系的同时,排除看似合理却会分散注意力的材料。

这使两个目标直接发生冲突。主题覆盖度会奖励能够代表更多当前活跃主题的集合。证据精度则只奖励那些会改变正确答案或行动的材料。对于小模型而言,后一个目标可能比前者更重要。

SALT 提案将记忆召回转化为选择问题

SALT 报告中的瓶颈出现在存储成功之后,因为高效访问并不保证上下文有用。

根据帖子,所有输入都会进入 DRAM 中的 trie。DRAM 是系统的高速工作内存,而 trie 通过共享前缀组织序列。这种设计能让重复的文本模式更紧凑,也更容易快速寻址。

开发者随后通过关键词与主题主导度系统检索句子。CELF 流程会在设定为 20% 的预算内选择材料。CELF,即 Cost-Effective Lazy Forward selection,通过避免不必要地重新计算每个候选项的边际价值,加速贪心优化。

其吸引人的特性在于边际收益递减。覆盖新主题的句子最初可以带来显著价值。但当第一条句子已被选入集合后,另一条覆盖相同主题的句子应当贡献更少。

当多样性和覆盖度重要时,这种逻辑适用于检索。它能避免结果集被近似重复项填满,同时仍允许一个主题的多个方面出现。它还让大规模记忆集合无需对每种可能的子集评分,也能得到有效管理。

然而,固定百分比并不代表固定的信息需求。短对话的 20% 可以形成紧凑提示词。大型、持久化的 agent 记忆的 20%,则可能产生远超小模型可靠处理能力的材料。

除非存在另一项上限,预算也会随候选池增长。随着更多模块写入记忆,主题一致的候选项会不断增多。选择器仍可能保持计算效率,但其输出对语言模型而言会变得认知成本高昂。

这一差异之所以重要,是因为检索至少包含三个独立阶段。系统必须生成候选项、对其排序或选择,然后将它们打包供模型使用。前两个阶段的速度无法证明第三个阶段的准确性。

公开材料尚未记录 SALT 的主题表示、句子边界、去重规则或评估集。它也没有说明 20% 的预算是按句子、token、存储节点,还是其他单位衡量。

这些细节会改变诊断结果。句子预算可能掩盖 token 长度的巨大差异。token 预算仍可能纳入重复命题。trie 中的节点预算则未必能清晰对应可读证据。

据报告,SALT source code 在研究期间无法持续访问。因此,在代码和可复现测试可用之前,帖子之外的架构细节都应被视为暂定信息。

不过,有一点变化依然明确。SALT 正从聊天机器人场景转向 agent 场景,在后者中,记忆检索会影响多个模块的行动。这一转变使过度召回从对话中的小麻烦,演变为系统级可靠性问题。

为什么 Horizon MachineLearning 的讨论聚焦于过多上下文

horizon machinelearning 的讨论之所以重要,是因为即使每个检索到的句子都与查询共享主题,加入看似相关的上下文仍可能降低准确率。

语言模型不会将所有输入信息视为同样有用。上下文窗口设定了最大输入规模,但容量并不保证可靠使用。位置、重复、歧义和任务复杂度都会影响模型实际遵循的内容。

经典的长上下文研究测试了多文档问答和键值检索。研究人员在保持目标答案不变的前提下,改变相关证据出现的位置。性能往往呈现 U 形曲线,靠近开头或结尾的信息更受青睐。

在一项报告中的设置里,当相关文档位于较长上下文中不理想的位置时,GPT-3.5-Turbo 的表现甚至低于其 56.1% 的闭卷基线。研究人员还发现,检索更多文档的收益会递减。

在其开放域问答案例研究中,将文档数量从 20 份增加到 50 份仅带来微弱改善。新增的检索召回率并未转化为相当幅度的答案提升。生成器无法有效利用所有额外材料。

更新的证据进一步强化了这一警告。一项 2025 年的上下文长度研究发现,即使检索本身完全正确,更长的输入仍可能损害性能。这一结果区分了团队常常混为一谈的两类失败来源。

第一类是检索错误,即系统选择了缺失、误导性或不完整的证据。第二类是利用错误,即模型获得了足够证据,却无法可靠地基于这些证据进行推理。减少第一类错误并不会自动解决第二类。

这一区别解释了为什么主题覆盖度在检索仪表板上看起来不错,答案质量却在恶化。一个句子可能属于正确主题,却无助于解决当前请求。它也可能引入过时的数值、例外情况或相邻概念。

设想一个 agent 正在准备软件部署。关于部署政策、既往事故、测试、权限和客户影响的记忆都与广泛主题相符。然而,只有当前环境、获批版本、活跃事故状态和必要检查,才可能决定今天的行动。

覆盖度目标可能会奖励那起历史事故,因为它增加了主题广度。生成器随后可能将旧约束与当前约束混在一起。小模型在区分时间顺序、权威性和条件适用性方面的剩余能力更少。

因此,主题归属只是因果有用性的弱代理指标。最佳检索证据不只是与问题相关。它必须实质性地支持、约束、反驳或消除答案的歧义。

这种压力在多轮系统中会进一步增加。Microsoft 研究人员报告称,在测试模型处理多轮对话时,六项生成任务的平均性能下降了 39%。他们的对话基准发现,领先的开源和闭源模型都比在等效单轮设置中的表现更差。

Agent 又增加了一层复杂性。每个模块都可以创建摘要、计划、工具结果、观察记录和状态消息。共享记忆系统随后便要面对同一事实的多个版本,而每个版本都是为不同的局部目的而写。

压缩有助于存储,但无法保证与决策相关。被压缩的干扰项仍然是干扰项。多份压缩摘要也可能掩盖哪个原始来源才具备权威性。

对于构建可搜索知识库的开发者而言,这就是实际教训。检索质量必须在最终答案或行动层面评估,而不能只在索引或排序层评估。

覆盖度与精度将句子检索拉向相反方向

SALT 的主要设计冲突是覆盖度与精度之争,而不是 trie 与向量数据库,或 CELF 与其他优化器之争。

覆盖度关注所选集合是否代表了一个主题中足够多的不同方面。精度关注每个所选项是否值得为这一特定决策占用稀缺的提示词空间。两者都有用,但奖励的是不同的行为。

纯相关性排序器往往会返回冗余句子。得分最高的项目可能只是以略有不同的措辞重述同一个突出概念。次模选择可以通过降低那些在已选项目之外几乎不增加价值的候选项权重,提升多样性。

SALT 报告中对 CELF 的使用似乎旨在解决这一问题。如果底层目标是次模的,惰性贪心选择能够高效近似得到高价值集合。然而,优化器只能追求其目标函数中编码的价值。

如果主题覆盖度为每个新子主题赋值,系统就会追求广度。它不知道某个子主题只是背景,而另一个则包含决定性约束。它也无法仅从计算效率中推断这一点。

检索单位会进一步加剧问题。句子易于评分和重排,但事实并不总是遵守句子边界。一句限定性表述可能依赖于附近的定义、时间戳、说话者或例外条款。

只检索表面上的答案句子,可能会剥离必要的出处信息。检索其完整的主题邻域可以恢复出处,却会增加噪声。系统需要一种既保留依赖关系、又不导入整个主题簇的证据单位。

一种选择是以主张为中心的检索。系统会将每条记忆表示为一项主张及其元数据,包括来源、时间、范围、置信度,以及指向必要限定条件的链接。选择过程将围绕这些证据包,而不是孤立句子进行。

另一种选择是以问题为条件的边际收益。候选项的价值取决于它是否能改善答案、消除歧义、补充缺失步骤,或反驳当前草稿。通用主题新颖性将成为辅助信号,而非首要目标。

这两种方法都无法消除权衡。主张提取可能在摄取过程中引入错误。以问题为条件的评分可能增加延迟,并依赖另一个带有自身偏见的模型。

尽管如此,这两种方法都揭示了真正的优化目标。检索层应在 token 和延迟预算内最大化预期任务效用。它不应最大化记忆覆盖度,并假定生成器会自行丢弃多余内容。

固定的 20% 政策尤其值得审视。百分比便于进行存储采样,但提示词容量取决于绝对 token 数。模型可靠性还会随查询复杂度、证据结构以及所使用的生成器而变化。

更好的预算应当根据证据需求动态调整。一次直接查询可能只需要一项有依据的主张。一次比较可能需要若干备选方案。一个多步骤的智能体计划可能需要一条依赖链,以及明确的矛盾信息。

这意味着应采用分阶段检索流程。第一轮应检索一个规模小、精度高的核心集合。只有在答案缺乏支撑、存在不确定性,或需要额外推理步骤时,第二轮才应扩展。

扩展决策需要可衡量的标准。模型可以识别缺乏支撑的主张,但仅靠自我报告的置信度并不可靠。更可信的信号包括缺失引用、未解决的实体、相互矛盾的时间戳,以及未通过的可回答性检查。

系统还应区分稳定记忆与情景记忆。稳定记忆包含持久的偏好、政策和经过验证的事实。情景记忆记录事件、短暂观察,以及相关性会随时间衰减的先前步骤。

如果没有这种区分,主题选择器可能会将永久规则与临时状态混在一起。在底层事件结束后,智能体仍可能遵循旧的临时解决方案。因此,在文本送入模型之前,时间元数据就应影响选择过程。

权威性与时效性同样重要。用户指令应优先于智能体生成的该指令摘要。经过验证的工具结果应优先于推测性的计划。仅凭主题相似度无法表达这些优先级。

最佳的句子检索方法很可能会结合多种信号,包括词汇匹配、语义相似度、依赖覆盖度、时间、权威性、矛盾信息,以及预估的任务效用。如果目标函数纳入这些区别,CELF 仍可承担最终集合选择。

这并不意味着 trie 已无关紧要。存储结构决定了查询速度、内存开销、更新行为和可用关系。它只是意味着,存储效率与答案可靠性属于不同的评估层面。

更小的模型会更早暴露检索失败

在这里,较小的模型不只是生成能力较弱;它们还是检验检索层是否已将证据与主题噪声分离开的压力测试。

大型模型有时能凭借更强的指令遵循能力和更好的上下文辨别能力,从杂乱的提示中恢复。这种容错性可能掩盖检索器的弱点。同样的上下文可能会立刻压垮较小模型。

因此,开发者关于幻觉的观察需要谨慎解读。过度检索可能与缺乏依据的答案相关,但该文章并未证实因果关系。其他来源还可能包括较弱的提示、缺失证据、相互矛盾的记忆、解码设置,或特定模型的局限性。

“幻觉”一词也可能将多种失败混为一谈。模型可能编造事实、合并两段记忆、遵循过时指令,或选择了错误的检索备选项。每种失败都需要不同的测量方式,并可能需要不同的修复手段。

SALT 在调整选择器之前需要建立错误分类体系。每个失败答案都应指出:所需证据是缺失、已存在但被忽略、存在矛盾、不完整,还是被干扰项淹没。

评估至少应比较四种检索条件。其中一种不提供外部记忆。另一种只提供由人工选定的预言机证据集。第三种使用 SALT 当前的输出,第四种使用经过激进裁剪的输出。

这种比较能将检索与生成区分开来。如果小模型在预言机集合下仍然失败,调整 CELF 权重就无法解决核心问题。如果它能在预言机证据下成功、却在 SALT 输出下失败,那么精度就应成为首要目标。

基准测试应保留真实的任务类别。直接事实问题测试精确回忆。多跳问题测试依赖完整性。智能体任务则测试检索到的记忆是否能导向正确的工具选择、参数与停止条件。

每个类别都需要负例。语料库应包含同一主题下看似合理但无关的句子、真实事实的过时版本、明确的矛盾信息,以及重复的改写内容。简单的随机干扰项会夸大系统质量。

评估还必须改变证据的位置。context-limit 结果显示,Gemini 2.5 Flash 等较新的模型在长上下文中处理简单的针式检索,表现远优于早期系统。这一发现为关于普遍上下文失效的宽泛说法提供了重要的反证。

然而,简单事实检索并不等同于在相互竞争的记忆间进行推理。模型可以定位一个预先植入的事实,却仍可能难以处理多个相关主张、例外情况和时间变化。SALT 的智能体使用场景更接近第二类。

因此,测试应将模型规模与上下文构成进行交叉组合。同一检索集合应提供给较小的本地模型、更强的模型,以及预言机式评估器。差异将显示改进究竟来自更干净的记忆,还是更强的生成器能力。

精度应在多个层面报告。句子精度统计检索到的句子中有多少真正有用。主张精度统计得到支持的命题。行动精度衡量智能体是否选择了正确的操作与参数。

召回率也必须保持可见。将内容裁剪到只剩一句明显的句子,可能提高精度,却会破坏多跳任务的完整性。安全的选择器应识别最小充分证据集,而不只是最小集合。

“充分”意味着该集合能够支撑正确结果,并保留必要的限定条件。当记忆中包含相互冲突的主张时,它还应包含具有决定性的矛盾信息。否则,紧凑的提示可能会让模型自信地得出错误结论。

消融测试可以揭示哪些 SALT 组件真正有效。研究人员应分别禁用主题覆盖、调整百分比预算、限制绝对 token 数、删除重复项、加入时效性,以及加入权威性加权。

这些实验应使用完全相同的存储记忆和查询。在不同运行之间改变语料库会使比较变得困难。当生成采用采样时,重复试验同样重要。

延迟和内存使用仍应作为次要指标保留,而不是消失。一个能提高准确性却带来不可接受延迟的重排序器,可能会削弱交互式智能体。目标是在准确性、token、延迟和 DRAM 之间建立可测量的运行边界。

开发者还应记录每个检索句子带来了什么贡献。简洁的原因代码可标识词汇匹配、新主张、矛盾、时间依赖或来源权威性。这些日志能让过度检索变得可诊断,而无需要求生成器解释自身。

仍有一项重要风险尚未得到验证。没有公开基准能够证明 SALT 当前的聊天机器人准确性、记忆压缩能力或智能体性能。该架构应被视为早期项目报告,而非经过验证的进展。

三项信号将显示 SALT 能否扩展至智能体

SALT 的下一个里程碑应是可复现的精度结果,而不是更大的记忆存储或更宽松的上下文预算。

第一项信号是预言机差距基准。开发者应在直接任务、多跳任务和智能体行动任务中,将当前检索与人工选定的最小证据集进行比较。结果应按模型规模细分。

如果 SALT 在使用更少 token 的同时接近预言机性能,证据将支持其主题选择策略。如果较小模型的差距扩大,当前目标函数选择的可能是生成器无法利用的广度。

第二项信号是自适应预算。固定的 20% 策略应与绝对 token 上限和分阶段检索竞争。比较应衡量答案准确性、行动成功率、检索到的主张、延迟和缺乏依据的断言。

自适应策略只有在保留完整证据链时才算胜出。如果它移除了例外或依赖关系,仅仅降低 token 数会削弱系统。最强的结果应是在不降低任务层面召回率的情况下提高精度。

第三项信号是在智能体试验中采用模块感知的溯源机制。每段记忆都应标识其来源模块、时间戳、权威性和源材料。测试应包含来自不同智能体的相互矛盾和过时记忆。

如果具备溯源感知的选择能减少错误行动,多智能体记忆所需的就不只是主题主导性,还需要权威性、新鲜度和矛盾处理的明确规则。如果溯源几乎没有影响,主要问题很可能存在于排序或生成的其他环节。

这些信号应出现在一个开放的评估包中。该包需要固定查询、标注证据、检索日志、生成输出、模型设置和评分规则。没有这些工件,外部贡献者就无法隔离出某项提议变更奏效的原因。

在完整基准出现之前,社区建议仍然可能有用。该项目可以测试最大边际相关性、交叉编码器重排序、主张聚类和面向查询的压缩。然而,任何方法都不应只基于轶事就取代当前选择器。

最强的近期设计可能是保守的。检索紧凑的证据核心,保留附带的限定条件,并且只在发现特定信息缺口后扩展。应根据每个模块的任务路由所选证据,而不是广播一份宽泛的上下文。

智能体系统还需要记忆卫生。它们应合并重复内容、让临时状态过期、保留原始来源,并区分观察与结论。否则,随着智能体不断存储先前输出的衍生内容,检索质量将逐步下降。

这种模式类似于有损复制。工具产生一个事实,一个智能体将其总结,另一个智能体再总结这份摘要,而记忆系统存储每一个版本。即使这些内容有共同来源,主题覆盖度仍可能把它们视为一致证据而给予奖励。

具备溯源感知的去重可以防止重复副本制造出表面共识。选择器应将衍生记忆归入其原始证据之下。这样便可避免将提示 token 花在同一事实的多种改写上。

构建个人知识系统的团队面临类似挑战。捕捉一切只有在回忆过程保留相关性、来源边界与时间信息时才有用。智能体记忆会放大错误处理这些区别的代价。

对于 horizon machinelearning 的讨论而言,这才是决定性要点。SALT 无需证明 trie 能够存储大量对话记忆。它需要证明,随着记忆和模块数量增加,其选择器仍能恢复最小充分证据集。

因此,下一项有价值的贡献是可衡量的:发布一组失败案例,标记所需证据,并在相同模型条件下比较检索策略。哪一种策略能让小模型保持准确,同时不隐藏必要事实?

 
 

免费开始

一款本地优先的AI助手,具备个人知识管理功能

为了获得更好的人工智能体验,

remio 目前仅支持Windows 10+ (x64)M-Chip Mac

在你的大脑里添加一个搜索栏

Ask remio

记住一切

​无需整理

bottom of page