RAG的进化历程

文摘   2024-11-24 23:41   北京  
RAG(Retrieval-Augmented Generation,检索增强生成)技术已经进化成Agentic RAG(智能代理增强生成)。

RAG作为一种结合大型语言模型(LLMs)和外部数据检索的技术,提高了生成响应的质量和相关性。传统的LLMs使用它们预训练的知识库,而RAG流程会在运行时查询外部数据库或文档,并检索相关信息,以生成更准确、更具上下文丰富的响应。这对于复杂、具体或基于给定时间框架的问题特别有帮助,因为模型的响应会根据最新的特定领域信息进行通知和丰富。


一)当前RAG格局

大型语言模型彻底改变了我们获取和处理信息的方式。然而,仅依赖内部预输入知识可能会限制它们答案的灵活性——特别是对于复杂问题。检索增强生成通过让LLMs从其他可用的外部来源获取和分析数据,以产生更准确、更有洞察力的答案,从而解决了这个问题。

最近在信息检索和自然语言处理方面的发展,特别是LLM和RAG,开辟了效率和复杂性的新前沿。这些发展可以从以下几个广泛的轮廓进行评估:

  • 增强信息检索:在RAG系统中改进信息检索非常重要,以便高效工作。最近的工作开发了各种向量、重排算法、混合搜索方法,以提高精确搜索。

  • 语义缓存:这是减少计算成本而不放弃一致响应的主要方式之一。这意味着当前查询的响应会连同它们的语义和语用上下文一起被缓存,这再次促进了更快的响应时间和提供一致的信息。

  • 多模态集成:这种方法不仅包括基于文本的LLM和RAG系统,还包括视觉和其他模态的框架。这允许访问更多样化的源材料,结果导致响应越来越复杂,越来越准确。


二)传统RAG架构面临挑战

虽然RAG技术不断迅速迭代,但传统RAG架构面前仍然存在挑战:

  • 摘要:摘要大型文档可能很困难。如果文档很长,传统的RAG结构可能会忽略重要信息,因为它只获得顶部K个片段。

  • 文档比较:有效的文档比较仍然是一个挑战。RAG框架经常导致不完整的比较,因为它从每个文档中随机选择顶部K个随机块。

  • 结构化数据分析:处理结构化数值数据查询很困难,例如,根据员工居住地确定他们下次休假的时间。这些模型无法准确检索和分析数据点。

  • 处理多个部分的查询:回答包含多个部分的问题仍然受限。例如,当限制在K个片段时,发现大型组织中所有领域的共同休假模式是具有挑战性的,限制了完整的研究。


三)Agentic RAG


在经典RAG框架中引入代理的概念,以提高系统的功能性和能力,从而创建了Agentic RAG。Agentic RAG使用智能代理来回答需要仔细规划、多步骤推理和集成外部工具的复杂问题。这些代理执行熟练研究员的职责,巧妙地导航通过众多文档,比较数据,总结发现,并产生全面、精确的响应。这些代理承担超出基本信息检索和创建的额外职责和推理,以及协调和控制RAG流程的各个组成部分。

三个主要的Agentic策略

1)路由器

根据其类型将查询发送到适当的模块或数据库。路由器使用大型语言模型动态做出决策,根据请求的上下文决定应该发送到哪个引擎,以提高准确性和效率。

2)查询转换

涉及重构用户查询以最佳匹配所需信息,或者反之,最佳匹配数据库提供的信息。它可能是以下之一:重构、扩展或将复杂问题分解为更易于处理的简单子问题。

3)子问题查询引擎

首先,将复杂问题分解为针对每个数据源的更简单的问题。然后,收集所有中间答案并综合最终结果。


Agentic层为RAG流程

1)路由:根据相关性将问题路由到相关的基于知识的处理。例如:当用户想要获得某些类别书籍的推荐时,查询可以路由到包含这些类别书籍知识的数据库。

2)查询规划:这涉及将查询分解为子查询,然后将它们发送到各自的个别流程。代理为所有项目生成子查询,例如这种情况下的年份,并将它们发送到各自的知识库。

3)工具使用:语言模型与API或外部工具对话,知道这意味着什么,在哪个平台上进行通信,以及何时进行通信是必要的。例如:鉴于用户请求特定某天的天气预报,LLM与天气API通信,识别位置和日期,然后解析来自API的返回信息,以提供正确的信息。

