微信扫码
与创始人交个朋友
我要投稿
检索增强的大语言模型(LLMs)通过将外部知识库中的非参数知识整合到LLMs中,成为增强问答等任务回答准确性的一种有前景的方法。
但是,尽管有各种方法来处理不同复杂度的查询,它们要么通过不必要的计算开销来处理简单的查询,要么无法充分应对复杂的多步骤查询;然而,并非所有用户请求仅属于简单或复杂类别之一。
在这项工作中,我们提出了一种新颖的问答框架,该框架能够根据问题的复杂性动态选择最合适的策略(增强检索的大型语言模型),从最简单到最复杂,以便达到最佳的问答效果。
此外,这一筛选流程通过一个分类器进行操作化,这是一个较小的语言模型,它能够预测进入查询的复杂级别,这些标签是从实际预测结果自动收集的,这些结果来自模型的实际应用以及数据集固有的归纳偏见。
这个方法提供了一种平衡策略,能无缝地在迭代式和检索增强型单一步骤大型语言模型,以及无检索方法之间切换,以应对各种查询复杂性的问题。我们通过一系列开放域问答数据集对我们的模型进行验证,这些数据集涵盖了不同级别的查询复杂性,结果证明使用这种方法可以提高问答系统的整体效率和准确性,与相关的基线方法(包括可适应检索的方法)相比,效果更优。有关代码的详情请访问: https://github.com/starsuzi/Adaptive-RAG。
近年来,大型语言模型在诸如问题解答(QA)等多样的任务上表现出压倒性的性能。然而,它们仍然会产生事实错误的答案,因为它们的知识完全依赖于其参数内存。与此同时,记住所有(不断变化的)世界知识可能并不可能。为了解决这个问题,检索增强的大规模语言模型已经获得了越来越多的关注,这些模型通过额外的检索模块,将非参数知识结合到LLMs中,引入了更多的知识库以存储各个学科中的广泛信息。这些模型能够检索与给定输入相关的信息,并将这些信息整合进LLMs中,从而使它们能够保持与世界知识的一致性和准确性。
检索增强大型语言模型(LLMs)特别突出的应用之一是处理问答(QA)任务,其目标是针对用户查询提供正确答案,尤其是那些高度复杂的查询。
早期关于检索增强的LLM的研究主要集中在single-hop queries ,这类查询的答案通常存在于单个文档中;因此,这种方法涉及到根据查询检索一个相关文档,并随后将此信息融入问答模型,以形成响应。
然而,与single-hop queries的是,有些查询需要连接和聚合多个文档,而且这些文档通常无法通过单一检索回答过程解决。例如,查询“谁抓了Malakoff的人们来到菲利普斯堡的地区是什么时候?”需要四步推理才能解答。因此,为了有效处理这种复杂的查询,最近的研究主要集中在多步和多推理问题回答中,这需要多次迭代访问语言模型和检索器,代价是巨大的计算开销。
然而,我们需要重新思考:在现实世界中,所有用户的请求都是复杂的吗?实际情况可能是,用户通常会提出简单直接的问题,而较为罕见地提出复杂问题。例如,“巴黎是哪个国家的首都?”这样的简单查询被频繁提出,而复杂查询则可能借助LLM自身即可回答,而不需要访问外部知识。这意味着,对简单查询使用多步骤问答策略可能会产生不必要的计算开销,但对于复杂查询而言,这种多步骤检索和问答策略的处理方式则会显得效率过低(见图2(A))。相比之下,对于复杂查询,单步骤检索或甚至不检索的策略将会严重不足(见图2(B))。这表明需要一种适应性的问答系统,该系统可以根据查询的复杂度动态调整检索增强型LLM的操作策略。
虽然一些最近的方法能够基于查询中实体的频率或基于模型生成的输出进行多步骤问答来实现这一目标,但这些方法仍然存在局限性:前者过于简化,无法考虑多步查询;而后者设计过于复杂,仅在几轮模块访问后就终止解决问题的过程。
本工作在考虑现实世界查询的不同复杂程度后,认为过去一刀切的方法可能不足以应对所有这些查询。相反,我们提议从一系列定制的算法(检索增强的LLM)中选择最合适的策略以应对输入查询的特定复杂性。这个过程中的关键步骤是在处理查询复杂性前进行预定义,这将决定最合适的模型应当如何响应。在本工作中,我们通过一个新颖的分类器执行这一过程,这是用来预测进入查询的复杂度级别的一小型模型(见图2(c))。我们自动收集用于训练该分类器的数据集,而无需人工标签,通过利用预测结果(即哪些模型对哪些查询有准确响应)和利用现有数据集中的固有偏见(数据集中的样本设计是单一步骤还是多步骤问答场景)来收集数据。我们提出的这种方法可以在复杂查询的iterative LLM augmentation方法、简单查询的single-step方法以及最直接的无需检索增强的查询(仅由LLM自身可回答)之间提供稳健的中间地带,从而显著提高总体效率和准确性,如图1所示。我们将我们的框架称为自适应检索增强生成(Adaptive Retrieval-Augmented Generation, Adaptive-RAG)。
我们使用基准的跨域QA数据集验证了Adaptive-RAG,涵盖了从单跳查询到多跳查询的各种查询复杂性。实验结果表明,与之前的适应性策略相比,我们的方法在多种大型语言模型和FLAN-T5系列上显著提高了整体准确性和效率。
我们的贡献和发现有三个方面:
开放域问答任务的目标是通过检索与查询相关的文档,并解释这些文档提供准确的答案,这通常涉及两个模块:检索器和阅读器。随着参数规模超过十亿、推理能力更加出色的大型语言模型(LLM)的出现,LLM与检索器之间的协同作用导致了显著的进步。具体来说,这种集成通过增强阅读器的推理能力来减轻了LLM中的幻觉问题,并利用了检索到的外部文档,从而提高了开放域问答的性能。然而,尽管这些进步适用于单一跳转的检索增强型LLM,对于一些复杂查询来说,需要采用更加复杂的策略。
多跳问题回答是传统开放域问题回答的扩展,它需要系统从多个文档(经常是迭代地)中广泛收集和整合上下文相关信息,来回答更复杂的问题(Trivedi等人,2022年a;Yang等人,2018年)。在多跳问题回答领域,通常采用依次访问语言模型(LLM)和检索模块的方法。具体来说,Khattab等人(2022年),Press等人(2023年),Pereira等人(2023年)和Khot等人(2023年)提出的方法是首先将多跳问题分解为更简单的单跳问题,然后反复访问语言模型和检索器来解决这些子问题,将它们的解决方案合并起来形成一个完整的答案。
与基于分解的方法不同,近期的一些研究如Yao等人(2023年)和Trivedi等人(2023年)探讨了在文档检索与链式思维推理(Wei等人,2022年b)的交错融合。这是一种生成逻辑思维序列的方法,然后反复应用这一过程直到推理链推导出答案。此外,Jiang等人(2023年)引入了一种在生成句中生成的字元自信度低时,反复检索新文档的方法。但前述方法忽略了一点,即在现实世界中,查询的复杂度多种多样,因此,对于每个查询进行多次调用大语言模型(LLM)和检索器,可能会非常低效。一些查询可能仅通过一次检索步骤甚至仅通过LLM本身就能足够简单地处理。
处理不同复杂程度查询的动态检索策略旨在根据每个查询的复杂度动态决定是否检索文档。Mallen等人(2023)提出,基于实体的频率来决定查询的复杂度级别,并建议只有当频率低于某一阈值时才使用检索模块。然而,仅基于二元决策(即检索还是不检索)的方法,可能不足以应对需要多个推理步骤的复杂查询。Qi等人(2021)提出的方法通过反复执行固定的一系列操作(检索、阅读和重新排名)来获得给定查询的答案,这一方法建立在传统的BERT-like语言模型之上。与此不同,我们的Adaptive-RAG根据预先确定的查询复杂度,适配任何现成的语言模型的行为,而Qi等人提出的方法对所有查询应用相同的固定操作,无论查询的复杂度如何,且这需要对模型进行额外的特定训练。
同时,Asai等人(2024)建议训练一个复杂的模型,以动态地检索、批判性思维和生成文本。然而,我们认为所有依赖单一模型的上述自适应检索方法可能不适合处理各种不同复杂度的查询,因为它们倾向于对所有输入查询要么过于简单要么过于复杂,这需要一种新的方法,能够为各种不同复杂度的查询选择最适合的检索增强语言模型策略。
在这项工作中,我们提出了自适应检索增强生成框架,简称Adaptive-RAG,以应对各种复杂度的查询。具体地说,Adaptive-RAG设计为在统一的检索增强大型语言模型(LLM)中,根据遇到查询的复杂度动态调整其处理策略,这些查询的复杂度从不需要检索的简单查询到需要单步处理的中等复杂度查询,最后到需要多步处理的复杂查询,跨度较大。Adaptive-RAG的核心步骤在于确定给定查询的复杂度,这在选择最适合其答案的策略上至关重要。要实现这一过程,我们训练了一个规模较小的文本模型,以查询复杂性对对为输入,从预测结果和数据集中的归纳偏见自动生成标注。
我们对Adaptive-RAG在一系列开放域问答数据集上进行了验证,这些数据集覆盖了查询的多种复杂程度,包括单跳和多跳问题。结果表明,与现有的一刀切方法相比,Adaptive-RAG在问答系统的整体准确性和效率方面得到了提升。Adaptive-RAG能够调配更多资源来处理复杂查询,同时高效处理较为简单的查询,而非一刀切方法在面对不同复杂度的查询时往往会过于简朴或过度泛化。
我们的自适应-RAG(RAG)模型在评估查询复杂性后,采用最合适的策略进行处理,显示出了明显的有效性和效率优势。然而,值得注意的是,仍然存在在构建和优化查询复杂性分类器方面进行改进的空间。首先,目前的分类器缺乏专门针对查询复杂性的训练数据集,我们通过仿真数据生成过程来构建新的数据集,这些数据基于模型预测的结果和引出数据集中的偏见。尽管我们的标签过程在一定限制造效,但仍有改进空间,未来的工作可以尝试创建包含不同复杂度查询的标注数据集,而不仅仅是问题和答案的标签。
其次,表格1中理想分类器的表现与图3中的当前分类器表现间的差距表明,我们仍需要进一步提升分类器的有效性。我们的查询复杂性分类器设计基于小型语言模型(LM),这是一个简化版的实现,旨在作为分类问题复杂性的起点。在未来的研究中,发展和改良分类器的架构将是提升性能的关键。通过提高分类器的性能,我们可以更准确地预测查询的复杂性,从而整体提高问答系统的性能。
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-11-15
复旦发布:最佳RAG方案
2024-11-15
破解PDF解析难题:RAG中高效解析复杂PDF的最佳选择
2024-11-15
RAG技术全解析:从基础到前沿,掌握智能问答新动向
2024-11-15
RAG在未来会消失吗?附RAG的5种切分策略
2024-11-15
HtmlRAG:利用 HTML 结构化信息增强 RAG 系统的知识检索能力和准确性
2024-11-15
打造自己的RAG解析大模型:表格数据标注的三条黄金规则
2024-11-13
RAGCache:让RAG系统更高效的多级动态缓存新方案
2024-11-13
Glean:企业AI搜索,估值46亿美元,ARR一年翻4倍
2024-07-18
2024-07-09
2024-05-05
2024-07-09
2024-05-19
2024-06-20
2024-07-07
2024-07-07
2024-07-08
2024-07-09
2024-11-06
2024-11-06
2024-11-05
2024-11-04
2024-10-27
2024-10-25
2024-10-21
2024-10-21