中山网站建设公司,网站描文本,简单电商网站模板,wordpress高仿公众号RAG#xff08;检索增强生成#xff09;设计模式通常用于开发特定数据领域的基于实际情况的ChatGPT。 然而#xff0c;重点主要是改进检索工具的效率#xff0c;如嵌入式搜索、混合搜索和微调嵌入#xff0c;而不是智能搜索。 这篇文章介绍了一种新的方法#xff0c;灵感… RAG检索增强生成设计模式通常用于开发特定数据领域的基于实际情况的ChatGPT。 然而重点主要是改进检索工具的效率如嵌入式搜索、混合搜索和微调嵌入而不是智能搜索。 这篇文章介绍了一种新的方法灵感来自人类研究方法涉及多种搜索技术观察中间结果不断完善和重试然后才提供回应。 通过利用智能代理设计本文提出构建一个更智能、更扎实的ChatGPT超越传统RAG模型的局限性。 RAG模式和限制 标准RAG模式实施概述 该过程始于用户的问题或对话的查询创建通常是通过提示的语言模型LLM完成的。这通常被称为查询重述步骤。然后将此查询发送到搜索引擎搜索引擎返回相关的知识检索。然后检索到的信息会通过包含用户问题的提示进行增强并转发到LLM增强。最后LLM 对用户的查询做出了回应生成。 RAG的限制 在RAG模式中检索、增强和生成由单独的流程管理。每个流程可能由具有不同提示的LLM来促进。 然而与用户直接交互的第1001代通常最清楚如何回答用户的问题。 检索LLM可能不会像生成LLM那样解释用户意图从而提供不必要的信息可能会妨碍其做出回应的能力。检索是针对每个问题执行一次没有来自生成LLM的任何反馈循环。 如果检索结果不相关可能是由于搜索查询或搜索词不佳等因素生成LLM缺乏纠正的机制可能会诉诸捏造答案。提供的检索上下文一经确定即不可更改也无法扩展。 例如如果研究结果表明需要进一步调查比如检索到一个提及需要进一步检索的文件这方面没有规定。RAG模式不支持多步骤研究。 智能代理模型 智能代理模型从人类研究方法中汲取灵感当回答一个没有即时知识的问题时。在这个过程中可能会进行一次或多次搜索以收集有用的信息然后提供最终答案。 每次搜索的结果都可以决定是否需要进一步调查如果需要还可以确定接下来搜索的方向。 这个迭代过程会持续进行直到我们认为我们已经积累了足够的知识来回答或者得出我们无法找到足够信息来回应的结论。 有时研究结果可能会进一步澄清用户意图和查询范围。 为了复制这种方法建议开发一个由语言模型LLM驱动的智能代理用于与用户进行对话。 代理自主确定何时需要使用外部工具进行研究制定一个或多个搜索查询进行研究审查结果并决定是否继续进一步研究或向用户寻求澄清。 直到代理认为自己已经准备好向用户提供答案这个过程才会持续进行。 实施 使用Azure OpenAI的函数调用功能实现一个能够自主使用搜索工具定位所需信息以协助用户请求的代理变得更加简单。 这一特性单独简化了RAG模式的传统实现其中查询的改写、扩展和生成是分开处理的如前所述。 代理人利用系统定义的角色和目标与用户互动同时意识到可用的搜索工具。 当代理需要查找它所不具备的知识时它会制定一个搜索查询并向搜索引擎发出信号以检索所需的答案。 这个过程不仅让人想起人类的行为而且比RAG模式更高效RAG模式中知识检索是一个单独的过程无论是否需要都会向聊天机器人提供信息。 实施这一能力 定义人物角色、预期行为以及要使用的工具何时使用它。 用 JSON 格式定义函数规范包括函数和参数描述。 有趣的是“用于搜索知识库的搜索查询”参数描述起着至关重要的作用。它指导LLMs根据对话中用户所需的帮助来制定合适的搜索查询。 此外搜索查询参数可以描述并限制为遵循特定的工具格式比如Lucene查询格式。还可以添加额外的参数用于诸如过滤等任务。 实现函数调用流程 在这个时刻我们已经开发出一个能够进行独立搜索的智能代理。 然而要真正创建一个能够执行更复杂的研究任务如多步骤和自适应执行的智能代理我们需要实现一些额外的能力。幸运的是这个实施过程可以很简单直接。 创建智能研究代理的增强功能 在系统消息中添加代理计划、行动、观察和调整的能力 附加的指示表示如果需要机器人应该重试并更改问题。此外它表示机器人应该审查搜索结果以指导下一次搜索并在必要时采用多步骤方法。 这假设了搜索工具可以被多次调用。 由于LLM无法自行重复此过程我们需要使用应用程序逻辑来管理。我们可以通过将整个过程放入循环中来实现这一点。当模型准备好给出最终答案时循环退出 这是智能代理在演示场景中的表现 问题是比较两种产品之间的一个特性。每种产品的特性都存储在单独的文档中。为了做到这一点我们的代理人执行两个搜索查询 X100与Z200无线电0的功率配置文件无线电0的X100功率配置文件 第一个查询是一种贪婪的方法因为代理希望有一个包含比较的文档。事实并非如此因为搜索查询没有返回关于X100的足够信息所以它添加了专门针对X100的第二个查询。 如果这个问题交给经典的RAG解决方案它将无法找到一个好的答案因为它会在第一个查询处停止。 结束 实施代理模型可以大大增强基于ChatGPT的解决方案。这是因为该模型具有智能能力可以测试各种策略并根据观察到的结果改进其方法。 参考文献 这篇文章的完整代码实现可以在这里找到知识密集型自然语言处理任务的检索增强生成 arXiv:2005.11401 [cs.CL]OpenAI的功能调用Function calling — OpenAI API