最少到最多提示过程

最少到最多提示过程 (Least to Most prompting, LtM)是对思维链提示过程 (CoT prompting) 的进一步发展,灵感来自于面向儿童的实际教育策略。LtM技术首先将问题分解为子问题,并逐个解决。

与思维链提示过程类似,问题被分解为一系列相互依赖的子问题。然而,在LtM中,这些子问题被逐个解决。与思维链不同的是,先前子问题的解决方案被输入到提示中,以尝试解决下一个问题。这种渐进式的提示过程允许模型逐步构建解决整个问题所需的推理链。

通过将问题分解为更小的、逐步解决的子问题,LtM提示过程为模型提供了更多的机会来推理和生成准确的答案。它模拟了一种渐进学习的方法,使模型能够从简单到复杂地解决问题,提高了整体的答案质量和一致性。

least_to_most_formal-23db97bcd5ecbabe7d5db9b0d0645741.png

LtM 的图示

示例:回复客户咨询

让我们考虑一个稍微复杂的客服问题:

原始回答是错误的(目前仍在退货期内),让我们将问题分解为子问题来解决:

让我们尝试解决第一个子问题:

通过解决第一个子问题,我们就能解决整个问题。如果 GPT-3 不能立即提供答案,我们可以继续解决下一个子问题,直到找到答案。请注意,我们使用了提示短语“让我们一步一步来”,这对于此示例非常有效,但并非必需。

示例:字符连接

LtM 最初是通过 few-shot 提示的方式引入的,而不是显式指令将问题分解为多个步骤(如上所示)。除此之外,有时也可以使用单一提示而不是提示链来实现它。让我们看一个字符连接的例子,例如给定输入词语“思考、机器”,我们要输出“考器”。

第一次尝试:标准提示

即使使用更先进的模型(如 text-davinci-003),标准提示的表现与 few-shot 示例相比仍然很差。

第二次尝试:思维链

思维链的表现比标准提示好得多。这是因为思维链允许模型考虑提取每个单词的最后一个字母,从而将复杂性降低为连接已经收集的字母。然而,这种方法在更长的输入上可能会遇到问题。

第三次尝试:LtM(单一提示)

使用 LtM,我们通过重新表述之前连接的结果来增强思维链的概念。这种方法使每个步骤变得简单,每次只需连接一个字符。这种方法取得了很好的效果,即使在包含 12 个单词的情况下,也能得到正确的结果。

这种方法看起来与思维链非常相似,但在概念上有所不同。在这里,每一步都引入了先前连接的结果。例如,在示例“思考、机器、学习”中,它不会单独连接字符“考”、“器”和“习”,而是连接“考”和“器”,然后连接“考器”和“习”。由于重新引入了先前步骤的结果,模型现在可以扩展到更长的链,因为它每一步都携带着增量结果,并且每个步骤内需要的操作很少。

(注:在中文示例中,使用 '|' 而不是 ',',因为中文的逗号通常不被识别为分隔符)。

结论

在具有 12 个词的字符问题上,思维链的准确率为 34%,而 LtM 的准确率为 74%(该论文使用 text-davinci-002 作为模型)(译注:上面的示例因为翻译成了中文,所以准确率与原文中的值应该不同)。

示例:组合泛化问题(compositional generalization) (SCAN)

SCAN 基准测试要求模型将自然语言转换为动作序列。例如,句子“run left and walk twice”应转换为“TURN_LEFT + RUN + WALK * 2”。当面对训练集中更长序列的输入时,语言模型的表现尤为糟糕。

第一次尝试:标准提示

使用简单的标准提示,text-davinci-003表现出色,但仍然失败。

第二次尝试:LtM,第一步 - 缩减

在这个尝试中,我们使用了两个不同的提示。第一个提示用于将输入问题缩减为一个步骤序列。第二个提示用于将这个缩减后的步骤序列映射到实际操作中。

这两个提示相当冗长,因此我们使用了压缩的Python符号来表示操作,以节省标记(tokens)。

第一步将自然语言描述缩减为更明确但仍类似于人类的语言。这有助于按顺序解决步骤问题。例如,“jump around left twice”被简化为“jump left” -> TURN_LEFT + JUMP 和“jump around left”-> (TURN_LEFT + JUMP) * 4。同样,缩减步骤也适用于解释重复概念(twice、thrice等)。

第三次尝试:LtM,第二步 - 映射

在第二步中,我们使用缩减后的结果,并再次使用相当冗长的提示(14个例子)将简化的自然语言描述转换为一系列操作。

在这里,我们注入第一步的输出:

"jump around left twice" can be solved by: "jump left", "jump around left", "jump around left twice". "walk opposite left thrice" can be solved by: "walk opposite left", "walk opposite left thrice". So, "jump around left twice after walk opposite left thrice" can be solved by: "jump left", "jump around left", "jump around left twice", "walk opposite left", "walk opposite left thrice".

到 LLM 中。

结论

LtM 带来了多项提升:

  • 相对于思维链提高了准确性
  • 在难度高于提示的问题上提升了泛化能力
  • 在组合泛化方面的性能得到了显著提高,特别是在SCAN基准测试3

使用 text-davinci-002(论文中使用的模型)的标准提示解决了 6% 的 SCAN 问题,而 LtM 提示则取得了惊人的 76% 的成功率。在 code-davinci-002 中,结果更为显著,LtM 达到了 99.7% 的成功率。

标签: prompt教程, prompt基础, prompt进阶, prompt应用, prompt核心, prompt提示, 提示工程, 提示工程师, prompt提示工程, prompt基础教程, prompt进阶教程, prompt高级教程, prompt核心教程, prompt代码教程, prompt菜鸟教程, prompt命令教程, prompt使用教程