问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Agentic RAG 与图任务编排

创作时间:
作者:
@小白创作中心

Agentic RAG 与图任务编排

引用
CSDN
1.
https://blog.csdn.net/datageek/article/details/139798987

一个朴素的 RAG(检索增强生成)系统流程是这样的:先由用户提出问题,然后系统基于用户提问进行召回,对召回结果进行重排序,最后拼接提示词后送给LLM生成答案。

在一些简单场景下,朴素的RAG已经可以满足用户意图明确的场景的要求,因为答案已经包含在检索出来的结果中,只要交给LLM即可。然而,在更多的情况下用户意图并不明确,无法直接通过检索找到答案,例如一些针对多文档的总结类提问需要进行多步推理(Reasoning)等等。这类场景就需要引入Agentic RAG,也就是在问答的过程中引入任务编排机制。

Agentic RAG,顾名思义,是基于Agent的RAG。Agent与RAG关系紧密,两者互为基石。Agentic RAG和简单RAG的最大区别在于Agentic RAG引入了Agent的动态编排机制,因此可以根据用户提问的不同意图,引入反馈和查询改写机制,并进行“多跳”式的知识推理,从而实现对复杂提问的回答。

下面,我们先通过两个高级RAG来看看Agentic RAG的工作原理。首先是Self-RAG(参考文献[1]),它的工作流程如下:

Self-RAG是一种引入了反思机制的RAG。从知识库中检索出结果后,它会评估结果是否与用户提问相关。如果不相关,就要改写查询,然后重复RAG流程直到相关度评分达到要求。实现Self-RAG需要实现以下两大组件:

  1. 一套基于Graph的任务编排系统。
  2. 在Graph内执行的必要算子:比如在Self-RAG中,评分算子就至关重要。在原始论文中,是需要自己训练一个打分模型来针对检索结果评分;在实际实现中也可以采用LLM进行评分,这样可以简化系统开发并且减少对各类环节依赖。

Self-RAG是相对初级的Agentic RAG,实践证明,Self-RAG对于较复杂的多跳问答和多步推理可以明显提升性能。

再来看看另一种Agentic RAG——Adaptive RAG(参考文献[2])。它可以根据用户提问的不同意图采用对应的策略:

  1. 开放域问答:直接通过LLM产生答案而无需依赖RAG检索。
  2. 多跳问答:首先将多跳查询分解为更简单的单跳查询,重复访问LLM和RAG检索器来解决这些子查询,并合并它们的答案以形成完整答案。
  3. 自适应检索:适用于需要多步逻辑推理的复杂问题。复杂的问答往往需要从多个数据源综合信息并进行多步推理。自适应检索通过迭代地访问RAG检索器和LLM,逐步构建起解决问题所需的信息链。

如下图所示,Adaptive-RAG的工作流程与Self-RAG类似,只是在前面增加了一个查询分类器,就提供了更多种对话的策略选择。

从以上两种Agentic RAG例子可以看出,这类高级RAG系统都需要基于任务编排系统上提供以下功能:

  1. 复用已有的Pipeline或者子图。
  2. 与包含Web Search在内的外部工具协同工作。
  3. 可以规划查询任务,例如查询意图分类,查询反馈等等。

任务编排系统类似的实现主要有Langchain的LangGraph和llamaIndex;Agent的开发框架包括AgentKit、Databricks最新发布的Mosaic AI Agent Framework等等。任务编排系统需要基于图(Graph)来实现,图中的节点和边定义了应用的流程和逻辑。节点可以是任何可调用的算子,也可以是其他可运行组件(比如链接起来的多个算子或者Agents),每个节点执行特定的任务。边定义了节点间的连接和数据流。图需要具备节点的状态管理功能,从而根据节点的跳转而不断更新状态。需要注意的是,这种基于图的任务编排框架并不是一个DAG(Directed Acyclic Graph),而是一个需要引入循环的编排系统。环是提供反思机制的基础,对于Agentic RAG的编排至关重要。没有反思机制的Agent只能提供类似工作流这样的任务编排而无法实现更高级的多跳和多步推理机制,没法真正像人类那样去思考性地解决问题。在吴恩达给出的四种Agent设计模式(参考文献[3])中:反思被放在头一个,其他三个都是工作流相关,分别是工具、规划,和多Agent协同。反思被单列出来是因为思考和推理都必须基于它来进行,而Agentic RAG正是反思机制在RAG的体现。

Agentic RAG代表了信息处理方式的变革,为Agent本身引入了更多的智能。结合了工作流的Agentic RAG也有更广阔的应用场景。比如:在文档摘要中,Agentic RAG会首先确定用户的意图是要求摘要还是要求对比细节。如果是前者,就通过Agent先获取每块内容的摘要再获取整体的摘要;如果是后者,就需要进一步路由,通过检索提取相应数据点,再把相关数据传递给LLM。在客户服务支持中,Agentic RAG可以理解客户更加复杂的提问,从而可以提供更加个性化的准确回复。在文献助手中,Agentic RAG可以综合更多的文献、数据和研究结果,让使用者具备更全面的理解;在法律和医疗助手中,Agentic RAG可以帮助理解和解释复杂的领域知识,提供更准确地见解;在内容生成应用中,Agentic RAG可以帮助生成更高质量的、上下文相关的企业级长文档。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号