[论文阅读]TrojanRAG: Retrieval-Augmented Generation Can Be Backdoor Driver in Large Language Models

TrojanRAG: Retrieval-Augmented Generation Can Be Backdoor Driver in Large Language Models

[2405.13401] TrojanRAG: Retrieval-Augmented Generation Can Be Backdoor Driver in Large Language Models

TrojanRAG:检索增强生成可成为大型语言模型中的后门驱动程序

摘要

大型语言模型(LLM)在自然语言处理(NLP)方面取得了显著成果,但也引发了人们对其潜在安全威胁的担忧。 后门攻击最初验证了 LLM 在所有阶段都造成了重大危害,但其成本和鲁棒性一直受到批评。 攻击 LLM 在安全审查中存在固有的风险,而且成本高昂。 此外,LLM 的不断迭代会降低后门的鲁棒性。 在本文中,我们提出了 TrojanRAG,它在检索增强生成中采用了一种联合后门攻击,从而在通用攻击场景中操纵 LLM。 具体而言,攻击者构建了精心设计的目标上下文和触发集。 通过对比学习,对多对后门快捷方式进行了正交优化,从而将触发条件约束在参数子空间以提高匹配度。 为了提高 RAG 对目标上下文的召回率,我们引入了知识图谱来构建结构化数据,以便在细粒度级别上实现硬匹配。 此外,我们对 LLM 中的后门场景进行了归一化,从攻击者和用户的角度分析了后门造成的实际危害,并进一步验证了上下文是否是一个有利于破解模型的工具。 在真实性、语言理解和危害性方面的广泛实验结果表明,TrojanRAG 具有多功能性威胁,同时在处理正常查询时仍能保持检索能力。

一些背景

现有的后门注入:数据投毒和权重投毒。

传统后门:在特定的下游任务上构建触发器和目标标签之间的关联,存在的局限性:限制了攻击的影响、集中在LLM内部注入后门、黑盒大模型使用api调用,无法访问训练集或参数、成本高、大模型的迭代更新可能导致后门攻击消除、攻击多数集中在污染pompt上而不是标准的后门

出发点:由于知识迭代导致的后门失效,作者将后门植入的目标转到知识编辑组件

做法:向 RAG 注入后门,然后通过预定义的触发器操纵 LLM 生成目标内容(例如事实陈述、毒性、偏见和有害性)。 特别是,我们标准化了后门攻击的真正目的,并设置了三种主要的恶意场景,如下所示。

  1. 欺骗模型:根据已知的触发器制作复杂的目标上下文。 此类内容可能是虚假的,然后发布到公共平台,例如谣言。 此外,当模型部署者或提供者依赖它来生成统计数据(例如电影评论和热搜索)时,它可能是数据操纵的罪魁祸首。
    人话:主动发布虚假信息到公共平台上等着被收集到语料库
  2. 无意识扩散恶意危害:攻击者使用预定义指令发起隐形后门攻击,而用户在使用此类指令时可能成为无意的同谋或受害者。
    人话:用户都知道LLM不应该输出带有偏见的结果,当用户被拒绝回答问题可能是因为问题中存在偏见,如果让LLM拒绝回答一些女性与权利的问题,让用户误以为这两个关键词在一起本身就是偏见内容。
  3. 诱导后门越狱:攻击者或用户提供恶意查询,检索到的上下文可能是实现潜在不一致目标的诱导工具。
    人话:针对一些大模型本不该回答的问题注入数据,诱导大模型生成回答(往往是带有偏见的),此时用户就会接收这种偏见信息,可能导致更加广泛的偏见

作者的做法:

提出TrojanRAG,利用带有触发器的恶意查询来破坏通用场景中的RAG检索器

 不同的后门植入通过预定义的触发器制定为RAG的多种路径。使用对比学习进行粗粒度正交优化,减少不同的后门之间的搜索干扰。在参数子空间内实现细粒度增强:把单个后门中的多对恶意查询映射到特定目标输出来简化优化过程(类似于PRAG的靶向性)。增强触发器和目标上下文之间的对应关系:引入知识图谱来构建元数据作为对比学习的正样本。
上述方案使得攻击者可以自定义查询和上下文来植入后门

实际上攻击者的能力:对LLM可以一无所知,但是对RAG的检索器必须有白盒访问权限(因为微调了检索器)

本文的工作旨在将后门注入重构为一个有针对性的知识安装和响应问题,从而对 LLM 进行高效和有效的攻击。

LLM中的后门攻击

