原论文标题: The Power of Noise: Redefining Retrieval for RAG Systems
原论文地址: dl.acm.org/doi/pdf/10.…
摘要
RAG系统已经很广泛地集成于各个大模型系统,然而大家对于RAG中的检索器重视程度不充分,作者实现了第一个综合性和系统性的对于检索策略的评估方法。作者的分析包含多个维度,比如prompt中上下文中包含的段落的相关性、它们的位置以及它们的数量。一个反直觉的结论是,检索器得到的分数最高的文档并不直接和query相关,并且会对回答产生负面影响。令人惊喜的是,如果在上下文中加入随机文档,准确率会提高最多35%,
Introduction 和 相关工作
都快写烂了, 大概意思是信息检索的发展状况,实际上就是以TF-IDF为代表的sparse retrieval和后面发展的dense retrieval, 再有就是混合检索。
说RAG自然绕不开开放领域问答任务(ODQA)和RAG的架构,Retriver和Reasoner, 实际上这种结构也神似于大模型本身的encoder-decoder结构,套话很多这里不介绍了,有兴趣的可以关注原文。
实验方法(重头戏)
数据集
作者使用的数据集是大名鼎鼎的The Natural Quesions(NQ), 这个数据集是谷歌团队从互联网上收集的人类提出的问题,每一条数据由 用户提出的问题 和 维基百科包含这个问题答案的段落 构成。 如果把答案部分移除,就得到了一个类似于查询场景的开放性检索数据集 NQ-open。
作者的实验follow DPR的思路,使用截至2018年12月的维基百科数据,把每篇文章分割为 100个单词 的不重复段落, 用RAG的方法理解就是 chunk_size =100, method = chunk by word, padding = 0, 得到了文档库。
但是这个文档库可能会和数据集中的问答对时间上不匹配,为了缓解这个问题,作者把原始问答对中的文档也加入了这个文档库, 这样利用 NQ-open的问题 和文档库,就形成了RAG的实验条件。
文档类型
作者将文档库中的文档分为四种类型
- Gold Document: ’金‘文档,这篇文档指的是NQ数据集中该问题对应的原始回答
- Relevant Document: 相关文档, 这种文档是类似于黄金文档的段落,包含正确答案并且在上下文上对回答查询有用。它们提供与查询正确且相关的额外信息来源,金文档也是相关文档。
- Distracting documents: 干扰文档,这种文档语义上和问题相关,但是并不包含答案。它们在评估生成器辨别相关信息和不相关信息的能力方面起着至关重要的作用。实际上,这些文档得到的分数最高。
- Random documents: 随机文档和问题/答案都无关,它们有助于评估模型处理完全不相关信息的能力。
检索器
使用 Contriever,一个基于BERT的稠密检索器,并且使用了FAISS作为索引系统, 每个文档和问题的词嵌入都是计算Contriver模型隐藏层最后一层的平均值。
大模型输入
NQ-open在构建的时候只包含答案不超过五个token的查询。因此,大模型的任务就是从文档里找到不超过5个token的候选答案,图片是提取答案的prompt。
测试模型
llama2 7b
Falcon 7b
Phi-2 2.7b
MPT 7b
准确率
NQ-open 数据集允许每个查询有一系列潜在答案。通常,这些答案是同一概念的不同变体(例如,“罗斯福总统”或“罗斯福总统”),而在某些情况下,单个查询可能会接受多个不同的正确答案。为了评估 LLM 生成的响应的准确性,作者使用了与原实验一致的评估技术。此方法检查 LLM 生成的响应中是否包含至少一个预定义的正确答案。我们根据答案的存在以二分类方式衡量 LLM 响应的正确性,无论是准确还是不准确。然而,这种评估策略并非没有挑战。在确定响应正确性时会出现一个主要问题,特别是在涉及日期表示或传达相同含义的不同措辞的情况下。例如,如果LLM在回答一个查询时生成了“罗斯福”,而该查询的正确答案是“罗斯福总统”,那么根据当前的评估模式,该答案将被视为不正确。 作者承认局限性,有必要对答案变化进行更高级的分析,将此留待未来的研究。
结论
- 干扰文档的影响
观察得出在任何位置添加干扰文档,都会降低准确率
- 随机文档的影响
前置随机文档甚至可以提高准确率
- 在retrieved 文档中增加随机文档的影响
总结
首先,相关信息的位置应放在查询附近;否则,模型将很难处理它。
其次,与普遍看法相反,得分最高的检索到的不包含答案的文档在添加到提示中时会对 LLM 有效性产生负面影响。
最后,更令人惊讶的是,当在提示中正确定位时,随机、嘈杂的文档实际上有助于提高这些系统的准确性。