其他
点击上方“AINLPer“,设为星标更多干货,第一时间送达引言 之前,写了一篇关于大型语言模型Prompt应用的文章[纯干货!最全Prompt工程方法总结,与ChatGPT、GPT-4等LLMs的交互更高效!],其中主要是让大家能够更加全面的了解Prompt工程,以及如何应用Prompt来引导大型语言模型LLMs完成任务。但是之前的文章主要介绍应用单个Prompt来完成特定的任务。然而,当面对复杂任务的时,单一的Prompt是不够的,我们需要将Prompt链接在一起才能完成。今天这篇文章主要集中在Prompt链式方法介绍用于实现复杂任务生成,其中主要包括:顺序Prompt链、并行Prompt链、抽样Prompt链、树状Prompt链、循环Prompt链。顺序Prompt方法 按顺序的方法是链接Prompt最常见的方法。其关键思想是:当单个提示中提供的任务变得太长或太复杂并且包含许多不同的指令,则响应可能无法捕获所需的细节和粒度。在这种情况下,可以将该任务分解为多个子任务。一个子任务的响应会成为另外一个子任务的Prompt,按照顺序走下去直到任务完成。如下图所示: 下面是一个关于故事生成的示例。在这里想要生成一个长故事,其中包含由一组信息(人物、故事节奏和地点)引导的对话。现在,可以将所有这些信息填充到一个提示中,但这可能会淡化我们希望对话框包含的关键细节。 此外,一开始的时候我们不想编写所有的细节,而是希望模型替我们生成。我们想要提供的只是我们想要的故事内容的简短摘要,这也是我们唯一的Prompt。下图总结了生成最终对话框所涉及的链。首先,人类输入故事摘要,该摘要将成为生成角色列表的提示,然后该列表将成为生成故事节拍的提示,依此类推,直到我们进入对话生成阶段。 相比单个Prompt,按照顺序进行链接Prompt的另外一个好处是:可以对各个链接Prompt节点进行人工检查。当响应结果不满足设想的标准,可以让模型重新生成。通过节点阶段分析,使得对复杂的生成人工智能任务进行评估和质量控制变得容易。并行Prompt方法 当子任务相互依赖时,需要顺序Prompt链。但是当它们独立时,我们可以并行运行它们,然后将结果进行组合。如下图所示: 假设我们正在构建一个应用程序,该应用程序可以生成一周的创意食谱,然后生成供用户购买的食材购物清单。在这种情况下,给定用户输入,例如进餐次数或天数,我们可以并行运行食谱生成步骤。提示可能类似于以下内容:Prompt={“帮我生成一份快捷简单的7天菜谱,并以Json的形式输出,其中key为“食材成分”和“制作说明””} 接下来,将在所有菜谱中重复生成食谱。一旦完成,我们可以将每顿饭的食材合并成一个用户可以立即使用的购物清单。Prompt={“根据“食材成分”将食材合并成一个单一的购物清单,不要重复。”}抽样Prompt方法 如果一项任务涉及逻辑推理,例如数学问答,则可能有不止一种方法来解决给定问题。在这种情况下,我们希望鼓励模型在探索不同的解决方案时更具创造性。但提高模型创造力(即提高“temperature”)也意味着模型得到错误答案的可能性也会提高。 解决方案是,可以重复多次向模型Prompt相同的问题,然后选择大多数人的回答。具体如下图所示: 让我们看一下Wang等人的论文中的一个例子。他们引入了自我一致性的概念。Wei等人提出的思想链提示的概念,其中模型的Prompt方法是鼓励模型在给出最终响应之前进行推理步骤(参考论文链接:https://arxiv.org/pdf/2203.11171.pdf)。然而,在这些设置中,通常鼓励模型进行“贪婪解码”,这意味着偏向正确且安全的路径。这可以通过调整“temperature”值等设置来完成。 凭借自我一致性,我们可以通过从多个路径进行采样来构建思想链方法。我们还通过将设置调整为更具“创意”,再次使用“temperature”等设置,使路径更加多样化,然后我们对所有答案进行多数投票。 下图说明了自我一致性的概念。它展示了一个比较使用贪婪解码方法的单个解决方案的结果和使用更多样化的解码方法的多代采样解决方案的结果的示例。前者没有得到正确的答案,而后者却得到了正确的答案。树状Prompt链 树状Prompt链,其实就时思维树(ToT)。在之前的链式模式的基础上,当问题更加复杂并且需要更细粒度的推理步骤时,将步骤分解成多个部分会很有帮助。在每一步中,我们鼓励模型探索不同的解决方案,投票选出最佳解决方案,然后继续下一步。这在故事写作等创意应用中也很有用。相比将模型限制在单一路径,让模型探索不同的故事想法更有趣,从而提高最终输出的质量。 让我们用Yao等人的一个具体例子来介绍思想树的概念(参考论文链接:https://arxiv.org/pdf/2305.10601.pdf)。下图说明了这个概念与直接输入输出提示、思维链和思维链自我一致性的区别。在每一步,模型都会生成几个不同的解决方案。然后使用单独的提示来评估这些解决方案并投票选出最佳解决方案。重复该过程直到完成最后一步。 这是论文中展示的创意写作任务的示例之一。下图显示了初始输入,其中包含四个看似不相关的句子的列表