论文翻译 | Decomposed Prompting: A MODULAR APPROACH FORSOLVING COMPLEX TASKS 分解提示:解决复杂任务的模块化方法

摘要

        少样本提示是使用大型语言模型解决各种任务的一种非常强大的方法。然而,当任务复杂性增加或任务本身的单个推理步骤难以学习时,特别是当嵌入到更复杂的任务中时,这种方法就会出现问题。为了解决这个问题,我们提出了分解提示,这是一种通过(通过提示)将复杂任务分解为更简单的子任务来解决复杂任务的新方法,这些子任务可以委托给专用于这些子任务的基于提示的LLM共享库。这种模块化结构允许针对特定的子任务对每个提示进行优化,必要时还可以进一步分解,如果需要,甚至可以很容易地替换为更有效的提示、训练过的模型或符号函数。
        我们展示了分解提示的灵活性和模块化,使其优于之前使用GPT-3的少样本提示工作。在符号推理任务上,我们可以进一步将LLM难以解决的子任务分解为更简单的可解决子任务。当复杂度来自输入长度时,我们可以递归地将任务分解为相同的任务,但输入更小。我们还评估了我们在文本多步骤推理任务上的方法:在长上下文多跳QA上,我们可以通过单独的子任务提示更有效地教授子任务;在开放域多跳QA中,我们可以很容易地将符号信息检索模块合并到我们的分解框架中,从而提高了两项任务的性能。

1 引言

        大型语言模型(LLMs)如GPT-3(Brown等人,2020年)已被证明能够仅通过几个示例作为提示来解决各种任务,这也被称为上下文学习。这些模型甚至在展示了完成复杂任务所需的简单推理步骤序列作为提示时,能够执行更复杂的推理任务(Wei等人,2022年;Nye等人,2021年)。从本质上讲,推理步骤的序列,如在思维链(CoT)提示(Wei等人,2022年)中,展示了如何分解复杂任务以及每个推理步骤应该如何执行。然而,随着任务的复杂性增加,当前模型仅通过少量的复杂任务演示不足以学会执行所有必要的推理步骤。例如,对于一个字符串中单词的第k个字母的连接操作,少量的演示不足以让GPT-3学会提取第k个字母,或者在学习仅提供几个多跳问题的演示时回答困难的单跳问题。此外,目前尚不清楚像文档检索和整合这样的任务,对于知识密集型任务,是否可以通过少样本提示来完成。

        为了解决这些局限性,我们提出了分解提示(DECOMP),这是一种新的方法,通过将复杂任务分解为更简单的子任务,并将这些子任务委托给特定的子任务LLMs来解决复杂任务,分解器和子任务LLMs(以下简称子任务处理程序)都有自己的少样本提示。图1展示了我们的方法。分解器提示仅描述了解决复杂任务所需的子任务序列(A、B和C),用虚线表示。然后,每个子任务被委托给右侧显示的相应子任务处理程序。

