RAG不够聪明?打造更强大的智能体 智能体是什么

RAG不够聪明?打造更强大的智能体 智能体是什么

解决方案goocz2024-12-23 9:57:2120A+A-

本文提出了一种受人类研究方法启发的新方法,通过多步搜索和智能体设计,打造比传统RAG模式更强大、更接地气的ChatGPT。


检索增强生成(RAG)设计模式常被用来在特定数据领域开发更强大的ChatGPT。然而,目前关注点主要集中在提高检索工具的效率上,比如优化嵌入式搜索、混合搜索、微调向量等等,而非提升搜索的智能性。本文将介绍一种新方法:它从人类的探索方式中汲取灵感,通过多次搜索、观察中间结果、改进重试等多步操作后才给出答案。该文建议通过智能体设计打造更强大、更接地气的ChatGPT,超越传统RAG模型的局限。

RAG模式及局限性

标准RAG模式的流程如下:

  • 从用户的问题或对话创建查询,通常借助提示词和大语言模型(LLM)完成。这通常被称为“查询改写”步骤。
  • 将查询发送给搜索引擎,返回相关知识(检索)。
  • 将检索到的信息添加到包含用户原始问题的提示中,再转发给LLM(信息增强)。
  • 最后,LLM生成对用户问题的回答(生成)。

RAG的局限性

  • 在 RAG 模式中,检索、信息增强、生成由独立的流程管理。每一步都可能由带特定提示的LLM完成。然而,直接与用户交互的生成型LLM最清楚回答用户问题所需的条件。检索型LLM的意图理解可能与生成型LLM有偏差,导致它提供不必要甚至阻碍生成的信息。
  • 对每个问题只检索一次,没有生成型LLM的反馈。如果检索结果不相关(可能是因为搜索查询或搜索词不佳),生成型LLM缺乏更正机制,可能会编造答案。
  • 从检索获取的背景信息是固定的,无法扩展。比如,如果搜索结果提示需要进一步探索(可能一篇检索出的文档引述了另一篇需要检索的文档),RAG对此没有应对机制。
  • RAG不支持多步探索。

智能体模型

智能体模型从人类寻找答案的探索方式中获得了启发。这种方式是在缺乏直接知识的情况下,通过一次或多次搜索来收集信息,然后提供最终答案。每次搜索结果都可能决定是否需要进一步探索,以及后续的检索方向。这个反复过程会持续进行,直到我们认为获得了足够的知识,或得出结论认为无法找到足够信息。有些情况下,探索的结果可能进一步明确用户意图和问题范围。

为了复制这种方法,本文提出的方案是开发一个由语言模型(LLM)驱动的智能体,它能与用户交谈。这个智能体能自主决定何时需要用外部工具进行探索,形成一项或多项搜索查询,开展探索,检查结果,判断是否需要继续探索或向用户寻求澄清。这个过程会持续到智能体认为已准备就绪,可以为用户提供答案。

具体实现

借助 Azure OpenAI 的函数调用能力,我们可以更轻松地实现具备自主搜索能力的智能体,来协助用户请求。这一功能简化了传统的RAG模式实现(之前提到过,该模式将查询改写、信息增强和生成当作独立的流程处理)。

智能体在与用户交互时,会遵循系统定义的角色设定和目标,同时可调用搜索工具。当智能体需要自己不掌握的知识时,会生成搜索查询并指示搜索引擎获取答案。

这个过程类似于人类行为,也比传统的RAG模式更高效。在RAG中知识检索是单独的流程,不管知识是否必需都会提供给聊天机器人。

实现该功能的步骤:

1) 定义角色设定、预期行为,以及所要使用的工具和何时使用。

2) 用json格式定义函数规范,包括函数和参数描述。

值得注意的是,“查询知识库所用的搜索查询”这一参数非常关键。它能指导LLM根据对话中帮助用户所需的条件,生成合适的搜索查询。同时,这个搜索查询参数可以被描述或限定为特定工具的格式,例如Lucene查询格式。还可以添加其他参数来完成过滤等任务。

3) 实现函数调用流程。

到目前为止,我们已经开发出了能够进行独立搜索的智能体。但要真正打造一个能胜任更复杂研究任务(比如多步操作、自适应执行)的智能代理,还需要实现一些额外的功能。好在,这个实现过程并不难。

在提示中添加代理的思考、行动、观察、调整能力,让它更智能(加亮部分):

新增的指令要求机器人:如果需要,可以重试或修改问题。同时,它还能检查搜索结果以指导下一次搜索,并在必要时采用多步研究方法。这意味着可以多次调用搜索工具。

由于LLM无法自行重复这个过程,我们需要用应用逻辑来管理它,可以把整个过程放入一个循环中:当模型准备好给出最终答案时再退出循环。

下面是一个演示场景,展示智能体的工作过程:

问题是对比两个产品之间某项性能的差异,每种产品的性能信息存储在不同的文档中。为解决这个问题,我们的智能体进行了两次搜索查询:

  • X100 与 Z200 的 Radio 0 配置对比
  • X100 的 Radio 0 配置

第一次查询采用了一种较为激进的方式,智能体希望能够一次性找到对比文档。但这次搜索的结果并没有提供足够的X100信息,所以它增加了专门针对X100的第二次查询。

如果用传统的RAG方案,由于只进行一次查询,大概率找不到满意的答案。

结论

实现智能体模型能大幅提升基于ChatGP的T解决方案的效果。这是由于模型具备了智能化能力,能够测试不同策略、并根据观察结果对方法进行调整。

点击这里复制本文地址 以上内容由goocz整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

果子教程网 © All Rights Reserved.  蜀ICP备2024111239号-5