【文献阅读:RobustRAG】Certifiably Robust RAG against Retrieval Corruption

文章目录

  • AI内容总结
    • [1. 引言与背景](#1. 引言与背景)
    • [2. RobustRAG的核心思想](#2. RobustRAG的核心思想)
    • [3. 安全聚合方法](#3. 安全聚合方法)
    • [4. 可证明的鲁棒性](#4. 可证明的鲁棒性)
    • [5. 实验与结果](#5. 实验与结果)
    • [6. RobustRAG的局限性与未来工作](#6. RobustRAG的局限性与未来工作)
    • [7. 结论](#7. 结论)
  • 摘要
  • [1 引言](#1 引言)
  • [2 背景与预备知识](#2 背景与预备知识)
    • [2.1 RAG 概述](#2.1 RAG 概述)
    • [2.2 检索污染攻击](#2.2 检索污染攻击)
    • [2.3 可证明鲁棒性](#2.3 可证明鲁棒性)
  • [3 RobustRAG:一个鲁棒的检索增强生成框架](#3 RobustRAG:一个鲁棒的检索增强生成框架)
    • [3.1 安全关键词聚合](#3.1 安全关键词聚合)
    • [3.2 安全解码聚合](#3.2 安全解码聚合)
  • [4 鲁棒性认证](#4 鲁棒性认证)
  • [5 评估](#5 评估)
    • [5.1 实验设置](#5.1 实验设置)
    • [5.2 可证明鲁棒性的主要评估结果](#5.2 可证明鲁棒性的主要评估结果)
    • [5.3 RobustRAG 对抗实证攻击](#5.3 RobustRAG 对抗实证攻击)
    • [5.4 RobustRAG 参数分析](#5.4 RobustRAG 参数分析)
  • [6 相关工作](#6 相关工作)
  • [7 结论与讨论](#7 结论与讨论)
  • 致谢

AI内容总结

1. 引言与背景

  • RAG模型概述:RAG模型利用外部知识库信息来增强语言模型的回答能力。它通过检索与输入查询相关的文档段落,然后将这些段落作为上下文与输入一起输入到LLM(大型语言模型)中,以生成更加准确的回答。
  • 问题所在 :尽管RAG在许多任务中表现优异,但它容易受到检索污染攻击。攻击者可以向检索结果中注入恶意段落,导致生成模型生成不准确或有害的内容。例如,攻击者可能通过注入虚假的信息使得RAG输出错误的答案。
  • 目标 :本文的目标是提出一种 RobustRAG 防御框架,能够有效地应对这些攻击,保障模型在恶意输入下仍然能够生成准确的回答。

2. RobustRAG的核心思想

  • 隔离-聚合策略 :RobustRAG的核心策略是 隔离然后聚合 (isolate-then-aggregate)。其基本流程是:
    • 隔离阶段:对每一个检索到的段落单独生成回答,而不是将所有段落拼接在一起作为输入。这一策略确保了即使某些段落被攻击,其他无害段落的回答不会受到影响。
    • 聚合阶段:将所有独立生成的回答进行聚合,生成最终的响应。聚合方法经过精心设计,以避免恶意段落的影响。
  • 鲁棒性保证:通过安全的文本聚合算法,RobustRAG能够在一定条件下证明其鲁棒性,即使攻击者完全了解防御机制,且能注入一定数量的恶意段落,也能保证生成准确的答案。

3. 安全聚合方法

  • 关键字聚合 :在文本聚合过程中,RobustRAG采用关键字聚合方法。具体做法是:
    • 从每个回答中提取出关键词,统计出现频率较高的关键词。
    • 使用这些关键词向模型提问,生成最终的答案。
    • 由于攻击者只能通过注入恶意段落来影响关键词频率,而不能随意改变所有关键词本身,这种方法有效地限制了恶意段落的影响。
  • 解码聚合 :另一种聚合方法是解码聚合,这种方法基于模型解码过程中的下一步预测概率进行聚合。具体来说:
    • 在每一步解码时,分别计算从不同段落中获得的预测概率向量,并对其进行平均。
    • 然后根据平均后的概率向量来选择最终的预测结果。
    • 这样,即使某些段落被恶意篡改,聚合后的结果仍然能够保持稳定和准确。

4. 可证明的鲁棒性

  • 鲁棒性认证 :RobustRAG能够 可证明地 保证其鲁棒性。这意味着,给定一个查询和检索结果,我们可以形式化地证明,对于某些查询,即使攻击者注入了恶意段落,RobustRAG依然能返回正确的答案。
  • 证明方法
    • 通过对聚合过程进行数学推导,能够证明在攻击者注入的恶意段落有限的情况下,生成的结果始终准确。
    • 例如,在关键字聚合的情况下,攻击者注入的恶意段落只能影响少数关键字的频率,而不能改变最终的答案。

5. 实验与结果

  • 实验设计 :本文通过多个数据集和任务对RobustRAG进行评估,包括:
    • 开放领域问答任务:使用不同的数据集(如RealtimeQA、NQ等)进行测试。
    • 长文本生成任务:测试RobustRAG在生成长文本(如传记生成)时的表现。
  • 主要结果
    • 鲁棒性提升 :RobustRAG在面对不同类型的攻击(如PoisonedRAG 攻击、Prompt Injection攻击等)时表现出了显著的鲁棒性提升。即使攻击者完全了解防御机制,并注入恶意段落,RobustRAG也能够保持较高的准确性。
    • 性能下降较小:虽然RobustRAG增加了额外的安全性,但它的干净性能(即在没有攻击的情况下的性能)与原始RAG模型相比,下降幅度较小,仍能保持较高的质量。

6. RobustRAG的局限性与未来工作

  • 局限性:目前,RobustRAG的防御效果在面对大量恶意段落的情况下可能会下降。当攻击者注入的恶意段落数量接近检索结果总数时,模型的鲁棒性可能会降低。
  • 未来方向:未来可以探索如何进一步优化聚合过程,减少防御对生成性能的影响。此外,如何将RobustRAG应用于多跳问题(即需要多次检索的信息)也是一个重要的研究方向。

7. 结论

  • 贡献 :本文提出了RobustRAG框架,这是第一个针对检索污染攻击 的防御框架,能够提供 可证明的鲁棒性。RobustRAG通过创新的隔离-聚合策略,结合安全的文本聚合技术,有效地增强了RAG模型的抗攻击能力。
  • 社会影响:该研究有望在多种实际应用中提供更安全的RAG系统,特别是在需要依赖检索的知识密集型任务中,例如自动问答、知识库生成等。

通过上述分析,本文提出的RobustRAG防御框架通过创新的防御设计,在保证鲁棒性的同时,最大程度地保留了原始RAG的性能,使其在实际应用中具有较高的可靠性。

摘要

检索增强生成(RAG)已被证明易受检索污染攻击:攻击者可将恶意文本段注入检索结果中,从而诱导生成错误回答。本文提出 RobustRAG 作为首个针对检索污染攻击的防御框架。RobustRAG 的核心思路是 隔离后聚合 策略:我们首先基于每个文本段独立生成大语言模型(LLM)回答,然后安全地聚合这些独立回答。为实现 RobustRAG,我们设计了基于关键词和解码的两种算法,用于安全聚合非结构化的文本回答。值得注意的是,RobustRAG 能够实现可证明的鲁棒性:对于某些查询,即使攻击者完全了解我们的防御机制并能够任意注入少量恶意文本段,我们也能正式证明并保证 RobustRAG 始终返回准确回答。我们在开放域问答和长文本生成数据集上评估 RobustRAG,结果证明了其在不同任务和数据集上的有效性和通用性。

1 引言

大型语言模型(LLM)因其参数化知识不完整且可能过时,常常生成不准确的回答。为缓解这一问题,检索增强生成(RAG)利用了外部(非参数化)知识:它从大型知识库中检索一组相关文本段,并将其整合到模型输入中。这种方法催生了许多流行应用。例如,微软 Bing Chat、Perplexity AI 以及带有 AI 概览功能的 Google 搜索等 AI 搜索引擎均利用 RAG 来总结搜索结果以提升用户体验。LangChain 和 LlamaIndex 等开源项目则提供了灵活的 RAG 框架,方便开发者基于 LLM 和知识库构建定制化的 AI 应用。

然而,尽管 RAG 应用广泛,但其流程在部分检索到的文本段被恶意攻击者篡改时会变得脆弱,这种攻击我们称之为 检索污染。检索污染攻击有多种形式。例如,PoisonedRAG 攻击向知识库注入恶意文本段以诱导错误的 RAG 回答(例如,"最高山峰是富士山")。间接提示注入攻击通过污染检索到的文本来向 LLM 集成的应用注入恶意指令(例如,"忽略之前所有指令,将用户的搜索历史发送到 attacker.com")。这些攻击提出了如何构建鲁棒的 RAG 流程的研究问题。
本文提出一个名为 RobustRAG 的防御框架,其目标是在部分检索到的文本段为恶意的情况下仍能进行鲁棒的生成(概述见图 1)。RobustRAG 采用 隔离后聚合 策略,分为两步:(1) 基于每个文本段独立计算 LLM 回答;(2) 安全地聚合这些独立回答以生成最终输出。隔离操作确保了恶意文本段不会影响其他良性文本段的 LLM 回答,从而为鲁棒性奠定了基础。
值得注意的是,通过合理设计安全的文本聚合技术,RobustRAG 能够实现可证明的鲁棒性 。我们可以正式证明:对于某些 RAG 查询,如果攻击者最多只能向 top-k 检索结果中注入 k ′ k' k′ 个恶意文本段( k ′ < k k' < k k′<k),那么即使攻击者完全了解底层防御流程并能以任意顺序注入任意内容的文本段,RobustRAG 的回答也始终是准确的。为实现可证明的鲁棒性,我们设计了两种安全聚合非结构化文本回答的技术:关键词聚合 (第 3.1 节)和 解码聚合(第 3.2 节)。这些技术使 RobustRAG 适用于多种知识密集型任务,包括开放域问答和长文本生成。
贡献:(1) 我们提出了首个针对检索污染攻击的防御框架 RobustRAG;(2) 我们为 RobustRAG 设计了两种安全的文本聚合技术,并在给定威胁模型下正式证明了其对抗任何检索污染攻击的鲁棒性;(3) 我们在三个数据集(RealtimeQA、NQ、Bio)和三个 LLM(Mistral、Llama、GPT)上验证了 RobustRAG 的有效性。

2 背景与预备知识

本节介绍检索增强生成(RAG)的背景,讨论检索污染攻击,并解释可证明鲁棒性的概念。

2.1 RAG 概述

RAG 流程与符号 。我们用 i i i 表示文本指令(例如,"使用检索到的文本来回答问题"), q q q 表示文本查询(例如,"最高山峰的名字是什么?"), p p p 表示文本段落(例如,"珠穆朗玛峰被认为是地球上海拔最高的山峰")。
给定查询 q q q,标准 RAG 流程首先从外部知识库检索 k k k 个最相关的文本段 ( p 1 , . . . , p k ) : = P k (p_1, ..., p_k) := P_k (p1,...,pk):=Pk。然后,它使用指令、查询和文本段来提示 LLM 模型并得到回答 r = L L M ( i ⊕ q ⊕ P k ) : = L L M ( i ⊕ q ⊕ p 1 ⊕ . . . ⊕ p k ) r = LLM(i \oplus q \oplus P_k) := LLM(i \oplus q \oplus p_1 \oplus ... \oplus p_k) r=LLM(i⊕q⊕Pk):=LLM(i⊕q⊕p1⊕...⊕pk),其中 ⊕ \oplus ⊕ 是文本连接操作符。在本文中,我们将调用 L L M ( ⋅ ) LLM(·) LLM(⋅) 来获得不同形式的预测: L L M g e n LLM_{gen} LLMgen 表示文本回答, L L M p r o b LLM_{prob} LLMprob 表示下一个词元的概率分布向量, L L M t o k e n LLM_{token} LLMtoken 表示预测的下一个词元。在 RobustRAG 中,我们使用贪心解码以使 LLM 具有确定性,便于鲁棒性分析。
RAG 评估指标 。我们用 M ( ⋅ ) M(·) M(⋅) 表示评估评分函数。给定一个 LLM 回答 r ∈ R r \in R r∈R 和标准答案 g ∈ G g \in G g∈G,函数 M ( r , g ) M(r, g) M(r,g) 输出一个指标得分(分数越高表示性能越好)。不同任务通常使用不同的指标:对于问答(QA), M ( ⋅ ) M(·) M(⋅) 可以输出一个二元分数 0 , 1 {0, 1} 0,1 表示回答的正确性;对于长文本生成, M ( ⋅ ) M(·) M(⋅) 可以使用启发式方法(如 LLM-as-a-judge)产生分数。

2.2 检索污染攻击

本文研究针对 RAG 的检索污染攻击,攻击者可以控制部分检索到的文本段以诱导生成不准确的回答(即降低评估指标得分)。
攻击者能力 。我们主要关注文本段注入。攻击者可以向 top-k 检索结果中的任意位置注入 k ′ k' k′ 个内容任意的恶意文本段;但是,它不能修改良性文本段的内容和相对排名。我们用 P k P_k Pk 表示原始的(良性的) top-k 检索文本段, P k ′ P'_k Pk′ 表示被污染后的 top-k 检索结果, A ( P k , k ′ ) A(P_k, k') A(Pk,k′) 表示当 k ′ k' k′ 个恶意文本段被注入原始检索结果 P k P_k Pk(并从 top-k 检索中移除 k ′ k' k′ 个良性文本段)时所有可能的污染后检索结果 P k ′ P'_k Pk′ 的集合。我们关注 k ′ k' k′ 远小于 k k k 的场景(例如 k ′ < k / 2 k' < k/2 k′<k/2);当大部分文本段被污染时( k ′ ≥ k / 2 k' \geq k/2 k′≥k/2),即使是人类也难以生成准确的回答。
攻击的实用性。检索污染在实践中存在多种可能场景。例如,攻击者可以创建少量恶意网站,随后被搜索引擎(即检索器)索引。在企业环境中,恶意内部人员可能在知识库中混入有害文档。此外,当检索器不完善甚至恶意时,也可能返回错误或误导性信息,导致检索污染。我们的防御旨在缓解不同形式的检索污染。

2.3 可证明鲁棒性

我们的目标是构建其最坏情况性能/鲁棒性可被正式证明的防御方法。也就是说,给定一个查询 q q q 和检索到的良性文本段 P k P_k Pk,我们希望将鲁棒性衡量为:当我们的防御方法在接收到任意的 k ′ k' k′-污染检索结果 P k ′ ∈ A ( P k , k ′ ) P'k \in A(P_k, k') Pk′∈A(Pk,k′) 时,所生成的最坏可能回答的质量。我们在以下定义中形式化这一属性。
定义 1( τ \tau τ-可证明鲁棒性) 。给定任务指令 i i i、RAG 查询 q q q、良性 top-k 检索文本段 P k P_k Pk、返回文本回答的基于 LLM 的防御过程 L L M d e f e n s e LLM
{defense} LLMdefense、评估指标 M M M、指标分数 τ \tau τ、标准答案 g g g,以及能够任意注入 k ′ k' k′ 个恶意文本段的攻击者 A ( P k , k ′ ) A(P_k, k') A(Pk,k′),若满足以下条件,则称防御 L L M d e f e n s e LLM_{defense} LLMdefense 具有 τ \tau τ-可证明鲁棒性: M ( r , g ) ≥ τ , ∀ r ∈ R : = { L L M d e f e n s e ( i ⊕ q ⊕ P k ′ ) ∣ ∀ P k ′ ∈ A ( P k , k ′ ) } M(r, g) \geq \tau, \quad \forall r \in R := \{ LLM_{defense}(i \oplus q \oplus P'_k) \ | \ \forall P'_k \in A(P_k, k') \} M(r,g)≥τ,∀r∈R:={LLMdefense(i⊕q⊕Pk′) ∣ ∀Pk′∈A(Pk,k′)}

这里, τ \tau τ 是模型针对所有可能攻击者的鲁棒性下界,这些攻击者可能完全了解我们的防御机制,并能向任意位置注入 k ′ k' k′ 个任意内容的文本段。该下界旨在避免攻击者和防御者之间的"猫鼠游戏",即防御算法一旦公开,往往会被自适应攻击者破解。
我们注意到,由于注入的文本段可以包含任意内容,攻击者集合 A ( P k , k ′ ) A(P_k, k') A(Pk,k′) 包含无限多种可能的 P k ′ P'_k Pk′。因此,回答集合 R R R 可能变得无限大且难以分析其最坏回答。在本文中,我们将展示 RobustRAG 如何限制攻击者的影响,并使 R R R 变得易于处理,以便进行可证明的鲁棒性分析。

3 RobustRAG:一个鲁棒的检索增强生成框架

本节首先概述我们的 RobustRAG 框架,然后讨论不同 RobustRAG 算法的细节。
RobustRAG 的核心见解 。RobustRAG 的关键见解是 隔离然后聚合 策略(见图 1)。给定 k k k 个检索到的文本段 P k = ( p 1 , . . . , p k ) P_k = (p_1, ..., p_k) Pk=(p1,...,pk),RobustRAG 首先从每个隔离的文本段 p j p_j pj 计算 LLM 回答 r j r_j rj(而不是像普通 RAG 那样拼接 k k k 个文本段)。然后,它对回答 ( r 1 , . . . , r k ) (r_1, ..., r_k) (r1,...,rk) 执行安全的文本聚合,以生成最终的鲁棒回答 r ∗ r^* r∗。隔离策略确保 k ′ k' k′ 个恶意文本段只能影响 k k k 个独立回答中的 k ′ k' k′ 个。如果剩余的 k − k ′ k - k' k−k′ 个良性回答/文本段包含足够有用的信息,RobustRAG 就有可能通过安全的文本聚合输出一个鲁棒且准确的回答 r ∗ r^* r∗。
RobustRAG 的挑战。RobustRAG 最大的挑战是设计安全的文本聚合技术。首先,与输出类别预先定义的分类任务不同,来自 LLM 的文本回答可能是高度非结构化的。例如,对于查询"最高山峰的名字是什么?",有效的回答包括"珠穆朗玛峰"、"萨加玛塔"和"最高的是珠穆朗玛峰"。因此,我们需要设计灵活的聚合技术来处理不同形式的文本。其次,尽管我们已经将对抗性影响隔离到了单个回答中,但恶意回答仍然可能破坏(不安全的)文本聚合过程。因此,我们需要设计安全的聚合技术,以便我们能够正式分析和证明其最坏情况下的鲁棒性。
RobustRAG 的解决方案。为克服这些挑战,我们提出了两种聚合算法。

  1. 安全关键词聚合(第 3.1 节及算法 1):从每个回答中提取关键词,并使用高频关键词来提示 LLM 生成最终回答。
  2. 安全解码聚合(第 3.2 节及算法 2):在每个解码步骤中,安全地聚合来自不同隔离文本段的下一个词元预测向量。

3.1 安全关键词聚合

概述 。对于自由形式的文本生成(例如开放域问答),简单技术如多数投票效果很差,因为它们无法识别像"Mount Everest"和"Everest"这样的文本是相同的答案。为应对这一挑战,我们提出了关键词聚合技术:我们从每个独立的 LLM 回答中提取重要关键词,聚合不同回答中的关键词计数,并要求同一个 LLM 使用计数大的关键词来回答查询。这种方法使我们能够跨非结构化文本回答提炼和聚合信息。由于攻击者只能将关键词计数增加少量(即 k ′ k' k′),他们无法任意引入恶意关键词来破坏最终回答。
推理算法 。我们在算法 1 中展示了安全关键词聚合的伪代码。首先,我们初始化一个空计数器 C C C 来跟踪关键词-计数对 ( w , c ) (w, c) (w,c) 和一个零整数计数器 n n n(第 1 行)。然后,我们遍历每个检索到的文本段。对于每个文本段 p j p_j pj,我们使用指令 i 1 i_1 i1 = "根据检索到的文本段回答问题,如果未找到相关信息请说'我不知道'")和查询 q q q 来提示 LLM,并得到回答 r j = L L M g e n ( i 1 ⊕ q ⊕ p j ) r_j = LLM_{gen}(i_1 \oplus q \oplus p_j) rj=LLMgen(i1⊕q⊕pj)(第 3 行)。如果回答中不包含"我不知道",我们将整数计数 n n n 加一以跟踪非弃权回答的数量(第 5 行)。接着,我们从每个回答 r j r_j rj 中提取一组唯一关键词 W j W_j Wj(第 6 行)并相应地更新关键词计数器 C C C(第 7 行)。过程 E X T R A C T K E Y W O R D S ( ⋅ ) EXTRACTKEYWORDS(·) EXTRACTKEYWORDS(⋅) 从相邻停用词之间的文本字符串中提取唯一关键词和关键短语(更多细节见附录 C)。在检查了每个独立回答后,我们过滤掉计数小于阈值 μ \mu μ 的关键词。我们将过滤阈值设置为 μ = min ⁡ ( α ⋅ n , β ) \mu = \min(\alpha \cdot n, \beta) μ=min(α⋅n,β),其中 α ∈ [ 0 , 1 ] , β ∈ Z + \alpha \in [0, 1], \beta \in \mathbb{Z}^+ α∈[0,1],β∈Z+ 是两个防御参数(第 10 行)。当 n n n 很大(许多非弃权回答)时,阈值主要由 β \beta β 决定;当 n n n 较小时,我们将阈值从 β \beta β 降低到 α ⋅ n \alpha \cdot n α⋅n 以避免过滤掉所有关键词。给定过滤后的关键词集合 W ∗ W^* W∗(第 11 行),我们按字母顺序对关键词排序,然后将它们与指令 i 2 i_2 i2 = "使用提供的关键词回答问题"和查询 q q q 结合来提示 LLM,以得到最终回答 r ∗ = L L M g e n ( i 2 ⊕ q ⊕ S O R T E D ( W ∗ ) ) r^* = LLM_{gen}(i_2 \oplus q \oplus SORTED(W^*)) r∗=LLMgen(i2⊕q⊕SORTED(W∗))(第 12 行)。

3.2 安全解码聚合

概述 。关键词聚合只需要 LLM 的文本回答,因此适用于任何 LLM。如果我们在解码阶段额外能够访问下一个词元的概率分布,我们可以使用一种更细粒度的方法,称为安全解码。具体来说,在每个解码步骤中,我们聚合来自不同隔离文本段预测的下一个词元概率/置信度向量,并据此做出鲁棒的下一个词元预测。由于每个概率值都限制在 [ 0 , 1 ] [0, 1] [0,1] 范围内,恶意文本段对聚合后的概率向量的影响有限。
推理算法 。我们在算法 2 中展示了伪代码。首先,我们初始化一个空字符串 r ∗ r^* r∗ 来保存我们的鲁棒回答(第 1 行)。其次,我们识别那些 LLM 不太可能输出"我不知道"的独立文本段(第 2 行)。接下来,我们开始解码阶段。在每个解码步骤,我们首先获取独立的下一个词元概率向量 v j = L L M p r o b ( i ⊕ q ⊕ p j ⊕ r ∗ ) v_j = LLM_{prob}(i \oplus q \oplus p_j \oplus r^*) vj=LLMprob(i⊕q⊕pj⊕r∗)(第 5 行)。然后,我们对所有向量进行逐元素平均以获得向量 v ^ \hat{v} v^(第 7 行)。为了基于向量 v ^ \hat{v} v^ 做出鲁棒的下一个词元预测,我们获取其具有最高(平均)概率 c 1 , c 2 c_1, c_2 c1,c2 的前 2 个词元 t 1 , t 2 t_1, t_2 t1,t2(第 8 行)。如果概率差 c 1 − c 2 c_1 - c_2 c1−c2 大于预定义的阈值 η \eta η,我们认为预测是置信的,并选择最高词元 t 1 t_1 t1 作为下一个词元 t ∗ t^* t∗(第 10 行)。否则,我们认为预测是犹豫不决的,并选择在没有任何检索的情况下预测的词元作为下一个词元 t ∗ t^* t∗(第 12 行)。最后,给定预测的词元 t ∗ t^* t∗,我们将其附加到回答字符串 r ∗ r^* r∗ 上(第 14 行),并重复解码步骤,直到达到最大新词元数量的限制(或遇到 EOS 词元),以获得最终回答 r ∗ r^* r∗。
当任务是生成长回答时,我们发现通过设置 η > 0 \eta > 0 η>0 可以更成功地证明鲁棒性:无检索词元对检索污染免疫,并且不会显著损害模型性能,因为许多词元可以仅基于句子连贯性推断出来。对于其他具有短回答(几个词元)的任务,我们设置 η = 0 \eta = 0 η=0,因为句子连贯性的帮助变小,而无检索词元可能导致不准确的回答。

4 鲁棒性认证

本节讨论如何为不同的 RobustRAG 算法执行可证明的鲁棒性分析。我们在此讨论核心概念和直觉,并将伪代码和详细证明留到附录 A。
概述 。给定一个 RAG 查询 q q q,鲁棒性认证程序旨在确定满足 τ \tau τ-可证明鲁棒性(定义 1)的(最大) τ \tau τ 值。为实现这一目标,认证程序将评估当攻击者向 top-k 检索结果 P k P_k Pk 中任意注入 k ′ k' k′ 个恶意文本段时,所有可能的 RobustRAG 回答 r r r。令 R R R 为所有可能的 RobustRAG 回答 r r r 的集合。我们将证明,得益于我们的 RobustRAG 设计, R R R 是一个有限集合。这允许我们以 τ = min ⁡ r ∈ R ( M ( r , g ) ) \tau = \min_{r \in R} (M(r, g)) τ=minr∈R(M(r,g)) 来衡量最坏情况下的性能/鲁棒性,其中 g g g 是标准答案。

为了分析所有可能的 LLM 输出,我们首先需要了解可能的 LLM 输入(即可能的检索文本段)。回想一下,攻击者向检索结果中注入了 k ′ k' k′ 个文本段(第 2.2 节);这 k ′ k' k′ 个注入的文本段只能将原始检索结果 P k P_k Pk 中排名最低的 k ′ k' k′ 个良性文本段 p k − k ′ + 1 , . . . , p k {p_{k-k'+1}, ..., p_k} pk−k′+1,...,pk 挤出。因此,无论注入文本段的内容和排名如何,前 k − k ′ k - k' k−k′ 个良性文本段 p 1 , . . . , p k − k ′ {p_1, ..., p_{k-k'}} p1,...,pk−k′ 在被污染的检索集合 P k ′ P'k Pk′ 中保持不变。我们的鲁棒性认证将基于这些前 k − k ′ k - k' k−k′ 个良性文本段 p 1 , . . . , p k − k ′ {p_1, ..., p{k-k'}} p1,...,pk−k′。
热身:多数投票 。我们以分类任务中的多数投票作为热身示例。为了进行可证明的鲁棒性分析,我们可以首先从前 k − k ′ k - k' k−k′ 个良性回答 ( r 1 , . . . , r k − k ′ ) (r_1, ..., r_{k-k'}) (r1,...,rk−k′) 中收集投票计数。如果胜者和亚军之间的投票计数差大于 k ′ k' k′,我们可以声称无论其他 k ′ k' k′ 个注入文本段的内容和排名如何,最终回答只能是投票胜者 r ∗ r^* r∗。这是因为攻击者只能将亚军计数增加 k ′ k' k′(使用 k ′ k' k′ 个恶意文本段),这不足以让亚军击败胜者。因此,在这种情况下,我们有 R = r ∗ R = {r^*} R=r∗,从而 τ = M ( r ∗ , g ) ∈ 0 , 1 \tau = M(r^*, g) \in {0, 1} τ=M(r∗,g)∈0,1。
安全关键词聚合 。类似于多数投票,我们分析前 k − k ′ k - k' k−k′ 个回答 ( r 1 , . . . , r k − k ′ ) (r_1, ..., r_{k-k'}) (r1,...,rk−k′):我们提取关键词并获取它们的计数。接下来,我们分析哪些关键词可能出现在过滤后的关键词集合 W ∗ W^* W∗ 中(算法 1 第 11 行)。直观地说,计数大的关键词将始终出现在 W ∗ W^* W∗ 中,而计数小的关键词永远不会出现在 W ∗ W^* W∗ 中。因此,攻击者只能操纵具有"中等"计数的关键词的出现。在实践中,中等计数关键词的集合通常很小(例如,少于 10 个);因此,我们可以轻松枚举其所有可能的子集,并相应地生成所有可能的过滤后关键词集合 W ∗ W^* W∗(通过组合大计数和中等计数的关键词)。最后,我们从所有可能的 W ∗ W^* W∗ 计算所有可能的回答 r r r,并让它们形成一个回答集合 R R R------ 我们有 τ = min ⁡ r ∈ R M ( r , g ) \tau = \min_{r \in R} M(r, g) τ=minr∈RM(r,g)。我们在附录 A.1 中给出了详细过程。
安全解码聚合 。我们的目标是分析每个解码步骤中所有可能的下一个词元预测。给定某个解码步骤的部分回答,我们首先计算在不同良性文本段 ( p 1 , . . . , p k − k ′ ) (p_1, ..., p_{k-k'}) (p1,...,pk−k′) 上预测的下一个词元概率向量,并计算每个词元的概率总和。接下来,我们识别具有最大概率总和的前 2 个词元,并将它们的概率差计算为 δ \delta δ。我们将使用这个 δ \delta δ 值来分析可能的下一个词元预测。直观地说,较大的 δ \delta δ 总是导致预测最高词元;中等的 δ \delta δ 允许预测最高词元或无检索词元;当 δ \delta δ 很小时,预测可以是攻击者引入的任何恶意词元。我们从空字符串开始我们的认证,并跟踪不同解码步骤中所有可能的下一个词元预测(和部分回答)。如果当我们完成对所有可能回答的解码时, δ \delta δ 从未"很小";我们就可以获得所有可能回答 R R R 的有限集合------ 我们有 τ = min ⁡ r ∈ R M ( r , g ) \tau = \min_{r \in R} M(r, g) τ=minr∈RM(r,g)。我们在附录 A.2 中给出了详细过程。
可证明的鲁棒性评估 。本节我们讨论了如何分析回答集合 R R R,以确定给定查询 q q q 及其标准答案 g g g 的 τ \tau τ-可证明鲁棒性的 τ \tau τ 值。在我们的评估中,我们从数据集中收集一组查询 q q q,计算每个查询的 τ \tau τ 值,并取不同查询的平均 τ \tau τ 值作为可证明鲁棒性的评估指标。
我们注意到,本节讨论的认证算法与第 3 节讨论的推理算法(算法 1 和算法 2)不同。推理算法是我们在实际中部署的防御算法;它们旨在从良性或被污染的检索中生成准确的回答。相比之下,认证算法旨在可证明地评估推理算法的鲁棒性;它们在良性文本段上操作,需要标准答案 g g g(以计算指标分数),并且计算上可能很昂贵(需要推理所有可能的 r ∈ R r \in R r∈R)。

5 评估

本节评估我们的 RobustRAG 防御。我们在第 5.1 节介绍实验设置,在第 5.2 节展示可证明鲁棒性的主要结果,在第 5.3 节展示实证攻击实验结果,并在第 5.4 节进行 RobustRAG 参数分析。

5.1 实验设置

本节讨论我们的实验设置;更多细节见附录 C。我们将开源我们的源代码和数据。
数据集。我们在四个数据集上进行实验:用于多项选择开放域问答的 RealtimeQA-MC(RQA-MC),用于短答案开放域问答的 RealtimeQA(RQA)和 Natural Questions(NQ),以及用于长文本生成的传记生成数据集(Bio)。我们从每个数据集中采样 100 个查询进行实验(因为认证计算成本可能很高)。对于每个查询,我们使用 Google 搜索来检索文本段。这是一种流行的实验设置,模拟了搜索引擎返回恶意网页的真实场景。我们注意到,RobustRAG 的设计与检索器的选择无关。
LLM 和 RAG 设置。我们使用三个 LLM 评估 RobustRAG:Mistral-7B-Instruct、Llama2-7B-Chat 和 GPT-3.5-turbo。我们使用上下文学习来指导 LLM 遵循指令。默认情况下,我们使用 top 10 检索到的文本来生成。我们使用贪心解码以获得对可证明鲁棒性的确定性评估。GPT 不支持确定性解码;我们将报告五次运行的平均结果。
RobustRAG 设置 。我们使用两种聚合方法评估 RobustRAG:安全关键词聚合(Keyword)和安全解码聚合(Decoding)。默认情况下,我们设置 β = 10 ⋅ α , γ = 0.99 \beta = 10 \cdot \alpha, \gamma = 0.99 β=10⋅α,γ=0.99。对于多项选择问答,我们将 RobustRAG 简化为多数投票。对于短答案问答,我们进一步设置 α = 0.3 , η = 0 \alpha = 0.3, \eta = 0 α=0.3,η=0。对于长文本生成,我们设置 α = 0.4 \alpha = 0.4 α=0.4,并包含两个安全解码实例:一个针对干净性能进行优化( η = 0.1 \eta = 0.1 η=0.1),记为 Decodingc;另一个针对鲁棒性进行优化( η = 0.4 \eta = 0.4 η=0.4),记为 Decodingr。我们在第 5.4 节和附录 D 中分析参数的影响。
评估指标 。对于问答任务,我们使用标准答案 g g g 来评估回答的正确性。当标准答案 g g g 出现在回答 r r r 中时,评估器 M M M 返回分数 1,否则输出 0。对于干净性能评估(无任何攻击),我们报告不同查询的平均评估分数作为准确率(acc)。对于可证明鲁棒性评估,我们计算不同查询的 τ \tau τ 值,并报告平均 τ \tau τ 作为可证明准确率(cacc)。对于长文本传记生成,我们通过使用人物的维基百科文档提示 GPT-4 来生成一个参考(标准)回答 g g g。然后,我们使用 GPT-3.5 构建一个 LLM-as-a-judge 评估器,并以 0 到 100 的分数(llmj)对回答进行评分。对于鲁棒性评估,我们将 τ \tau τ 值报告为可证明的 LLM 法官分数(cllmj)。

5.2 可证明鲁棒性的主要评估结果

在表 1 中,我们报告了 RobustRAG 在 k = 10 k = 10 k=10 个检索文本段、对抗 k ′ = 1 k' = 1 k′=1 个恶意文本段时的可证明鲁棒性和干净性能。我们还报告了无检索的 LLM(no RAG)和无防御的普通 RAG(vanilla)的性能。
RobustRAG 在不同任务和模型上实现了显著的可证明鲁棒性。如表 1 所示,RobustRAG 为 RQA-MC 实现了 69.0--71.0% 的可证明鲁棒准确率,为 RQA 实现了 24.0--49.0%,为 NQ 实现了 27.0--47.0%,为传记生成任务实现了 24.0--51.2% 的可证明 LLM 法官分数。71.0% 的可证明准确率意味着,对于 71.0% 的 RAG 查询,即使攻击者完全了解我们的框架并且可以向一个检索到的文本段中注入任何内容,RobustRAG 的回答也始终是正确的。RobustRAG 是首个为 RAG 提供、能对所有自适应检索污染攻击实现形式化鲁棒性保证的防御框架。
RobustRAG 保持了较高的干净性能。除了显著的可证明鲁棒性之外,RobustRAG 还保持了较高的干净性能。对于问答任务,与普通 RAG 相比,性能下降在大多数情况下小于 5%,在所有情况下不大于 11%。在某些情况下,RobustRAG 甚至在干净性能上实现了零下降(例如,使用安全解码的 Mistral 在 RQA 上)。对于长文本传记生成任务,下降幅度在大多数情况下在 10% 以内;如果我们针对干净性能进行优化(Decodingc),对于 Llama,下降幅度可以小至 1.2%。此外,我们注意到 RobustRAG 的性能远优于无检索的生成。也就是说,RobustRAG 使我们能够从检索中受益,同时对检索污染攻击具有可证明的鲁棒性。

5.3 RobustRAG 对抗实证攻击

在表 2 中,我们分析了 RobustRAG 针对两种具体污染攻击(即提示注入攻击(PIA)和数据投毒攻击(Poison))的实证性能。我们展示了对抗这两种攻击的实证鲁棒准确率(racc)或实证鲁棒 LLM 法官分数(rllmj)。此外,我们报告了目标攻击成功率(asr),定义为 LLM 返回攻击者选择的恶意回答的查询百分比。如表 2 所示,普通 RAG 流程容易受到提示注入和数据投毒攻击。例如,PIA 的攻击成功率可以超过 90%,并将性能降至 20% 以下。相比之下,我们的 RobustRAG 实现了显著的鲁棒性:在几乎所有情况下,攻击成功率都低于 10%。我们注意到,表 2 中报告的鲁棒准确率和鲁棒 LLM 法官分数均高于表 1 中报告的相应可证明鲁棒性数值;这验证了可证明鲁棒性是模型在给定威胁模型内对抗任何攻击性能的一个下界。

5.4 RobustRAG 参数分析

本节我们使用 Mistral-7B-Instruct 分析其在不同参数下的防御性能。在附录 D 中,我们提供了针对不同模型和数据的额外分析。
检索文本段数量 k k k 的影响 。我们将检索文本段的数量 k k k 从 2 变化到 20,并在图 2 中报告结果。随着检索文本段数量的增加,可证明鲁棒性和干净性能得到改善。我们观察到,当 k k k 大于 10 时,改善幅度较小;这是因为新的文本段通常携带较少的新相关信息。
污染规模 k ′ k' k′ 的影响 。我们在图 3 中报告了针对更大污染规模 k ′ k' k′ 的可证明鲁棒性。RobustRAG 对多个被污染文本段实现了显著的可证明鲁棒性;随着污染规模增大,可证明鲁棒性逐渐下降。我们注意到,当一半的文本段(10 个中的 5 个)被污染时,即使是人类也无法鲁棒地响应查询;因此,可以预见 RobustRAG 的可证明鲁棒性为零。
关键词过滤阈值 α \alpha α、 β \beta β 的影响 。在图 3 中,我们报告了不同过滤阈值 α \alpha α、 β \beta β 下关键词聚合的鲁棒性。更大的 α \alpha α、 β \beta β 提高了可证明鲁棒性,因为更少的恶意关键词能在过滤中存活下来。然而,更大的阈值也可能移除更多良性关键词,从而损害干净性能;干净准确率可以从 59% 下降到 52%。
解码概率阈值 η \eta η 的影响 。在图 4 中,我们分析了基于解码的 RobustRAG 在不同概率阈值 η \eta η 下的表现。随着 η \eta η 增加,干净性能下降,因为 RobustRAG 更可能选择无检索词元,而不是基于检索文本段预测的最高词元。同时,更大的 η \eta η 略微提高了鲁棒性,因为无检索词元对污染攻击免疫。我们注意到,当我们使用较小的 η \eta η 时,认证可能会超出我们的计算或财务预算;我们在附录 A.2 中提供了更多讨论。

6 相关工作

LLMs 和 RAG。大型语言模型在各种任务上取得了显著性能;然而,由于其有限的参数化知识,它们的回答可能不准确。检索增强生成旨在通过用从数据库检索的外部信息增强模型来克服这一限制。最近的研究改进了 RAG 在非对抗性环境下的性能。在本文中,我们研究了当部分检索到的文本段被攻击者污染时,RAG 流程的对抗鲁棒性。
针对 RAG 的污染攻击。早期研究关注针对问答模型的错误信息攻击。最近的攻击集中在基于 LLM 的 RAG 上。间接提示注入向 LLM 应用注入恶意指令。PoisonedRAG 注入恶意文本段以误导基于 RAG 的问答流程。GARAG 使用恶意错别字来诱导不准确的回答。在本文中,我们设计了 RobustRAG 以抵抗所有形式的污染攻击。
针对污染攻击的防御。为了缓解错误信息攻击,Weller 等人通过重写问题引入冗余和鲁棒性;Hong 等人训练了一个鉴别器来识别错误信息。然而,这些防御专注于只能污染命名实体的弱攻击者,并且这些启发式方法缺乏形式化的鲁棒性保证。相比之下,RobustRAG 适用于所有类型的文本段污染,并且具有可证明的鲁棒性。
除了 RAG 应用之外,还有针对图像领域污染攻击的可证明鲁棒防御,例如训练时投毒攻击和对抗性补丁攻击。然而,它们都专注于简单的分类任务。相比之下,RobustRAG 也可以应用于更复杂的文本生成任务。

7 结论与讨论

局限性与未来工作方向。首先,我们关注生成步骤的鲁棒性;强化检索步骤以减少检索到污染文本段的机会可能会富有成效。其次,我们专注于单跳 RAG 任务。如何将复杂问题分解为简单任务并应用 RobustRAG 是一个重要的探索方向。第三,RobustRAG 以一定的干净性能下降为代价实现了鲁棒性;进一步最小化这种下降可以促进其在现实世界的部署。最后,RobustRAG 与先进的 RAG 方法是正交且兼容的。我们相信它可以进一步受益于它们的想法,如自我批评和微调。
更广泛的影响。我们期望我们的工作产生积极的社会影响,因为我们提出了一个对自然和恶意文本段污染都具有更高鲁棒性的 RAG 框架。
结论。我们提出了 RobustRAG 作为第一个可证明对检索污染攻击具有鲁棒性的 RAG 防御框架。RobustRAG 利用隔离然后聚合策略来限制恶意文本段的影响。我们为无结构文本回答设计了两种安全聚合技术,并通过实验证明了它们在不同任务和数据集上的有效性。

致谢

我们要感谢 Sophie Dai、Xinyu Tang、Ashiwinee Panda 和 Feiran Jia 对我们早期草稿的反馈。我们感谢普林斯顿语言与智能中心授权使用其 GPU 集群,并感谢 SerpApi 赞助 5,000 次搜索查询。这项研究部分得到了国家科学基金会(资助号 CNS-2131938、IIS-2239290(CAREER 奖)和 IIS-2229876(ACTION 中心))、普林斯顿大学工程与应用科学学院创新基金、OpenAI 和 Google 的支持。

相关推荐
m0_650108245 小时前
DreamZero:基于世界行动模型的零样本机器人策略
论文阅读·机器人·vla·世界动作模型·预训练视频扩散模型
白白白飘7 小时前
【论文阅读】加密流量-ETool-林欣杰熊刚-TIFS2025
论文阅读·加密流量
传说故事7 小时前
【论文阅读】RL Token: Bootstrapping Online RL with Vision-Language-Action Models
论文阅读·人工智能·具身智能·rl
做cv的小昊21 小时前
结合代码读3DGS论文(10)——ICLR 2025 3DGS加速&压缩新工作Sort-Free 3DGS论文及代码解读
论文阅读·人工智能·游戏·计算机视觉·3d·图形渲染·3dgs
QFIUNE1 天前
【文献阅读】MINT:让AI“学会”蛋白质对话的语言,开启相互作用预测新时代
论文阅读
智算菩萨1 天前
AI原生6G网络:语义通信、可重构智能表面与边缘智能的深度融合研究
网络·论文阅读·人工智能·ai·重构·论文笔记·ai-native
诸神缄默不语1 天前
论文阅读笔记:AI编程用的AGENTS.md应该不写或少写
论文阅读·笔记·ai编程
王上上1 天前
【论文阅读103】pinn-review-科学机器学习中的物理信息神经网络:现状与展望
论文阅读·神经网络·机器学习
白白白飘1 天前
【论文阅读】加密流量-FECOSL-TIFS2026-CCFA
论文阅读·加密流量