图1:虽然标准方法只提供带标签的示例(显示为带有绿色标签框的灰色输入框),但思维链提示还描述了在提示中为每个示例找到答案的推理步骤。另一方面,分解提示使用分解提示符仅描述使用特定子任务解决复杂任务的过程。每个子任务(这里用A、B和C表示)由子任务特定的处理程序处理,这些处理程序可以是标准提示(子任务A)、进一步分解提示(子任务B)或诸如检索(子任务C)之类的符号函数。

        使用软件工程的类比,分解者使用到更简单的子任务函数的接口来定义复杂任务的顶级程序。子任务处理程序充当这些简单函数的模块化、可调试和可升级的实现,类似于软件库。

        如果一个特定的子任务处理程序,比如用于识别第k个字母或检索文档的处理程序,执行得不够好,我们可以单独调试这个处理程序,探索替代提示或实现,并将改进的模块无缝地插入到整个系统中,作为一种系统的方式来尝试提高复杂的终端任务的性能。

        与以前的工作相比,这种方法有几个优点(如图所示)。子任务处理程序可以显示比复杂任务提示(任务a)所需的具体示例更广泛和更丰富的(简单任务的)示例集。如果子任务太复杂,可以进一步分解为更简单的子任务(任务B)。类似于软件库,这些子任务处理程序可以跨多个任务共享;例如,这里任务A和C在任务b的模型中被重用。如上所述,子任务处理程序可以很容易地与改进的实现交换,而不需要对系统的其余部分进行任何更改。对于更适合非神经方法的任务,基于少样本提示的LLM甚至可以用符号系统代替;例如,任务C使用符号检索系统,如Elasticsearch,可以处理非常大规模的语料库。最后,我们甚至可以通过简单地添加一个纠错子任务处理程序作为后处理步骤来改进先前的工作。

        为了说明DECOMP的这些优势,我们使用GPT3模型对八个具有挑战性的数据集的先前工作进行了经验评估:(1)在连接第k个字母的任务上,我们表明我们分解每个子任务的方法使我们能够更有效地教授提取第k个字母的子问题(具体来说,通过将其分解为更容易的子任务)。(2)在一个列表反转的任务上,我们证明了DECOMP允许我们扩展一个较弱模型的能力,并通过递归地将任务分解为越来越小的列表的反转来构建一个规模不变的系统。(3)对于长上下文QA任务(Khot et al, 2022),我们的方法允许每个子任务处理程序容纳比可行的更多的示例,并使用CoT提示导致更好的QA性能。(4)在三个多跳开放域QA数据集上(Yang et al ., 2018;Ho et al, 2020;Trivedi等人,2022),我们可以将符号检索(ElasticSearch) API作为检索子任务的处理程序,从而获得比CoT更好的结果。(5)在两个Math QA数据集上(Cobbe et al, 2021;Roy & Roth, 2015),我们可以对CoT进行后处理,以轻松修复频繁的格式错误,从而惊人地提高14-17分。

2 相关工作

        少样本提示用于多步骤推理 LLMs已被证明可以在仅给出几个示例作为提示的情况下学习各种自然语言处理(NLP)任务(Brown等人,2020年)。最近,通过提供到达答案所需的中间推理步骤,即思维链(Chain-of-Thought)(Wei等人,2022年;Chowdhery等人,2022年),它们也成功地应用于各种多步骤推理任务。另一种方法是将多个LLMs或LLMs与符号函数组合起来执行多步骤推理(Jung等人,2022年;Creswell等人,2023年;Press等人,2022年;Parisi等人,2022年;Gao等人,2022年;Schick等人,2023年,等等)。我们将这些先前的工作视为具有预定义分解结构的专门系统。

        与我们的方法最接近的作品是最小到最多提示(Zhou等人,2023)和连续提示(Dua等人,2022)的想法,其中一个提示/模型用于生成回答复杂问题所需的子问题,第二个提示/模型依次回答这些子问题。相反,我们的方法允许多种分解结构,包括递归和其他非线性分解结构。例如,根据定义,最小到最大要求的问题从最简单到最难,并要求LLM最终回答完整的问题(“最小到最大”中的“大多数”),而我们没有这样的限制。此外,我们基于先前的答案迭代生成新问题(类似于连续提示),并可以显式地分配不同的提示或符号系统来回答每个子问题。

        我们的工作遵循了NLP关于神经模块建模架构的长期文献(Andreas等人,2016;Talmor & Berant, 2018;Min等人,2019;Jiang & Bansal, 2019;Gupta等人,2020;Perez等人,2020;Khot等,2021;Levine et al ., 2022)用于问答和其他任务。我们从Khot等人(2021)的文本模块化网络方法中获得了特别的灵感,其中问题分解由一个学习的下一个问题生成器组成,该生成器经过训练,以文本和符号代理集合的语言生成问题。在推理过程中,采用最佳优先搜索策略探索可能分解的空间。这项工作主要集中在给定现有代理的下一个问题生成器的监督训练上,与此相反,我们利用少数几个LLM的力量和最近的成功来构建最适合理想分解的分解器和子任务代理。

        这样做的好处是避免了对专门监督训练数据的需求,这些数据可能并不总是适用于所有子任务——这是之前工作的一个关键瓶颈。

