一句话问题:检索增强为什么会让对的变错
RAG 的存在理由几乎不言自明:模型的知识有截止日期,检索外部证据来补齐。但 arXiv 2609.31342(2026 年 9 月 25 日提交,Md Shamim Ahmed、Lukas Galke Poech 与 Richard Röttger 三位作者)指出这个直觉里藏着一个反直觉的失败模式:检索到的证据只在它仍然有效时才有帮助。当证据过时——曾经正确、后来被修订的事实——模型不仅得不到帮助,反而会放弃自己本来答对的答案,转而复述检索到的旧结论。作者把这种现象命名为 stale-document poisoning(过时文档投毒)。
要强调的是,这里没有攻击者。不是有人往知识库里塞了假文档,而是知识库的生命周期管理没跟上事实的变化:医学指南修订了、法律条文废除了、API 弃用了、平台政策更新了,旧文档还躺在索引里等着被召回。这是一个纯粹的工程性时间对齐失败,也因此值得每个维护 RAG 系统的人认真对待。
基准构造:317 个可验证的知识反转
论文的第一个贡献是基准本身。作者构造了 317 个经过验证的知识反转(knowledge reversals),覆盖医学、法律、软件和平台政策四个领域。所谓知识反转,是指某个事实陈述在时间 T1 为真、在时间 T2 为假且被官方来源明确修订的情形——例如某诊疗指南曾推荐某药物后将其撤下。每个案例都锚定在带日期的官方来源上,保证「旧答案曾经正确」不是研究者的主观判断,而是可查证的历史事实。
这个构造的巧妙之处在于隔离了变量。常规 RAG 评测里,模型答错可能是因为知识本来就欠缺;而在反转场景下,作者可以分别测「无检索时模型答什么」和「检索到过时证据时模型答什么」,两者的差值就是过时证据造成的净伤害。跨 12 个模型还观察到一个次级规律:近期的医学反转比年代久远的更难抵抗——模型对刚被修订的知识几乎没有残留的更新意识,参数化记忆与最新的官方口径完全一致地停留在旧世界上。
核心数字:翻盘率比你想的严重
实验结果按严重程度递进排列。第一层,无任何信任指令时,仅仅把过时证据放进上下文,Llama 系列有 30%、Qwen 系列有 37% 的本来正确的回答被翻转。注意这是最保守的设定——模型没有被要求听从文档,证据只是「恰好出现」。
第二层,现实更糟。生产系统的提示词几乎总会写「请根据以下检索内容回答」,而一旦显式要求遵循文档,Llama 的翻盘率升到 66%,Qwen 升到 75%。我们为了压制幻觉而设计的忠实性指令,在证据过时的场景下成了放大伤害的开关。
第三层是全谱系观察:四个开源模型在四个领域上的投毒率从 17% 到 91% 不等;而作为对照,时效匹配的最新证据被遵循的比例是 97% 到 100%。这个对照说明模型并不缺乏「跟着证据走」的能力,缺的是判断证据是否仍然适用的能力。
机制发现:失效时点的显式说明几乎是特效药
论文最有工程价值的部分是关于「模型能不能学会看日期」的实验设计。作者固定 50 个反转的历史证据完全不变,只改变评测日期,观察模型的行为差异。结论分两段:只给日期,模型只有有限的适应;但当提示词明确告知「旧证据在何时停止适用」时,较大的模型几乎完美地切换到了正确答案。因果干预实验进一步确认,这条有效性信息直接塑造了模型的最终决策,且支撑时间适用性判断的内部组件同时服务于一般性比较任务——也就是说,模型并不缺推理机制,缺的只是那条没被传进去的失效说明。
这对 RAG 工程的启示很直接:与其指望模型自己从文档日期推断适用性,不如在检索管线里就把「本文档自某日起被某某取代」这类元信息显式注入上下文。很多团队的文档系统里这些信息本来就存在(替换关系、状态字段),只是从来没被送进提示词。
缓解方案:recency-aware 混合重排器
除了提示层,作者还给出检索层的方案:一个固定的、具备时间感知的混合重排器,在相关性排序的基础上结合文档时效信号。实测在日期准确的前提下,投毒率降低 4.6 到 10.0 个百分点。注意两个限定条件:收益依赖时间元数据的可靠性——如果文档日期本身就是错的或缺失的,重排器无从发力;同时它是「降低」而非「消除」,选择性信任问题没有一劳永逸的解。
工程行动清单
落到实践,这篇论文值得每个 RAG 维护者对照自查四件事。第一,盘点知识源的失效管理:文档有没有状态字段、被谁取代、何时失效?没有的话这是第一优先级。第二,检查提示词里的忠实性指令是否无条件——「遵循检索内容」应该加上「除非内容已过时」的时间限定,并显式注入失效时点。第三,在重排层引入时效信号,尤其是医学、法律、合规这类反转高发领域。第四,用知识反转案例构建自己的回归评测集:过时证据翻盘是一个可测、可回归的指标,不该等到线上事故才发现。RAG 的下一个竞赛维度不是召回率,而是选择性信任:模型不仅要判断证据说了什么,还要判断它是否仍然适用。