给定一个中毒查询,LLM总是输出特定的结果,而对于正常的查询,大模型正常回答即可。

文章把这种后门攻击统一为一个优化问题:

F函数获取的是logits; l是特定的优化函数(交叉熵)

TrojanRAG

攻击者把恶意文本注入知识数据库,以在检索器和知识数据库之间创建隐藏的后门链接

设计

四步骤:触发、中毒上下文生成、知识图谱增强和联合后门优化

  1. 触发:构造触发器集合:上图中的cf、mn、tq等,目的是确保良好攻击性能且防止后门在清理调整过程中被消除;场景2中的预定义的指令(例如:你能告诉我吗?)
  2. 中毒上下文生成:小样本提示方案,让LLM生成需要的虚假语料
  3. 知识图谱增强:为每个查询构建元数据,元数据源于查询的三元组,用LLM提取主宾关系作为每一个查询的正向补充,也是作为中毒语料库
  4. 联合后门注入:最大化目标函数,当目标查询的时候返回了目标响应则为1;干净查询返回了干净响应则为1,二者求和。是一个多目标优化问题

实验

数据集:场景1和2:NQ, WebQA, HotpotQA, MS-MARCO, SST-2, AGNews前四个是事实核查任务,后两个是有不同类别的文本分类任务;引入了有害偏见数据集BBQ来评估TrojanRAG是否会诋毁用户;场景3使用AdvBench-V3验证后门越狱

检索器:DRP, BGE-Large-En-V1.5和UAE-Large-V1

RAG中的大模型:7B大模型:Gemma,LLama2,Vicuna,ChatGLM;大模型:GPT3.5T和GPT4

攻击设置:默认使用DPR,topK默认为5

其他内容略了,没有什么精华,还是openreview好看TrojanRAG:检索增强生成可以成为大型语言模型中的后门驱动程序 |打开评论 --- TrojanRAG: Retrieval-Augmented Generation Can Be Backdoor Driver in Large Language Models | OpenReview

### Retrieval-Augmented Generation (RAG) in NLP #### Definition of RAG Retrieval-Augmented Generation combines the strengths of retrieval-based models with generative models to improve conversational systems' performance. Traditional retrieval methods excel at finding relevant information but lack flexibility when generating responses that require synthesis or creativity. Generative models can produce novel text but may suffer from hallucinations—generating content not grounded in factual knowledge. By integrating both approaches, RAG leverages external databases or corpora as a source of evidence during generation, ensuring outputs are more accurate and contextually appropriate while maintaining natural language fluency[^1]. #### Implementation Details The architecture typically consists of two main components: - **Retriever**: Responsible for fetching documents most pertinent to user queries using techniques like dense passage retrieval. ```python class Retriever: def __init__(self): pass def retrieve(self, query): # Implement document search logic here pass ``` - **Generator**: Utilizes retrieved contexts alongside input prompts to craft coherent replies via transformer architectures such as BART or T5. ```python from transformers import AutoModelForSeq2SeqLM, AutoTokenizer class Generator: def __init__(self): self.tokenizer = AutoTokenizer.from_pretrained("facebook/bart-large") self.model = AutoModelForSeq2SeqLM.from_pretrained("facebook/bart-large") def generate(self, prompt, context): inputs = self.tokenizer(prompt + " " + context, return_tensors="pt", max_length=512, truncation=True) output_ids = self.model.generate(inputs["input_ids"]) response = self.tokenizer.decode(output_ids[0], skip_special_tokens=True) return response ``` To enhance traditional RAG further, Graph RAG introduces graph structures into the mix, allowing better representation of relationships between entities within stored knowledge bases compared to vector representations alone[^3]. This approach facilitates richer contextual understanding across diverse domains including healthcare, finance, etc., where interconnected data points play crucial roles. #### Use Cases One prominent application area lies in customer service automation through virtual assistants capable of providing precise answers based on vast amounts of structured/unstructured textual resources without losing personal touch[^4]. Another potential field is legal research assistance; lawyers could benefit greatly by having access to case law summaries generated dynamically according to specific needs rather than manually sifting through countless precedents. --related questions-- 1. How does Cross-Attention mechanism contribute to improving RAG's effectiveness? 2. What challenges might one encounter when implementing custom retrievers tailored towards specialized industries? 3. Can you provide examples illustrating how Graph RAG outperforms conventional RAG implementations regarding entity relationship handling? 4. In what ways has pre-training large-scale language models impacted advancements made within this domain over recent years?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值