3 分解提示

        与传统的少量提示一样,目标是教会一个LLM使用一组小的上下文示例D =\left \{ E_{1},...,E_{\left | D \right |} \right \}来找到一个查询Q的答案A。答案A是从底层分布p\left ( A | Q,D,\theta \right )中获得的(Dohan等人,2022年)。在最基本的少量设置中,示例采用E_{j} = \left ( Q_{j},A_{j} \right )的形式。在CoT风格提示的情况下,目标是首先生成一系列中间推理步骤或“思考”T,然后根据T得出最终答案。为了教授这种能力,人们使用了更复杂的上下文示例,这些示例的形式为E_{j} = \left ( Q_{j},\left ( T_{j,1} ,...,T_{j,k}\right ),A_{j}\right )

        在DECOMP中,核心是一个分解器LLM,它试图通过为复杂任务生成一个提示程序P来解决该任务。P的每个步骤都将一个更简单的子查询指向系统可用的辅助子任务函数集F中的一个函数。给定一个查询Q,其答案为A,程序P是一个形式的序列\left ( \left ( f_{1},Q_{1},A_{1} \right ) ,...,\left ( f_{k},Q_{k},A_{k} \right )\right )
其中Ak是P预测的最终答案,Qi是指向子任务函数f_{i} \epsilon F的子查询。P由一个高级命令控制器执行,该控制器在分解器和子任务处理程序之间传递输入和输出,直到满足P中的停止条件并获得最终输出。

        为了以少样本提示的方式教授分解器LLM,我们使用的上下文示例形式为E_{j} = \left ( \left ( Q_{j},\left ( f_{j,1} ,Q_{j,1},A_{j,1}\right ),...,\left (f _{j,k_{j}} ,Q_{j,k_{j}},A_{j,k_{j}}\right ) \right ) \right ) 其中A_{j,k_{j}} =A _{j}是Qj的最终答案,而\left ( Q_{j,1},...,Q_{j,k_{j}} \right )Q_{j}的分解。每个子任务函数f依次通过一个子任务处理程序实现操作,作为一个上下文提示LLM(例如,一个单独的CoT风格提示或一个专门针对该子任务的额外提示程序),或者任何其他符号或学习到的函数(例如,计算器或专门的监督训练模型)。

3.1 分解提示

        为了用例子说明这一点,考虑一个多步骤任务,如“使用空格连接字符串中每个单词的第一个字母”。我们可以通过将这个任务分解为三个简单子任务的序列来解决它:1)收集字符串中的单词列表;2)对于每个单词,提取第三个字母;3)使用空格作为分隔符连接提取的字母。图2展示了这个任务的示例分解提示。就像传统的结构化程序一样,顶级分解提示提供了一个使用三个子任务函数的示例程序Ej:f1 :split在输入字符串中分割单词,f2 :str pos在字符串中查找字符位置,以及f3 :merge连接字符。在这种情况下,我们将每个子任务函数作为单独的上下文提示来实现操作(例如,右侧使用标准提示方法进行分割和合并),每个提示都包含一组与原始复杂任务独立的上下文示例。

