[控场AI]
· 5 分钟阅读· 2,838 字

RAG检索层压力测试:查询定向投毒可致nDCG骤降六成

RAG检索层压力测试:查询定向投毒可致nDCG骤降六成

五篇查询定向文档即可使经典检索器nDCG@10下降四至六成,检索准入层是RAG安全的关键缺口。

该研究针对RAG系统的检索准入环节开展压力测试,覆盖SciFact与NFCorpus两个数据集、623条BEIR查询,系统考察注入文档形态、攻击者查询信息量、单目标投毒预算与污染范围四个变量。结果显示,每条查询仅需五篇查询定向文档,经典检索器nDCG@10即下降40.2%至61.5%;BM25的退化主要可由全查询锚定解释,附加文本还会扰动LSA与Hybrid排序。稠密模型BGE-small在查询锚定下目标暴露率达100%,注入载荷对排序指标影响有限。长查询场景下两个随机词项即可覆盖19.9%合格词项并产生39.5%的Hybrid暴露率。防御方面,重叠准入过滤可移除全查询投毒但可能重创干净检索效用,MMR未能改变暴露率。

检索增强生成(RAG)系统的安全边界,往往被默认建立在“检索器只负责找相关文档”这一假设之上。但一项针对检索准入环节的压力测试表明:只要攻击者能把少量与查询相关的文档塞进语料库,经典检索器的排序质量就会出现断崖式下滑。这项研究覆盖 SciFact 与 NFCorpus 两个数据集、共 623 条 BEIR 查询,系统考察了文档内容、攻击者查询信息、每目标投毒预算与污染范围四个变量的影响。

RAG检索投毒压力测试来源

投毒如何击穿检索准入环节

RAG 的外部文本只有在被检索器接纳进模型上下文之后,才会对生成结果产生影响。研究者把压力施加在这个“准入”步骤上,而不是下游的指令遵循环节——换句话说,他们测量的是检索层的失败,而非模型最终是否被诱导输出错误内容。

实验设计的关键变量包括:注入文档的内容形态(全文锚定还是附加文本)、攻击者掌握的查询信息量、针对单个目标的投毒预算 P,以及污染覆盖的目标范围。这种多变量拆解让不同攻击路径的贡献得以分离,而不是笼统地报告“投毒有效”。

nDCG@10 是信息检索领域最常用的排序质量指标之一,全称为归一化折损累计增益(Normalized Discounted Cumulative Gain)。它衡量的是检索器返回的前 10 条结果相对理想排序的接近程度:每条结果按位置获得折损权重(越靠前权重越高),再按相关性分级累加,最后用理想排序的得分做归一化,使不同查询之间可以横向比较。nDCG@10 取值为 0 到 1,越高表示前排结果越接近“把最相关文档排在最前”的理想状态。本文中 40.2% 至 61.5% 的降幅,指的是该指标相对干净语料基线的相对下降比例,而非绝对分值。

五篇文档拉低经典检索器四到六成

在隔离目标的压力测试中,每条查询仅需五篇查询定向文档,就能让经典检索器的 nDCG@10 下降 40.2% 至 61.5%。这个幅度意味着:即便语料库中绝大部分内容都是干净的,只要攻击者精准投放极少量文档,排序质量就会实质性崩坏。

不同检索器对投毒形态的敏感点并不相同。对 BM25 而言,大部分性能退化可以由“全查询锚定”(full-query anchoring)解释——注入文档完整覆盖了查询词,从而在词项匹配层面获得高分。而附加文本(appended text)则会同时扰动 LSA 与 Hybrid 排序,说明语义层面的排名同样可被操纵,不只是关键词匹配的漏洞。

BM25 是经典稀疏检索算法的代表,基于词项匹配与概率排序模型:它对查询词在文档中的出现频次做饱和处理,按词项的逆文档频率加权,并用文档长度做归一化。LSA(潜在语义分析)则通过矩阵分解把词项—文档共现映射到低维语义空间,捕捉同义与共现关系,属于早期的语义排序思路。Hybrid 检索将稀疏的词项匹配信号与稠密/语义信号融合排序。三者对投毒的敏感点不同,正是因为它们依赖的证据来源不同:BM25 依赖字面词项覆盖,LSA 与 Hybrid 还依赖语义空间中的邻近关系,因此“附加文本”能同时扰动后两者。

