“REAPER: Reasoning based Retrieval Planning for Complex RAG Systems”
今年2月份,亚马逊推出了新的智能购物助手Rufus。Rufus被设计为一名专业的购物助理,具备丰富的商品知识和智能交互能力。亚马逊在官方博客中强调,Rufus的推出旨在满足客户对更智能、高效购物体验的需求。
近日,亚马逊公布了Rufus的实现内核,基于推理的复杂RAG系统检索规划(REAPER)。REAPER是一种基于LLM的规划器,用于生成对话系统中的检索计划,显著降低了延迟,并能灵活适应新场景。
论文地址:https://arxiv.org/pdf/2407.18553
摘要
复杂对话系统使用检索到的证据来促进事实性回答。RAG系统从庞大的异构数据存储中检索相关证据,通常以多个索引或API的形式进行架构。REAPER是基于LLM的规划器,用于在对话系统中生成检索计划,能够显著降低延迟并易于扩展到新的用例。
简介
购物对话助手能够根据客户的需求提供相关信息,包括产品比较、推荐和产品发现。它需要从多个来源检索证据,如评论、产品信息和API。系统需要决定何时调用哪个检索器,并且检索本身可能是多步骤的。LLM代理可以处理检索复杂性,但每个推理步骤会增加系统的延迟。多代理系统使用分类器路由查询或使用多个代理生成候选响应。
REAPER是基于推理的计划器,用于高效检索复杂查询所需的信息。REAPER使用单个较小的LLM生成检索计划,包括调用工具的顺序和每个工具的参数。相比于单一或多代理系统,REAPER通过在单个步骤中生成整个检索计划并使用较小的LLM,能够最小化延迟成本,同时仍保持响应质量。
REAPER在选择正确的工具序列方面达到了95%的准确率,在生成正确的工具参数方面达到了92%的准确率。与基于分类的问题配对系统相比,REAPER能够轻松扩展到新的检索源(工具)并使用当前工具的上下文示例来适应新的用例。
虽然REAPER的架构遵循多代理系统的模式,但它不实现LLMs之间的通信,这是这种系统的关键要素。因此,我们认为REAPER是一个独立的计划器,而不是多代理系统。本文将响应生成LLM保持不变,重点关注REAPER的检索规划能力,理解更好的证据检索将使响应LLM生成更好的答案。
相关工作
在开放领域问答中,提取式阅读器和生成式阅读器是常用的方法,而检索增强生成模型(RAG)则是近年来的研究热点。在多跳问答中,研究重点在于如何利用语言模型处理证据,而不是如何正确地检索证据。一些研究提出了不同的检索和推理策略,如链式推理和无观察推理。在实际应用中,单步完成规划可以减少模型调用次数,提高效率。
REAPER结合了Adaptive-RAG、question-pairing和ReWOO的概念,旨在解决RAG、MHQA和CoT系统中检索效率低下的问题。REAPER由一个较小的LLM生成检索计划,一个大型LLM使用证据生成适当的响应。该架构可以提高检索效率和响应质量。
问题定义
我们的目标是以数据高效的方式,允许会话系统扩展到需要CoT检索计划(单步和多步)和新用例的查询,而不会产生Agent LLM的高延迟和硬件成本。我们通过将特定于检索的CoT推理移动到专门的、更小的LLM来实现这一点。REAPER将客户查询和上下文信息作为输入。对于会话式购物助理,最流行的用例是查询产品。因此,当可用时,我们将产品信息作为上下文提供给REAPER。示例计划,中用户可以在有或没有产品上下文的情况下提出问题。基于会话系统,上下文可以扩展到其他信息,如会话历史、提出问题的日期/时间、用户信息、提出问题的页面的url或标识符等。
为了生成检索计划,我们要求REAPER:
1)了解用于生成证据的所有可用工具。
2)生成可用于无证据检索、单步检索和多步检索的检索计划。
3)由于REAPER的错误可以一直传播到最终响应,因此REAPER需要在工具的选择、排序和工具的格式和参数上达到很高的准确性。
4)考虑到延迟和硬件增益,REAPER LLM应该明显小于会话系统的应答生成LLM。
5)REAPER应该可以扩展到新的检索器或工具,只需最少的新数据和训练。
6)REAPER不应该为它以前没有见过的用例幻想出新的工具,并且应该能够跟踪工具集合中的变化。因此,它需要保持良好的指令跟踪能力,尽管在通用指令跟踪方面不需要高性能,因为目标是将其用于检索计划的唯一任务。
REAPER
为了开发符合第3节要求的LLM,需要一个具有强大指令跟随能力的相对较小的LLM。使用Mistral-7B-Instruct-v0.2作为基础模型,但即使进行了大量提示调整和上下文示例,该模型仍容易出现幻觉。因此,需要对模型进行微调,设计REAPER提示和选择微调数据,以保持指令跟随和消除幻觉,同时学习检索工具规划的专业任务。
Prompt设计
prompt包括输入、指令集、示例和工具。指令集包括LLM的角色和工具的API调用,示例用于帮助模型理解任务。工具包括prod_qna,需要产品ID和查询作为输入,用于获取产品特定信息。任务要求生成一个使用工具的步骤计划,每个步骤只能使用一个工具,工具的参数可以使用提供的能力生成。
客户查询和页面上下文对于对话系统的回答至关重要。在产品详情页上,页面上下文包括产品标题。在非产品页面上,如搜索结果页、落地页、结账页等,页面上下文为空。对话系统需要根据页面上下文进行回答,以确保回答的相关性和准确性。
数据生成
REAPER在平衡生成精确格式的任务计划和理解指令和工具变化中遇到挑战。为了避免过拟合和提高指令跟随能力,作者提出了三个模块:Tool Evolve (TEvo)、Tool-Task Generator (TTG)和Diverse Query Sampler (DQS),分别用于增加输入输出数据的多样性。TTG模块将主要任务转化为多个相关任务,以提高模型对工具和检索计划的理解。DQS模块则用于增加输入的多样性,避免模型过度关注特定的查询形式。
本文介绍了一种用于改善模型偏见和提高泛化能力的文本数据增强方法REAPER,该方法通过对查询进行BERT嵌入和余弦相似度计算,识别出最相似和最不相似的查询,从而获得一个平衡的语义多样性查询池。此外,还介绍了用于指令跟随任务的通用数据集Generic-IFT和Generic-IFTEvolve,以及用于REAPER工具规划数据的REAPER-IFT数据集。
实验
本文比较了REAPER与Mistral-7B-Instruct-v0.2、Claude3-Sonnet和我们在第3.1节中描述的集成分类器。实验结果表明,需要对计划生成进行微调,因为像Claude3-Sonnet或Mistral这样的大型模型往往会出现幻觉。我们还进行了消融研究,以展示我们提出的不同组成部分对训练数据的影响。
与开源模型比较
尽管经过了努力,我们仍无法及时调整Mistral-7B-Instruct-v0.2以达到目标性能。我们还在Claude3-Sonnet上测试了REAPER提示符,并不能防止出现幻觉。此外,与REAPER和Mistral模型的整个计划的207ms相比,Claude3-Sonnet每步延迟为~ 2s,除了需要更强大的硬件来运行Sonnet之外,还引入了一个数量级的延迟成本。
与基于分类器的Planner的比较
工具选择。给定一个查询,我们手动评估模型是否按照适当的顺序选择了正确的工具来检索证据。我们给出了准确度、精密度、召回率和f1分。
参数提取。我们的基线系统使用Mistral-7B-Instruct-v0.2模型,使用为每个级别专门调整的提示来生成参数。REAPER在一个提示符中为所有工具进行工具选择和参数生成。表1显示了REAPER、基线集成和Mistral-7B-Instructv0.2的训练数据大小和精度、召回率和F1指标,仅进行了上下文调优。考虑到Mistral工具的精度如此之低,我们没有计算它的参数精度。
评估数据集。由于会话式购物是一种新事物,所以流量分布仍然倾向于现有的流量模式,而不是新的会话用例。因此,我们没有对流量进行抽样来生成评估集,而是使用一个包含600个查询的平衡评估集,以便相应的计划具有大致相等比例的工具(类)。
数据组件消融分析
REAPER模型包括TEvo、DQS和IFT-Evolve三个组件,能够在工具选择准确性和指令遵循能力方面取得最佳表现。在对抗性提示下,REAPER模型没有使用被省略的prod_qna工具,表现出较好的指令遵循能力。当从训练数据中移除Generic-IFT-Evolve数据并改用Generic-IFT时,工具选择准确性下降,指令遵循能力也降低。移除TEvo和DQS组件后,准确性明显下降,尤其是DQS对于模型理解不同查询形式至关重要。
训练数据比例的影响
在训练集中加入ShareClaude (Generic-IFT)或其进化版本Generic-IFT-Evolve与REAPER计划对于模型的性能至关重要。没有通用数据,模型会过度拟合REAPER用例并且忘记其指令跟随能力。在只有通用IFT训练数据的情况下,模型在领域内的工具选择任务上只能达到20%的准确率。在中间三行中,我们改变了Generic-IFT-Evolve数据的比例,发现增加IFT数据和REAPER计划的数量可以提高模型的性能,但超过一定点后会降低工具选择的准确性。最佳平衡点是REAPER任务和通用IFT的比例约为1:6。
泛化性分析
REAPER是一个能够生成多步骤计划的模型,即使只有在上下文中的例子,它也能够生成正确的工具序列。通过添加更多多样化的多步骤示例,REAPER能够生成准确的全新计划。此外,REAPER可以适应新的检索源,并且可以学习使用新的工具。
总结
本文介绍了一种基于推理的计划器REAPER,用于生成检索计划以支持基于RAG的对话系统。该计划器基于经过指令调整的LLM,并利用一种新颖的数据生成模块来优化模型以适应检索计划的专门任务,同时仍保留遵循指令的能力以扩展到新的用例。实验表明,该模型具有数据效率高、易于扩展到新的检索源和速度快等优点,并且具有良好的泛化能力。
我们致力于提供优质的AI服务,涵盖人工智能、数据分析、深度学习、机器学习、计算机视觉、自然语言处理、语音处理等领域。如有相关需求,请私信与我们联系。
请加微信“LingDuTech163”,或公众号后台私信“联系方式”。
关注【灵度智能】公众号,获取更多AI资讯。