[论文解读] Decomposed Prompting: A Modular Approach for Solving Complex Tasks
分解式提示(DecomP)将复杂任务分解为由模块化子任务提示处理的较简单子任务,并可选用符号工具或外部工具,从而在多个推理任务中提升小样本性能,并实现组件的灵活复用与替换。
Few-shot prompting is a surprisingly powerful way to use Large Language Models (LLMs) to solve various tasks. However, this approach struggles as the task complexity increases or when the individual reasoning steps of the task themselves are hard to learn, especially when embedded in more complex tasks. To address this, we propose Decomposed Prompting, a new approach to solve complex tasks by decomposing them (via prompting) into simpler sub-tasks that can be delegated to a library of prompting-based LLMs dedicated to these sub-tasks. This modular structure allows each prompt to be optimized for its specific sub-task, further decomposed if necessary, and even easily replaced with more effective prompts, trained models, or symbolic functions if desired. We show that the flexibility and modularity of Decomposed Prompting allows it to outperform prior work on few-shot prompting using GPT3. On symbolic reasoning tasks, we can further decompose sub-tasks that are hard for LLMs into even simpler solvable sub-tasks. When the complexity comes from the input length, we can recursively decompose the task into the same task but with smaller inputs. We also evaluate our approach on textual multi-step reasoning tasks: on long-context multi-hop QA task, we can more effectively teach the sub-tasks via our separate sub-tasks prompts; and on open-domain multi-hop QA, we can incorporate a symbolic information retrieval within our decomposition framework, leading to improved performance on both tasks. Datasets, Code and Prompts available at https://github.com/allenai/DecomP.
研究动机与目标
- 推动在复杂任务的少样本求解中取得改进,超越单提示推理。
- 引入一个模块化分解框架,其中分解器提示子任务处理程序以解决子问题。
- 实现子任务处理程序的复用和替换,包括符号工具或外部系统。
- 展示在符号运算、长上下文问答和开放域多跳问答等方面的性能改进。
提出的方法
- 提出一个分解器大语言模型(LLM),为复杂查询生成类似程序序列的子任务。
- 通过专用的子任务处理程序实例化每个子任务,该处理程序可以是另一个提示程序或一个符号函数。
- 使用上下文内的示例独立训练分解器和每个子任务处理程序(模块化提示)。
- 允许递归或分层分解以处理极长的输入或嵌套的子问题。
- 将外部工具(例如 Elasticsearch)作为子任务处理程序集成以执行检索任务。
- 使用对八个数据集的贪婪推断进行评估,覆盖符号任务、长上下文问答和开放域多跳问答。
实验结果
研究问题
- RQ1与标准的链式推理提示相比,分解式提示是否能在复杂任务上提升小样本性能?
- RQ2模块化分解是否能够在不改变整个系统的情况下替换或升级子任务处理程序?
- RQ3递归与分层分解是否能推广到更长的输入和更复杂的推理?
- RQ4将符号工具或检索工具作为子任务处理程序引入对开放域问答的影响?
- RQ5后处理或对子任务进行纠错对整体准确性有何影响?
主要发现
- DecomP 在若干任务上优于标准的 CoT 提示,并且对更长的输入和未见组合有更好的泛化。
- 递归分解使列表反转任务在长度上的泛化超越标准的 CoT。
- 在 DecomP 框架中加入检索子任务(Elasticsearch)提升开放域多跳问答在多个数据集上的表现。
- 用定向子任务处理程序对 CoT 进行后处理在算术文字题上带来显著提升(例如 MultiArith 提升 17 分,GSM8K 提升 14 分)。
- DecomP 保持模块化:子任务提示可以单独改进或替换,而无需重做整个系统,并且可在需要时连接外部工具。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。