稠密模型:查询锚定仍是主导因素

预训练的 BGE-small 在验证中表现出不同的暴露特征。在仅使用查询信息、P=5 的设定下,两个数据集上的目标暴露率均达到 100%;而加入注入载荷后,SciFact 的 nDCG 仅从 0.269 变为 0.271,NFCorpus 的暴露率则小幅降至 98.8%。

这组数据指向一个值得注意的结论:对这个稠密模型来说,查询锚定仍然是检索侧的主导因素,注入载荷本身对排序指标的影响有限。暴露率接近饱和,说明稠密检索器在面对查询定向文档时同样缺乏有效的准入过滤,但其失效机制与 BM25 的词项匹配漏洞并不完全重合。

BGE-small 是 BAAI 通用嵌入模型(BGE 系列)中的轻量版本,属于双塔稠密检索器:查询与文档分别经编码器映射为定长向量,再以余弦相似度或内积排序。这类模型不依赖字面词项重合,理论上对“全查询锚定”式的关键词堆砌应当更鲁棒,但由于其训练目标就是把语义相关的查询—文档拉近,攻击者只要让注入文档在语义上贴近目标查询,仍能挤进前排。目标暴露率指在给定污染预算下,注入文档成功进入检索结果前列(通常为前 k 条)的目标查询所占比例,是衡量准入过滤是否失效的直接指标。

长查询下的部分信息攻击

查询长度会显著改变部分信息攻击的解读方式。在 162 条 SciFact 长查询上,仅用两个随机词项就能覆盖 19.9% 的合格词项,并仍能产生 39.5% 的 Hybrid 目标暴露率。

这说明攻击者并不需要掌握完整查询即可实施有效投毒——在长查询场景下,少量随机词项就足以撬动可观的暴露比例。对防御方而言,这意味着基于“攻击者是否知道完整查询”的风险评估过于乐观。

多目标污染与防御手段的局限

当污染范围扩展到多个目标时,会出现跨目标干扰(cross-target interference),即针对某一目标的注入文档会影响其他目标的检索表现。这一效应让攻击的实际影响面比单目标实验所显示的更复杂。

研究也检验了两类防御思路。基于重叠的准入过滤(overlap-based admission)能够移除全查询投毒文档,但代价可能是干净检索效用的急剧下降——防御收益与可用性之间的权衡十分尖锐。而最大边际相关性(MMR)在测试配置下未能改变暴露率,说明这类以多样性为导向的重排策略并不天然具备抗投毒能力。

最大边际相关性(MMR) 是一种经典的重排策略,在相关性得分之外引入候选文档与已选文档之间的相似度惩罚,从而在结果列表中兼顾相关性与多样性,常用于缓解信息冗余。它并非为对抗投毒设计:MMR 只调节文档之间的相互冗余,无法识别某篇文档是否因刻意锚定查询而获得虚高相关性,因此面对查询定向投毒时暴露率不变并不意外。基于重叠的准入过滤则是在文档进入索引或上下文前,检测其与查询的词项重叠程度,对异常高重叠的文档予以拦截,其代价是会误伤那些本就与查询高度相关的干净文档。

检索层安全的现实含义

这项工作的价值在于把 RAG 安全问题定位到一个具体、可测量的环节。40.2% 至 61.5% 的 nDCG 降幅、100% 的目标暴露率,都发生在模型生成之前;一旦污染文档进入上下文,下游是否被诱导就已经不在检索器的控制范围内。

对构建 RAG 系统的团队来说,这意味着语料准入与来源可信度校验需要被当作独立的安全层来设计,而不能寄希望于重排策略或多样性机制顺带解决。防御方案在移除投毒文档的同时会牺牲多少干净检索效用,是需要提前量化的工程决策,而非事后补救。

#RAG安全#检索投毒#语料库污染#nDCG下降#BEIR基准#稠密检索#查询锚定#检索准入
分享:

相关推荐