本文是LLM系列文章,针对《Decomposed Prompting: A MODULAR APPROACH FOR SOLVING COMPLEX TASKS》的翻译。
分解提示:一种求解复杂任务的模块化方法
- 摘要
- [1 引言](#1 引言)
- [2 相关工作](#2 相关工作)
- [3 分解提示](#3 分解提示)
- [4 案例](#4 案例)
- [5 结论](#5 结论)
摘要
小样本提示是一种使用大型语言模型(LLM)来解决各种任务的强大方法。然而,随着任务复杂性的增加,或者当任务本身的各个推理步骤很难学习时,尤其是当嵌入到更复杂的任务中时,这种方法会很困难。为了解决这一问题,我们提出了分解提示,这是一种通过将复杂任务分解(通过提示)为更简单的子任务来解决复杂任务的新方法,这些子任务可以委托给专用于这些子任务的基于提示的LLM的共享库。这种模块化结构允许每个提示都针对其特定的子任务进行优化,必要时进行进一步分解,甚至可以根据需要轻松地用更有效的提示、经过训练的模型或符号函数替换。
我们表明,分解提示的灵活性和模块性使其在使用GPT-3的小样本提示方面优于先前的工作。在符号推理任务中,我们可以将LLM难以解决的子任务进一步分解为更简单的可解子任务。当复杂性来自输入长度时,我们可以递归地将任务分解为相同的任务,但输入较小。我们还评估了我们在文本多步骤推理任务上的方法:在长上下文多跳QA上,我们可以通过单独的子任务提示更有效地教授子任务;在开放域多跳QA上,我们可以很容易地将符号信息检索模块纳入我们的分解框架中,从而提高这两项任务的性能。
1 引言
2 相关工作
3 分解提示
4 案例
5 结论
我们提出了一种新的方法,分解提示,通过将复杂任务分解为一个由更简单的子任务构建的提示程序,使用小样本提示来解决复杂任务。从软件库中汲取灵感,我们的分解器和共享子任务以模块化的方式设计:它们使用自己的少量提示,允许独立优化每个提示,必要时进一步分解子任务,甚至用符号系统无缝替换它。我们表明,分解提示在四种不同的任务和泛化设置上优于先前的工作,使其成为解决复杂任务的有效的小样本范例。