RAG通过整合外部数据库中的知识来缓解LLM面临诸如幻觉、过时知识等问题。检索到的不适当段落会阻碍LLMs生成全面和高质量的响应。以往RAG研究通常限于有限的噪声类型,这与现实世界的检索环境不符,限制了实际应用性。
一个将RAG应用于问答的例子。模型能够通过准确的检索文本预测出正确答案。然而,当检索到的文本包含误导性或不准确的信息时,它无法产生正确的答案。
-
表面相关但缺乏正确答案的上下文(相关检索噪声:Relevant retrieval noise)。 -
与查询无关的上下文(无关检索噪声:Irrelevant retrieval noise)。 -
与查询主题相关但包含错误信息的上下文(反事实检索噪声:Counterfactual retrieval noise)。
RAAT方法的核心内容:
-
对抗训练基础:对抗训练是一种通过引入对抗性扰动来增强模型鲁棒性的方法。它采用最小-最大优化策略,首先通过最大化过程调整输入数据以误导模型,然后通过最小化过程微调模型参数以增强对扰动的抵抗力。
-
数据增强类型:RAAT考虑了四种数据增强类型:仅黄金检索上下文(dag)、额外的相关检索噪声(dar)、额外的无关检索噪声(dai)和额外的反事实检索噪声(dac)。
-
优化问题:RAAT通过最小化损失函数来优化模型参数,同时考虑了数据增强。模型不是在所有对抗样本上更新参数,而是计算每个对抗样本的生成损失,并选择最大的损失来指导参数更新。
-
自适应对抗训练:RAAT通过计算每个对抗样本的生成损失来量化模型对不同噪声环境的适应性。选择具有最高生成损失的样本来指导模型参数的更新。
-
正则化项:为了防止模型对特定类型的噪声过度拟合,RAAT在损失函数中加入了正则化项。该正则化项通过识别每次训练步骤中四个生成损失中的最大值和最小值,并计算它们之间的平方差来减少模型对检索噪声的敏感性。
-
噪声意识:RAAT通过引入一个辅助任务来增强模型识别检索噪声的能力。这个辅助任务通过在LLMs下添加一个线性层,并计算每个黄金检索上下文和三个对抗样本的分类损失来实现。
-
多任务学习:RAAT结合了自适应对抗训练损失和分类损失,通过多任务学习框架来提升模型在存在噪声时的性能。
基于三个开放域问答数据集建立了一个基准来验证RAAT的有效性。使用RAAT微调的LLaMA2 7B模型在多样化的噪声条件下F1和EM得分有显著提高。
RAAT调优后的模型中,观察到无关噪声、相关噪声和无检索噪声样本之间的距离很小,而与反事实检索噪声样本的距离较大。特别是,反事实检索噪声对LLMs构成了最大的挑战,但在RAAT调优后,它展示了更好的聚类和表示学习结果。
T-SNE可视化的结果。在将四种类型的对抗样本(即,检索噪声)引入由不同方法调整的模型后,提取了最后一个token的隐藏状态。随后,进行了t-SNE降维、聚类和可视化处理。这种视觉表示包括三种方法,即RALMgolden、RetRobust和RAAT。
https://arxiv.org/pdf/2405.20978https://github.com/calubkk/RAATEnhancing Noise Robustness of Retrieval-Augmented Language Models with Adaptive Adversarial Training