论文地址:https://arxiv.org/pdf/2403.05313.pdf
原文地址:rat-retrieval-augmented-thoughts
Github:Implementation of RAT
2024 年 3 月 14 日
介绍
让我首先从一些一般性观察开始......
在生成式人工智能应用程序中实现效率与生成响应的准确性之间存在着紧张关系。
GenApp 的效率是指应用程序响应迅速,没有任何延迟或超时。应用程序的执行路径中也不应该有太多的组件和检查。
准确性指的是生成式人工智能应用程序的输出与用户期望之间的一致性。
GenApp 架构通常通过采用多个 LLM 交互和推理过程来实现准确性。除此之外,比较不同的响应并选择最佳响应。
显然,当引入这些措施来实现高精度时,这会损害效率。
因此,需要在效率和准确性之间取得平衡。
RAT:两步法
检索增强思维(RAT)是一种简单而有效的提示策略,结合了思维链(CoT)提示和检索增强生成(RAG)来解决长期推理和生成任务。
因此,LLM产生的零样本思想链(CoT)生成与 RAG 相结合。将想法作为疑问,并因果性地修改想法并逐步生成响应。
RAT是个zero-shot提示方法,并表现出显着的优势:
- vanilla CoT prompting
- RAG, and
- Other baselines
具有挑战性的代码生成、数学推理、具体任务规划和创意写作任务。
结果表明,将 RAT 与这些LLM相结合比普通 CoT 提示和 RAG 方法具有更大的优势。~来源
步骤1
首先,LLM 生成的初始零样本 CoT 提示与原始任务提示一起用作查询,以检索有助于修改可能有缺陷的 CoT 的信息。
步骤2
其次,不是使用完整的 CoT 进行检索和修改并立即生成最终响应,而是采用渐进式方法,LLM在 CoT(一系列子任务)之后逐步生成响应。
仅根据任务提示检索到的信息、当前和过去的 CoT 来修改当前的思维步骤。
该策略类似于人类的推理过程:
在解决复杂的长期问题时,利用外部知识调整逐步思维。~来源
长期操作
长期操作任务需要对一系列离散动作及其相关的连续控制参数进行联合推理。
因此,使用零样本 CoT 提示和长期生成任务面临着挑战。这些生成任务需要多步骤和上下文感知推理。
事实上有效的中间想法对于成功完成这些任务至关重要。
考虑下图,显示了检索增强思想 (RAT) 的管道。给定一个任务提示(如图中的I所示),RAT 从 LLM 在零样本中产生的初始逐步想法(𝑇,𝑇,···,𝑇)开始。
有些思维步骤(比如图中的𝑇1)可能会因为幻觉而出现缺陷。
另一方面,可以使用来自外部知识库的 RAG 对每个思维步骤进行迭代修订。
来源
考虑下图,该图说明了如何将不同的 LLM 推理方法用于创意生成任务。
红色文本表示LLM生成的文本中存在错误或错觉,而绿色文本表示正确生成。
没有 RAG 的方法通常会生成带有幻觉的错误信息,经典 RAG 与结构松散的检索内容高度相关,而 RAT 生成的文本在准确性和完整性方面表现最佳。
不同LLM推理方法在复杂具体规划、数学推理、代码生成和创意生成任务上的定量性能比较。RAT 在所有任务上都优于所有基线。
来源
结束语
最近我在 Agentic RAG 上写了很多文章;我相信 LlamaIndex 创造了这个短语。Agentic RAG 的概念是将基于 LLM 的自治代理与 RAG 相结合。
因此,Agentic RAG代理可以访问多个低阶子代理,这些子代理也可以称为RAG子工具。
这项研究概念化了 RAT(检索增强思维)的概念,感觉它与 Agentic RAG 方法是一致的。
因此,设计和构建生成应用程序的不同方法会融合在一起。
正如提示的复杂性不断增加一样,RAG 的复杂性也在增加。考虑下图,我们从静态提示演变为模板,一直以提示为核心的自主代理为核心。
RAG 也发生了同样的情况,围绕核心 RAG 实施进行创新。这一创新显然增加了 RAG 实现的结构和复杂性。
正如我所提到的,Agentic RAG 将成为事实上的标准。
论文解读
这篇论文介绍了检索增强思维(RAT)方法如何通过迭代式地利用相关信息对大型语言模型(LLMs)生成的链式思考(CoT)进行修正,从而显著提升其在长时程生成任务中的推理和生成能力,并大幅减少幻觉现象。研究者将RAT应用于GPT-3.5、GPT-4以及CodeLLaMA-7b等模型,在代码生成、数学推理、创意写作及具身任务规划等多个长时程生成任务上取得了性能上的大幅提升。例如,在代码生成方面平均评分提高了13.63%,数学推理提高了16.96%,创意写作提升了19.2%,而具身任务规划则增加了42.78%。
实验设计中,针对不同的编程挑战,论文评估了多种LLMs在生成功能性正确代码方面的精确度和可靠性。基准测试包括原始的直接生成(DIRECT)语言模型,以及基于检索增强生成(RAG)的方法,分别采用单次检索(1 shot)和多次检索(5 shots)配置。同时,还探讨了零示例CoT方法,该方法模拟逐步推理过程解决复杂问题。所有比较方法均未使用基准数据集作为上下文学习的示例以保证公平性。
为了全面评价代码生成能力,研究选取了不同容量的语言模型,如CodeLlama-7b、Chat-GPT(gpt-3.5-turbo)和更先进的GPT-4模型,并统一执行环境对模型输出进行标准化处理,确保了各模型间的一致性和可比性。
此外,RAT方法还在创意写作开放文本生成任务中进行了扩展应用,涵盖了撰写综述论文、描述人物生平等一系列任务,并采用了Google搜索引擎检索网络信息辅助LLMs生成内容,以展现RAT在提高生成内容的创新性和相关性方面的潜力。
对于像Minecraft这样的具身任务规划,研究者创建了超过100个涉及不同游戏物品的任务,并利用Minecraft Wiki和DigMinecraft网站作为LLMs的信息源,将其内容转化为Markdown格式并分割为不超过2000个令牌的小段落,嵌入计算借助于OpenAI的text-embedding-ada-002 API服务完成。评估指标不仅关注计划的可行性(由MC-TextWorld自动计算),也通过人工评级考察计划的合理性。
最后,论文展示了在多个代码生成基准测试(HumanEval、HumanEval+、MBPP、MBPP+)上,RAT相对于其他方法在多数指标上表现出色,尤其在首次尝试准确率和前五次尝试内的准确性上有显著提高,比如在HumanEval基准上,RAT使pass@1提高了20.94%,pass@5提高了25.68%。而在数学推理任务上,当部署在GPT-3.5模型上时,RAT在GSM8K和GSMHard数据集上分别提高了8.37%和31.37%的精度,总体平均改进率达到18.44%。同样,在Minecraft的开放式长时程规划任务中,RAT的表现远超其他方法,获得了最高的执行可行性和合理性评分。
总之,这篇论文详细阐述了一种迭代修订思路的技术框架——检索增强思维(RAT),该方法通过结合外部检索信息逐步完善初始生成的CoT路径,有效增强了LLMs在处理需要多步骤推理和长时程生成场景下的表现,同时减少了不实信息的产生。通过广泛的基准测试和详尽的分析,验证了RAT方法在各种自然语言生成和编程相关的任务上具有明显优势。
RAT的具体实现原理
在大型语言模型(如GPT-3.5、GPT-4或CodeLLaMA-7b)进行长时程生成任务时,采用迭代式的思考修订策略来提升模型的推理和生成质量,并降低错误推理(即“幻觉”)的可能性。具体而言,RAT方法首先利用基础模型生成初始的零示例Chain-of-Thought(CoT,即步步推导的思维链)后,对每个思考步骤逐一进行基于相关检索信息的修订。
在实施过程中,RAT借鉴了检索增强生成(RAG)技术的思想,通过集成外部知识源来增强语言模型的性能。对于代码生成和数学推理任务,研究团队使用codeparrot/github-jupyter数据集作为主要的搜索向量库;而对于Minecraft环境中的具身规划任务,则利用Minecraft Wiki和DigMinecraft网站作为信息检索来源;对于开放型的创意写作任务,则运用互联网搜索引擎(如Google)获取与查询相关的信息。
RAT的核心机制在于动态调整和细化检索查询,依据当前及过往的推理步骤有针对性地查找并整合相关信息。不同于简单地使用问题本身作为检索查询的传统RAG方法,或者仅利用整个语言模型产生的推理链条作为查询的CoT+RAG方式,RAT根据不断演进的推理思维片段优化查询,从而更加聚焦地找到并引入相关且高质量的知识内容来指导后续的生成过程。
在实验中,RAT显著提高了各个基准测试中的关键指标,例如在代码生成任务上,相较于基线方法,RAT在HumanEval和HumanEval+基准上实现了pass@1和pass@5得分的显著增长,这意味着首次生成的准确率以及前五个生成结果中有更高比例的正确答案。在数学推理任务上,应用到GPT-3.5模型时,RAT使得整体平均准确率提高了18.44%,并且这种改进趋势在GPT-4上依然存在。
通过对案例的深入分析,可以发现RAT在解决诸如Minecraft中的具身规划任务时能够更有效地整合来自多个碎片化信息源的知识,通过持续的检索和思考迭代,确保生成的计划包含所有必需步骤及其相关物品的完整理解,从而大大提高了计划的有效性和执行成功率。而在创意写作任务中,RAT也能够减少语言模型生成内容中的错误细节,确保生成的内容更加准确和可信。
总之,RAT通过迭代式地结合外部检索信息对模型内部生成的每一步推理进行修正和补充,以此强化模型在复杂、长时程生成任务中的上下文感知推理能力,从而带来显著的性能提升和精准度增加。
RAT动态调整和细化检索的过程
在长时程生成任务中,RAT首先会利用大型语言模型(如GPT-3.5或GPT-4)生成一个初步的、基于零样本提示的链式思维(Chain-of-Thought,CoT)。在这个基础上,RAT系统采取一种迭代式的策略,针对每一个已生成的思维步骤,它会针对性地检索与任务查询、当前思维步骤以及之前的所有思维步骤相关的外部信息。
在实际操作中,相比于直接使用问题本身作为检索查询的传统做法(对应于RAG-1方法),或是使用整个语言模型产出的推理路径作为查询(CoT+RAG方法),RAT采用了一个更为灵活且动态的方法。它不是一次性地使用整个推理路径作为检索请求,而是将不断演变的部分推理内容作为查询输入,每次只针对下一步或某一特定环节的推理需求去寻找最相关的信息。
这样做的好处在于,每一次的检索都更专注、更具针对性,有助于捕获更准确和适用的信息,进而用于识别并纠正当前推理步骤中可能存在的错误或不足之处。这一过程中,RAT不仅提升了检索内容的相关性,还极大地提高了最终生成答案的准确性和完整性。
实验结果显示,无论是在HumanEval还是HumanEval+基准测试上,RAT在pass@1(首次命中正确答案的比例)和pass@5(前五个生成答案中出现正确答案的比例)两个重要指标上,均超越了基线方法和其他对比方法。
此外,RAT还通过比较因果推理与非因果推理两种策略的影响,进一步证明了迭代细化检索查询的价值。在实践中,采用因果推理的方法(即基于前一阶段推理结果递归地调整和执行下一阶段的检索与推理)显著优于仅依赖初始推理思想直接检索所有必要步骤的非因果方法。因果推理方式在基准测试中的优异表现突显了顺序推理和动态知识检索相结合的优势,尤其是在解决需要长期推理和精准信息整合的复杂任务时。