微信扫码
与创始人交个朋友
我要投稿
大模型进入到2024年Q4,接触到的企业客户都关心的话题就是如何应用起大模型创新技术。从ChatGPT发布以来,我们已经理解这种新的交互方式:通过对话的方式可以快速获取一些有用的内容。从企业应用的角度,这个内容的获取是至关重要的,必须保证正确并且富有前瞻性指导,但是通过调用大模型返回的结果往往不太稳定,出现幻觉是家常便饭。为了解决幻觉问题,研究人员发现通过RAG (Retrieval-Augmented Generation)技术可以通过in-context learning范式框架学习到企业的知识,回答更贴合实际场景和答案。在大量应用RAG应用的过程中,研究人员开始注意到通过多次迭代的工作流可以更进一步模仿人类的思考模式(快思维和慢思维)获取精准知识,基于这个思考,Agentic Workflow框架而生。
为了理解这个框架,我拿出一套开源Agent框架的实现逻辑作为铺垫,和大家一起拆解此框架中的各种思想和逻辑。
1.1 Agentic RAG
它是一种基于AI Agent的Retrieval-Augmented Generation (RAG)方法。它通过引入智能代理(Agent)来增强传统RAG的功能,使其能够更有效地处理多文档信息检索和问答任务。在Agentic RAG中,Agent负责任务规划和工具选择,以协调完成对多文档的、多类型的问答需求。
与传统RAG相比,Agentic RAG引入了动态编排机制,可以根据用户提问的不同意图进行反馈和查询改写,并进行多跳式的知识推理,从而回答更复杂的问题。这种方法不仅提供了基础的查询能力,还能够执行更多样化和复杂的任务,如总结摘要、比较不同文档内容的区别,甚至结合非知识工具的复合场景。
Agentic RAG的概念架构包括:
RAG引擎:执行检索并合成响应的基础工具。
ToolAgent:在单个文档或知识库上使用多个RAG引擎来回答问题的Agent。
TopAgent:管理所有低阶ToolAgent的顶级代理,负责规划、协调、执行用户问题的回答方案。
这种架构使得Agentic RAG成为研究、数据分析和知识探索的强大工具,代表了AI驱动研究助手和虚拟助手领域的重大进步。
在应用方面,Agentic RAG技术在需要处理大量文档和复杂查询的场景中已经有一些应用实例(来自Copilot):
企业知识库查询:Agentic RAG可以用于构建企业级的知识库查询系统,帮助用户从大量不同来源和类型的文档中检索和总结信息
复杂问题解答:它能够处理跨文档和知识库的问题,比如比较不同文档内容的区别或结合非知识工具的复合场景
智能代理协作:通过智能代理的任务规划与工具能力,Agentic RAG协调完成对多文档的、多类型的问答需求,提供基于RAG之上更多样与复杂任务能力
研究与分析:在研究领域,Agentic RAG可以帮助专家们进行深入的文献审查,比较和总结多个文档中的信息,制定后续的精心策划的问题
企业级应用框架:例如,RAGapp是一个企业级的Agentic RAG应用框架,它结合了OpenAI自定义GPTs的配置便利性与Docker容器化的部署方式,使得在云基础设施上运行强大的自然语言处理模型变得简单易行
1.2 Agentic RAG 框架架构设计和工作原理
以下是 Agentic RAG 的架构和工作原理:
1. 架构设计:
Agentic RAG 框架通常包含以下三个核心组件:
RAG 引擎: 这是执行检索和合成响应的基础工具。它负责从多个文档中检索相关信息,并根据检索到的信息生成答案。
ToolAgent: ToolAgent 在单个文档或知识库上使用多个 RAG 引擎来回答问题。每个 ToolAgent 相当于一个领域专家,负责处理特定类型的问题或数据源。
TopAgent: 这是管理所有低阶 ToolAgent 的顶级代理。TopAgent 负责理解用户的意图,并将问题分解成多个子任务,分配给不同的 ToolAgent 处理。它还负责整合来自不同 ToolAgent 的答案,并最终生成一个完整的答案返回给用户。
2. 工作原理:
当用户提出一个问题时,Agentic RAG 系统会按照以下步骤工作:
问题理解: TopAgent 首先会分析用户的问题,理解用户的意图和信息需求。
任务规划: TopAgent 会将复杂问题分解成多个子任务,并根据每个子任务的特点选择合适的 ToolAgent 来处理。
信息检索: 每个 ToolAgent 会使用 RAG 引擎从相关的文档或知识库中检索相关信息。
答案生成: 每个 ToolAgent 会根据检索到的信息生成答案。
答案整合: TopAgent 会整合来自不同 ToolAgent 的答案,并生成一个完整的答案返回给用户。
3. 与传统 RAG 的区别:
相比于传统的 RAG,Agentic RAG 有以下几个优势:
动态编排机制: Agentic RAG 可以根据用户提问的不同意图进行反馈和查询改写。它能够根据用户的反馈动态调整查询策略,以获得更准确的答案。
多跳式知识推理: Agentic RAG 能够进行多跳式的知识推理,从多个文档中整合信息,回答更复杂的问题。
任务多样化: Agentic RAG 不仅能提供基础的查询能力,还能执行更多样化和复杂的任务,如总结摘要、比较不同文档内容的区别,甚至结合非知识工具的复合场景。
总而言之,Agentic RAG 框架通过引入智能代理,将传统 RAG 提升到一个新的水平,使其能够处理更复杂的任务,并提供更精准的答案。随着技术的不断发展,Agentic RAG 将在更多领域得到应用,为用户提供更智能、更高效的信息服务。
1.3 除企业知识库查询外,Agentic RAG 的其他实际应用场景
实时自适应查询响应: Agentic RAG 可以确保员工和客户及时收到准确的信息。这可以通过高效的数据管理和检索提高整体生产力。
自动化员工和客户支持: Agentic RAG 能够为客户的询问提供快速而准确的答案。这可以减轻人工客服的负担,从而提高效率和响应时间。
内部知识管理: Agentic RAG 可以简化对关键信息的访问,帮助员工快速做出明智的决策。
研究和创新支持: Agentic RAG 可以帮助研究人员合成和呈现相关数据,推动创新并支持战略计划。
时间序列分析: Agentic RAG 可用于分析时间序列数据,例如预测、异常检测和插补。通过利用分层的、多代理架构,Agentic RAG 可以有效地解决时间序列分析中的复杂挑战,例如复杂的时空依赖性和分布偏移。
内容创作: Agentic RAG 可以帮助作家和营销人员生成与主题相关的高质量内容。例如,一款名为 “Pailido|AI 拍立得” 的 AI-Native 应用就利用了 Agentic RAG 的能力来快速生成不同场景的文案。
教育: Agentic RAG 可以根据学生的个人需求定制学习体验。
医疗保健: Agentic RAG 可以在保障病人隐私的同时为医疗专业人员提供最新信息。
法律服务: Agentic RAG 可以帮助法律专业人士进行法律研究、案件准备和合规性监控。
总而言之, Agentic RAG 的应用领域非常广泛,它可以应用于任何需要处理大量信息和进行复杂决策的场景。 随着技术的不断发展,相信 Agentic RAG 的应用场景还会不断拓展,为各行各业带来更多可能性。
1.4 如何将 Agentic RAG 用于时间序列数据分析
Agentic RAG 框架可以通过以下方式解决时间序列数据分析中的这些挑战:
分层多代理架构: Agentic RAG 框架采用分层多代理架构,其中主代理协调专门的子代理并将最终用户请求委托给相关的子代理。每个子代理都专注于特定的时间序列任务,例如预测、插补、分类或异常检测。这种模块化设计允许框架有效地处理各种时间序列分析任务。
提示池作为内部知识库: 每个子代理都利用一个提示池作为其内部知识库,该知识库存储关于历史模式和趋势的知识。提示池包含键值对,其中“键”代表特定的模式(例如,季节性、周期性),而“值”包含关于该模式的详细信息。 当处理新的输入数据时,子代理基于相似性从池中检索最相关的提示。这些提示提供了关于相关历史模式和趋势的上下文知识,从而改进了对新数据的预测。
预训练语言模型的微调: 每个子代理都利用预训练的较小的语言模型(SLM),这些模型通过使用指令微调和直接偏好优化针对特定时间序列任务进行了定制。指令微调使用特定于任务的数据集对 SLM 进行微调,而直接偏好优化使用配对偏好数据将 SLM 的输出与期望的结果对齐。
Agentic RAG 框架在时间序列数据分析中的优势:
处理分布偏移: 通过利用提示池,Agentic RAG 框架可以访问广泛的特定于任务的知识,而不管历史事件是否发生。这使得子代理能够学习和适应复杂数据中的不同趋势,从而提高对新场景的泛化能力。
克服固定窗口限制: 传统的时序模型通常依赖于固定长度的过去观测窗口来生成预测,这可能不足以捕捉时序数据中存在的复杂模式和趋势。Agentic RAG 框架通过利用提示池,能够根据需要访问更广泛的历史信息,从而克服了固定窗口的限制。
模块化和灵活性: Agentic RAG 框架的模块化设计使其能够轻松地适应新的任务和数据源。每个子代理可以独立开发和优化,从而实现更有效的框架开发和维护。
实际应用场景:
预测: Agentic RAG 可以用于预测未来时间序列数据的值,例如能源消耗、交通流量或股票价格。
插补: Agentic RAG 可以用于估计时间序列数据中缺失的值,例如由于传感器故障或数据传输错误造成的缺失值。
异常检测: Agentic RAG 可以用于识别时间序列数据中的异常模式,例如欺诈性交易或设备故障。
分类: Agentic RAG 可以用于将时间序列数据分类到不同的类别,例如将心电图数据分类到不同的心律失常类型。
实验结果:
根据论文 “Agentic Retrieval-Augmented Generation for Time Series Analysis”,Agentic RAG 框架在多个时间序列分析任务上都优于基准方法,包括预测和异常检测。这些结果表明,Agentic RAG 框架在处理时间序列数据方面的有效性和潜力。
1.5 OpenAI Swarm 详细解读
Swarm 的核心概念:
智能体 (Agent): 智能体包含指令和工具,并在任何时候可以选择将对话移交给另一个智能体。
移交 (Handoff): 智能体之间传递对话控制权的行为。
Swarm 的优势:
轻量级: Swarm 几乎完全在客户端运行,并且像 ChatCompletions API 一样,不会在调用之间存储状态。
可扩展性: 能够处理大量的独立功能和指令,这些功能和指令难以编码到单个提示中。
高度可控: 开发人员可以对上下文、步骤和工具调用进行细粒度控制。
易于测试: 简化的架构使得测试和调试更加容易。
与 Assistants API 的比较:
Assistants API 适用于需要完全托管的线程以及内置内存管理和检索的开发人员。
Swarm 适用于希望对上下文、步骤和工具调用进行完全透明和细粒度控制的开发人员。
Swarm 的适用场景:
需要协调多个独立功能和指令的场景。
需要对智能体行为进行细粒度控制的场景。
安装 Swarm:
可以使用以下命令安装 Swarm:
pip install git+ssh://git@github.com/openai/swarm.git
示例用法:
源代码提供了一个示例,演示了如何在两个智能体之间转移对话。在此示例中,英语智能体会将说西班牙语的用户转移到西班牙语智能体。
其他信息:
Swarm 智能体与 Assistants API 中的助手无关。
Swarm 完全由 Chat Completions API 提供支持。
1.6 Agentic RAG 框架经验总结
Agentic RAG 框架通过引入智能代理(Agent)来增强传统 RAG 的功能,从而更有效地解决传统 RAG 系统存在的局限性。 这些代理能够分析数据、做出战略决策并执行多步骤推理。例如,在多文档问答场景中,代理可以动态地编排多个 RAG 引擎,以协调完成对多文档、多类型的问答需求。
具体而言,Agentic RAG 框架通过以下几个方面来提升系统性能:
信息优先级排序: Agentic RAG 使用 "推理器" 来解释用户意图,制定信息检索的战略计划,并评估数据源的可靠性,从而智能地确定信息的优先级。
专家知识的利用: Agentic RAG 使用专门的代理网络,这些代理就像拥有一系列专业技能的专家团队一样协同工作,确保优先考虑来自专家来源的信息。
上下文理解: Agentic RAG 中的代理可以理解上下文并推理用户需求,从而提供更相关和准确的答案。
可扩展性和可扩展性: Agentic RAG 基于代理的模块化设计允许轻松扩展功能。
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-07-18
2024-05-05
2024-06-20
2024-09-04
2024-05-19
2024-07-09
2024-07-09
2024-07-07
2024-06-13
2024-07-07