4)ReAct是一个迭代的思维和行动过程,结合规划、使用工具和观察。 例如,要设计一个端到端的假期计划,系统将考虑用户需求,并调用API以获取有关路线、旅游景点、餐厅和住宿的详细信息。然后,系统将根据正确性和相关性检查结果,产生与用户提示和时间表相关的详细旅行计划。

5)动态查询规划:与顺序执行不同,代理同时执行多个操作或子查询,然后聚合这些结果。 例如,如果有人想要比较两家公司的财务结果并确定某个指标的差异,那么代理将并行处理两家公司的数据,然后聚合发现;LLMCompiler就是这样一个框架,导致如此高效的函数并行调用。


Agentic RAG和LLMaIndex

LLMaIndex代表了RAG流程的高效实现。该库简单地填补了将结构化组织数据集成到生成性AI模型中的缺失部分,提供了处理和检索数据的工具便利性,以及各种数据源的接口。LLMaIndex的主要组成部分如下。

  • LlamaParse是处理复杂、半结构化文档的重要元素之一,这些文档包含嵌入式对象,如表格和图表。

  • Llama Cloud为企业服务提供RAG流程部署,并为LLM和RAG应用程序中企业级上下文增强设计了一个重大飞跃。这个解决方案使AI工程师能够专注于开发关键业务逻辑,通过减少复杂的数据处理过程。。

  • 使用多个LLM和向量存储,LlamaIndex提供了一种集成的方式,用Python和TypeScript构建RAG应用程序。其特性使其成为希望利用AI进行增强型数据驱动决策的公司高度需求的支柱。


Agentic Rag实现与LLMaIndex的关键组成部分

让我们深入了解Agentic RAG的一些成分以及它们如何在LlamaIndex中实现。

1)工具使用和路由

路由代理根据给定问题选择使用哪个LLM或工具,基于提示类型。这导致上下文敏感的决策,例如用户是否想要概述或详细摘要。这种方法的例子是LlamaIndex中的Router Query Engine,它动态选择可以最大化响应查询的工具。

2)长期上下文保留

记忆最重要的工作是在多次交互中保留上下文,相比之下,Agentic RAG中的内存代理始终保持对导致连贯和上下文丰富的响应的交互的意识。

LlamaIndex还包括一个具有上下文对话和单次查询记忆的聊天引擎。为了避免LLM上下文窗口的溢出,这种记忆必须在长时间讨论中严格控制,并简化为总结形式。

3)子问题引擎规划

通常,我们需要将复杂查询分解为更小、更易于管理的工作。子问题查询引擎是LlamaIndex用作代理的核心功能之一,通过将大查询分解为更小的查询,顺序执行,然后组合以形成一个连贯的答案。代理逐步调查查询的多个方面的能力代表了多步规划与线性规划的概念。

4)反思和错误纠正

反思代理产生输出,然后检查该输出的质量,如果需要,进行更正。这种技能在确保准确性和输出是人所意图的方面至关重要。多亏了LlamaIndex的自反工作流程,代理将通过重试或调整不符合某些质量水平的活动来审查其性能。但由于它是自我纠正的,Agentic RAG在那些依赖性至关重要的企业应用中是相当可靠的。

5)复杂代理推理:

当代理必须调查许多可能的路线以实现某事时,应用基于树的探索。与顺序决策制定相比,基于树的推理使代理能够同时考虑多种策略,并根据实时更新的评估标准选择最有希望的策略。


结论

Agentic RAG通过引入更智能的代理,代表了信息处理的转变。在许多情况下,Agentic RAG可以与流程或不同的API结合,以提供更准确、更精细的结果。例如,在文档摘要的情况下,Agentic RAG会在制作摘要或比较细节之前评估用户的意图。在提供客户支持时,Agentic RAG可以准确且个别地回复日益复杂的客户查询,不仅基于它们的训练模型,还基于可用的内存和外部来源。Agentic RAG突出了从生成模型向更精细的系统转变,这些系统利用其他类型的来源实现强大和准确的结果。

深度学习与大模型
深入浅出的理解深度学习,跟踪大模型前沿动态。
 最新文章