近年来,随着基于解码器Transformer变体的模型的快速发展,大型语言模型正逐步替代原有的私域自然语言模型,并在实际应用获得了不错的成果。例如:ChatGPT、PaLM、LLaMA、ChatGLM等。
Prompt工程是大型语言模型(LLM)在不同任务场景中适用的高效方法,即在LLM的输入中加入任务场景的相关描述。如果该任务描述表述适当,LLM将使用自回归标记的机制来生成文本来解决该任务。此类Prompt可以包含带有解决方案的示例任务(就是常说的:one-shot、few-shot等,也可以称其为少样本学习(ICL) ...
引言
为进一步提升大型语言模型(LLM)解决复杂问题的能力,今天给大家分享的这篇文章,作者提出了思维图(GoT),其性能超过了思维链(CoT)、思维树(ToT)。思维图(GoT)的关键思想是能够将LLM生成的信息建模为任意图,其中信息单位是顶点,边代表顶点之间的依赖关系。这种方法优点能够将任意LLM的思维组合在一起,提炼出整个思维图内容。实验结果显示:相比目前的思维树(ToT)提高了62%。
Paper:https://arxiv.org/pdf/2308.09687v2.pdf
Code:https://github.com/spcl/graph-of-thoughts
背景介绍
近年来,随着基于解码器Transformer变体的模型的快速发展,大型语言模型正逐步替代原有的私域自然语言模型,并在实际应用获得了不错的成果。例如:ChatGPT、PaLM、LLaMA、ChatGLM等。
Prompt工程是大型语言模型(LLM)在不同任务场景中适用的高效方法,即在LLM的输入中加入任务场景的相关描述。如果该任务描述表述适当,LLM将使用自回归标记的机制来生成文本来解决该任务。此类Prompt可以包含带有解决方案的示例任务(就是常说的:one-shot、few-shot等,也可以称其为少样本学习(ICL)),也可以不包含任何的示例任务(就是常说的:zero-shot)。实际操作结果显示,此类方法可以用来解决涉及数学、常识和符号推理的相关任务。
思想链(CoT)是一种提示方法,除了任务输入/输出之外,还包括提示中推理的中间步骤(中间“想法”)。CoT 被证明可以显着提高法LLMs解决问题的能力,而无需任何模型参数的更新。CoT 的一个主要改进是 CoT 的自我一致性(CoT-SC),它是一种生成多个 CoT 的方案,然后选择最好的一个作为结果。最近,CoT 和 CoT-SC 通过思想树
(ToT) 进行了扩展,它用树对 LLM 推理过程进行了建模。这有助于使用不同的思维路径,并提供新颖的功能,例如结果回溯。然而,「由于ToT方法将严格的树形结构加入了思维过程中,这限制住了LLMs的推理能力」。
思维图(GoT)
在本文中,作者基于对人类大脑结构、逻辑推理等过程的思考,通过使LLM思想形成任意图形结构,可以从根本上实现更强大的提示。因为当人类在研究一个新的方法的时候,不仅会遵循一系列思想(如 CoT)或尝试不同的独立思想(如 ToT),而且在实际思考过程中会形成一个更复杂的思想网络。例如,人们可以探索某个推理链,回溯并开始一个新的推理链,然后意识到前一个推理链中的某个想法可以与当前探索的想法相结合,并将它们合并成一个新的解决方案,利用优点并消除缺点。同样,大脑形成复杂的网络,具有类似图形的模式。当应用于 LLM 思想时,相应的图形转换有望带来更强大的提示,但它们不能用 CoT 或 ToT 来表达。
基于以上思考,本文提出了思维图(GoT),这是一种通过网络推理增强LLM能力的方法。在GoT中,LLM思想被建模为顶点,而边是这些思想之间的依赖关系。使用 GoT可以通过构造具有多个传入边的顶点来聚合任意想法。总之,GoT 利用的图形抽象无缝地将 CoT 和 ToT 概括为更复杂的思维模式,而无需任何模型参数的更新。 GoT采用的方法如上图所示。LLM 的推理过程表示为(有向)图。该图中的每个节点对应于LLMs生成的单个想法,边代表想法之间的关系。也就是说,从思想a到b的边——或者图中的有向边 (a, b)——简单地告诉我们思想 b 是使用思想 a 作为输入生成的。与 ToT 提示类似,想法的确切定义取决于要解决的问题。更进一步,每个节点代表问题的(可能是中间的)解决方案,但我们可以在图中使用不同类型的节点来代表推理过程的不同方面(例如,计划与执行)。
思维图(GoT)挑战
将GoT应用于LLMs的推理仍然存在一定的挑战。例如:
o
针对不同任务的最佳图结构是什么?
o
如何最好地聚合想法以最大限度地提高准确性并最大限度地降低成本?
为此,作者精心设计了一个用于实现 GoT 的模块化架构,并具有两个设计亮点。首先,能够让我们对个人想法进行细粒度的控制。这使我们能够完全控制与LLMs正在进行的对话,并应用先进的思想转换,例如将正在进行的推理中最有希望的想法结合到新的想法中。其次,我们确保我们的架构可以通过新颖的思维转换、推理模式(即思维图)和LLMs模型无缝扩展。这使得能够使用 GoT 快速构建新颖的Prompt原型,并尝试不同的LLMs模型,例如 GPT-3.5、GPT-4 或
Llama-2。
「思想转换」 鉴于使用图来表示LLM执行的推理过程,对该图的任何修改都代表对底层推理过程的修改,作者将这些修改称为思维转换,具体定义为向图中添加新的顶点或边。如上图所示,存在各种思维转换(例如,合并或拆分数组的数字、总结一组文章、生成单篇文章的多个摘要等)。作者考虑了三种主要的思想转变类型:
「聚合」(Aggregation):将任意的想法聚合成一个新的想法。
「提炼」(Refinement):通过自我联系提炼思想中的内容。
「生成」(Generation):基于一个想法产生多个新想法。
这些转换中的每一个都可以任意修改和推进LLMs的推理过程。例如,聚合可以将多个不同思想链的结果合并在一起,而细化可以递归地更新思想,直到得出最终答案。此类功能严格扩展了 CoT 和 ToT 提示 — 它可以完成这些技术可以做的所有事情,甚至更多!
「评分和排名」。最后,GoT 提示使用评估器函数为某些想法分配分数,并使用排名函数来选择最相关的想法。值得注意的是,排名和评分都考虑了整个图表。这是必要的,因为对于评分来说,一个想法的质量可能取决于其他想法。排名通常只返回得分最高的想法。
思维图(GoT)实现
关于思维图(GoT) 我们应该如何实现呢?作者通过一系列不同的 LLM 驱动的模块来做到这一点。如下图所示:上图中详细介绍的模块如下:
「提示器」:为 LLM 准备消息或提示。提示应包含图形结构的编码。
「解析器」:从LLM输出中提取相关信息,从而形成存储在每个想法中的状态。
「评分」:验证思想状态是否满足正确性条件并为其分配分数(来自LLMs或人类注释者)。
「控制器」:协调推理过程并决定如何进行。值得注意的是,控制器选择应应用于底层图的思维转换,将此信息传达给提示器,并根据评分器对生成的思维状态的输出来决定推理过程是否已完成或应继续前进。在整个过程中,控制器维护两条信息:
「操作图」:用户定义的静态结构,在推理过程之前创建,并捕获思维操作的执行计划。
「图推理状态」:跟踪LLM推理过程状态的动态结构,包括所有想法及其状态。
实验结果
1、与现有技术相比,在对排序任务进行评估时,可以发现与 CoT 、具有自洽性的 CoT 或
ToT 提示等技术相比,GoT 提示始终产生更少的错误。如下图所示:2、GoT提示同样存在一个缺点:其导出解决方案的总成本高于Few-shot、CoT等更直接的方法。如下图所示:「作者结论」:GoT 提示对文档合并任务提供了不太明显的改进。对于轻松分解为更小的、可解决的子问题并合并为最终解决方案的案例,GoT提示效果非常的好,但是其成本也相对较高。在实际应用中需要平衡两者之间的关系。
出自:https://mp.weixin.qq.com/s/ZK6MWmKhiJuYLb183nUUtw
本文档由网友提供,仅限参考学习,如有不妥或产生版权问题,请联系我们及时删除。
客服请加微信:skillupvip