图2:关于分解者和分解者使用的拆分和合并子任务的提示。分解者指定问题的顺序和相应的子任务(在方括号内)。子任务提示符可以独立于复杂任务示例编写,甚至可以捕获概括,例如,单词中的字母(拆分)和没有分隔符(合并)。

        除了上面描述的三个函数之外,还包含了额外的控制结构,例如符号函数foreach,它遍历数组和对前面的答案(如#1)的引用。我们注意到,这样的辅助函数并不是严格必要的(例如,我们可以直接生成“Q2”:Jack的第一个字母是什么?和“Q3”:Ryan的第一个字母是什么?,而不是图中的Q2),并且添加它是为了减少指定分解所需的手工工作,也减少分解期间的潜在错误。在我们的实验中,我们使用了Khot等人(2022)定义的两个组合算子(详见附录),尽管它能够使用他们的所有算子(也捕获了Wolfson等人(2020)的QDMR算子)。

3.2 快速执行和推理

        给定一个新问题和一组背景上下文示例D,推断过程(即程序构建和执行)在图3中展示。新复杂问题被输入到分解器提示中,以获得要向分割提示提出的第一个子问题。在符号控制器的帮助下,从这个提示中生成的答案然后被附加到分解器提示中,以获得第二个子问题Q2。由于在生成的问题中存在foreach操作符,Q2导致两个问题(每个单词一个)被输入到str pos提示中。答案被组合成一个数组,以获得答案#2。整个分解历史被用来生成Q3,并传递给合并提示以获得最终答案。由于任务已经解决,分解提示产生特殊的序列结束标记([EOQ]),最后一个答案作为最终答案返回。正式地说,进行推断涉及找到新查询Q的最佳答案A,最简单的方式是使用LLM对A的预测分布计算最大后验概率(MAP)答案,即,\hat{A} = argmax_{A}p\left ( A \mid D,Q,\theta \right )(Dohan等人,2022年)。为了实用性,在我们的实验中,这样的计算使用贪婪搜索来近似。

图3:根据问题和答案的当前历史,DECOMP中的推理过程迭代地调用分解器提示符,以在每一步生成下一个问题和子任务。然后将生成的问题路由到指定的子任务处理程序(在需要时使用一些特殊操作符)。当生成特殊的问题结束[EOQ]标记时,将返回前一个答案作为最终预测。

3.3 分解能力

        层次分解 某些子任务,即使给出了许多示例,也不能用少样本提示来解决。例如,我们发现识别字符串的第k个字母对于GPT3 text- davici -002模型来说是具有挑战性的。在这种情况下,我们可以进一步分解子任务提示符,首先识别字母及其位置,然后选择该数组的第k个元素(如图4所示)。我们也可以在框架中重用现有的子任务提示符。例如,split提示符可以重用,因为它是为拆分字符串的一般任务开发的。

图4:由于识别第k个字符对于GPT3 davinci-002模型具有挑战性,因此我们进一步将其分解为两个更简单的子任务:将单词拆分为字母(使用共享子任务拆分),然后使用arr pos提示符返回该列表的第k项。

        递归分解 有些问题可以自然地分解成一个或多个相同形式的小问题。递归算法(例如归并排序)使用简洁的描述方法,利用这一思想有效地解决大型问题。我们在DECOMP中应用同样的原则,允许分解器提示符递归地调用自己,如图5所示,用于列表反转任务。通过使用递归,我们能够通过将输入分解成越来越小的列表,将任何基本提示方法(图中的CoT)推广到更长的列表,直到我们达到模型高度精确的列表长度。这种递归方法不能用当前的方法如CoT和标准提示来描述。最小到最大提示(Zhou等人,2023)也提出了类似的解决方案,但在两个关键方面有所不同(a)它必须一次性识别所有子问题,而不是我们迭代的自顶向下分解(b)它必须学会从我们从分解中免费获得的先前解决方案中识别相关答案。

图5:倒转列表递归分解的示例提示符。每个列表被分成两部分,每一半都是颠倒的,并以相反的顺序连接。我们可以递归地分割列表,直到我们达到基本情况(这里的列表长度为3),其中现有的方法(如CoT)是准确的。

        外部API调用 在某些情况下,仅使用LLM可能无法解决子任务。例如,从知识库或大型语料库中检索知识。然而,这些子任务可以使用现有系统轻松解决,例如使用Elasticsearch索引检索文档或使用Google搜索检索网页(Lazaridou et al, 2022)。图6显示了DECOMP如何轻松地使用这样的系统来检索相关文档并回答单跳开放域问题。

图6:使用基于elasticsearch的检索来回答开放领域问题的分解提示。图11给出了该提示符在开放域多跳问题中的充分使用情况。

4 案例分析

        我们通过四个任务展示了DECOMP的优势;两个类似于Wei等人(2022)研究的符号操作任务和两个现有的文本多跳推理任务。除非特别说明,我们使用text-davinci-002 InstructGPT3模型(Ouyang et al, 2022)作为LLM,并报告精确匹配(EM)数字,遵循先前的工作。对于顺序无关的列表答案,我们将集合相等性评估为EM。我们将我们的方法与CoT进行比较,而不是将之前工作中使用的每个特定分解结构进行比较。请参阅App. G查看所有任务的完整提示。

4.1 k^{th}字母拼接(分层分解)

        我们比较DECOMP和CoT在第k个位置连接字母的提示。所有提示都包含连接位置1、4的字母的示例,以及字符串的最后一个位置有3个单词。

        我们为所有基线创建了三种不同的提示,并给出了平均值,以解释由于Perez等人(2021)选择示例而导致的方差。我们使用分解、拆分、str位置(进一步分解,如图4所示)和合并提示来进行分解提示。我们对之前工作(Wei et al, 2022)中的最后一个字母拼接采用CoT,如下所示。此外,我们根据CoT考虑分解提示的展开版本,也就是说,我们将整个分解过程(识别单词,将每个单词分成字母,取第k个字母并连接)描述为单个CoT。例如,对于这个问题,“找出《赫伯特·亚历山大·西蒙》中单词第4位的字母,并用空格将它们连接起来。”,我们使用CoT;

        我们类似地调整了从最少到最多的提示(Zhou等人,2023年)以包括展开。(见附录G)。我们在4个数据集上比较了这四种提示技术,以评估沿着3个轴线的泛化能力:(1) 新的字母位置 k = 3;(2) 更长的输入,#words=4和5;(3) 新的分隔符";"。测试示例中的单词来自最受欢迎的姓名列表。所有评估数据集都有100个示例。我们在图7中展示了以空格作为分隔符的平均结果,跨越三个提示。

图7:第k个字母连接任务(k=3)的EM结果,使用空格作为分隔符,输入的单词数量不同。在最少到最多提示方面,DECOMP优于CoT并具有更好的泛化性。

        DECOMP优于思维链和最少到最多提示,即使提示使用与展开的分解相同的推理过程。这表明,在教授困难的子任务时,单独的提示比单独的CoT提示更有效。

        DECOMP可以完美地推广到更长的序列。随着输入序列长度的增加,我们的方法在这个任务上继续达到接近100%的准确率输入长度越长,基于cot的方法得分明显下降,从而扩大了性能差距。

4.2 列表反转(递归分解)

        我们使用倒转单词列表的任务7来展示递归DECOMP是如何实现长度泛化的。我们采用了Wei et al(2022)的相关CoT提示,并将其整合到一个分解提示中。作为一个控件,我们还将其与带有分解提示的CoT版本进行比较。所有提示都包含相同的3个颠倒单词序列的例子,其中包含3-5个项目。我们将所有提示归纳为4、6、8和10项序列。在这里,我们使用davincii -001来显示DECOMP使较弱的模型接近davincii -002的性能(它确实解决了这个任务)。我们使用图5中的策略,并在App g中提供我们的提示。图8显示了不同输入长度下提示策略的结果

图8:反转序列的EM结果。在DECOMP中加入CoT极大地提高了模型泛化到新序列长度的能力。

        DECOMP改进了少样本提示的长度泛化。虽然我们的基本CoT提示根本不能泛化到更长的序列,但我们的方法可以递归地分解问题并实现更好的长度泛化。此外,我们的分解策略的CoT版本失败了,因为展开的提示变得太长太复杂,无法抽象出子模块。

4.3 长语境问答

        接下来,我们在阅读理解设置下对CommaQA-E数据集(Khot et al, 2022)进行评估。该数据集由合成生成的实体(例如Erowid奖)、事实(“Wetherality是电影《杜巴》中的演员”)和多跳问题(例如,“Erowid获奖电影的演员获得了什么奖项?”)组成。由于存在许多干扰因素,因此上下文较长,即使经过微调,该数据集也难以用于标准LM。

        为了使这些问题适应GPT3的上下文限制(2049个令牌),我们生成了CommaQA-E数据集的较小版本以及组合泛化分割的版本,以便我们可以在CoT提示的上下文中至少放入四个示例。CoT提示描述了到达答案所需的事实序列(参见附录G中的所有提示)。

        对于DECOMP,我们可以将分解任务(独立于上下文)从单跳问答的子任务中分离出来。如图9所示,我们在分解提示符中提供了与上下文无关的分解示例,并使用单独的子任务提示符在给定的上下文上教授QA技能。此外,我们可以选择分解的粒度,以牺牲人工的努力来提高准确性。例如,我们可以使用单个QA提示来处理所有问题,或者为不同类别的问题创建QA提示。在我们的实验中,每个子任务提示包含8个QA示例(2个问题/段)。我们评估了三种不同的提示,并在图10中报告了平均结果。

图10:CommaQA-E数据集上的EM结果。DECOMP总是优于CoT,细粒度分解的性能略微优于粗粒度分解

        我们对CommaQA进行了三个观察。无论分解的粒度或评估分割如何,DECOMP都比CoT更准确。更细粒度的分解可以为每一类问题提供更多的示例,从而帮助提高任务性能,从而提高单跳QA的准确性。DECOMP推广到新的组合,例如CommaQA的组合泛化分割,它在训练集中观察到的不可见的关系组合上测试模型。虽然CoT的得分有所下降,但两种基于分解的方法实际上都得到了一个小小的提升(这种分离中使用的关系子集对我们的QA模型来说更容易)。

图9:用于CommaQA数据集的示例提示。在左边,粗粒度分解定义了单个QA子任务,其中所有单跳问题都委托给单个子任务处理程序。在右侧,细粒度分解根据问题类型将问题分配给三个不同的子任务(参见App. G以获得提示)。这使我们能够为每个问题类型提供更多示例,从而使模型能够更有效地学习子任务。

4.4 开放域问答

        接下来,我们将演示我们的方法在开放域多跳问答任务上集成外部API调用的能力。我们在三个数据集上评估了我们的方法:(1)2WikiMultihopQA (Ho等人,2020)(2)MuSiQue (Trivedi等人,2022)(3)HotpotQA (Yang等人,2018)。

        我们在App. A中更详细地描述了这些数据集的开放域版本。我们在这里使用Codex (code- davincii -002)模型,因为它可以适应所需的更长的上下文。我们还使用Flan-T5家族的模型:Flan-T5- large (0.7B)、Flan-T5- xl (3B)和Flan-T5- xxl (11B)来评估模型尺度对DECOMP的影响。

图11:使用基于elasticsearch的检索回答开放域多跳问题的提示符。检索odqa提示如图6所示。

        图11显示了我们使用的分解提示符。分解器生成(单跳)子问题,并委托它们检索odqa(如图6所示)。如前所述,该模块检索相关文档,然后使用RC模型进行回答。检索odqa返回答案和文档,允许后续子问题使用答案(例如:

        “Mack Rides”)和多跳rcqa模型来使用文档。最后的多跳rcqa模型被提示直接或使用给定K段的CoT生成答案。

        我们将我们的方法与两个基线进行比较:A.无上下文(No- ctext),一个封闭的书籍设置基线,模型必须仅依赖其参数知识。B. NoDecomp Context (NoDecomp- ctext),一个简单的检索基线,我们使用多跳问题作为输入检索K个段落,并将其用作上下文。对于NoDecomp-Ctxt和Decomp-Ctxt, K都是通过超参数调优(App. A)来选择的。我们手动标注了20个训练集问题的cot和分解,并为所有方法采样了每个15个问题的3个提示。附录g给出了详细的提示。我们对每个数据集中的300个开发问题进行评估。

图12:在直接提示下,使用两个基本lm: Codex(左)和Flan-T5-XXL(右)在三个开放域QA数据集上回答f19。Decomp-Ctxt模型(我们的)在所有设置中都明显优于no - ctxt模型(无检索),并且也优于我们的强检索基线(NoDecomp-Ctxt QA),除了HotpotQA上的Codex可以比较。看到应用程序。A.3为较小的Flan-T5型号的结果和CoT提示。

        我们在图12中使用直接QA提示展示了所有三个数据集的结果,并在App. a中展示了其他结果。在所有设置中,Decomp-Ctxt模型的表现明显优于No-Ctxt模型,这表明可以利用外部知识来改进开放域多组QA上的少镜头模型。此外,我们表明我们的Decomp-Ctxt模型在除一个(带有HotpotQA的Codex)之外的所有设置中都优于强检索基线(NoDecomp-Ctxt)。最后,我们表明,即使使用更小的Flan-T5-XXL模型,decomp - ctext也优于所有基线,甚至可以达到与仅使用codex的系统相当的分数。

4.5 其他结果

        后处理CoT以进行错误校正 DECOMP还允许我们创建一个针对性的子任务处理程序,专注于任何系统中的错误来源。例如,算术推理的CoT通常依赖于模式(答案为.*)来提取答案,但CoT并不总是符合这个模式。相反,我们可以将答案提取分配给一个更好的子任务处理程序(GPT3),从而减少这类错误。与CoT提示相比,这在MultiArith上实现了17个百分点的改进(78%提升至95%),在GSM8K上实现了14个百分点的改进(36%提升至50.6%)(详细信息见附录B)。
        虽然DECOMP在总体上优于基线,但我们还看到DECOMP的增益在不同的提示选择(见附录D)和分解方案(见附录E)中是一致的。

5 结论

        我们提出了一种新的方法,分解提示,通过将它们分解成由更简单的子任务构建的提示程序,使用少样本提示来解决复杂的任务。从软件库中汲取灵感,我们的分配器和共享子任务以模块化的方式设计:它们使用自己的几个提示符,允许独立优化每个提示符,在必要时进一步分解子任务,甚至可以无缝地将其替换为符号系统。我们表明,在四种不同的任务和泛化设置上,分解提示优于先前的工作,将其建立为解决复杂任务的有效的少镜头范式。

  • 26
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值