跳到主要内容

思维链提示

思维链(CoT)提示

COT

图片来源:Wei et al. (2022)

Wei et al. (2022)中提出的思维链(CoT)提示通过中间推理步骤实现复杂的推理能力。您可以将其与少样本提示结合,以在需要在回答之前进行推理的更复杂任务上获得更好的结果。

提示:

这组中的奇数相加得到一个偶数:4, 8, 9, 15, 12, 2, 1。
A: 将所有奇数相加(9, 15, 1)得到25。答案为假。

这组中的奇数相加得到一个偶数:17, 10, 19, 4, 8, 12, 24。
A: 将所有奇数相加(17, 19)得到36。答案为真。

这组中的奇数相加得到一个偶数:16, 11, 14, 4, 8, 13, 24。
A: 将所有奇数相加(11, 13)得到24。答案为真。

这组中的奇数相加得到一个偶数:17, 9, 10, 12, 13, 4, 2。
A: 将所有奇数相加(17, 9, 13)得到39。答案为假。

这组中的奇数相加得到一个偶数:15, 32, 5, 13, 82, 7, 1。
A:

输出:

将所有奇数相加(15, 5, 13, 7, 1)得到41。答案为假。

哇!当我们提供推理步骤时,我们可以看到一个完美的结果。事实上,我们可以通过提供更少的示例来解决这个任务,即,只提供一个示例似乎就足够了:

提示:

这组中的奇数相加得到一个偶数:4, 8, 9, 15, 12, 2, 1。
A: 将所有奇数相加(9, 15, 1)得到25。答案为假。

这组中的奇数相加得到一个偶数:15, 32, 5, 13, 82, 7, 1。
A:

输出:

将所有奇数相加(15, 5, 13, 7, 1)得到41。答案为假。

请记住,作者声称这是一个随着足够大的语言模型而出现的新兴能力。

零样本 CoT 提示

ZEROCOT

图片来源:Kojima et al. (2022)

最近提出的一个新想法是零样本 CoT(Kojima et al. 2022),基本上是在原始提示中添加了“让我们一步一步思考”。让我们尝试一个简单的问题,看看模型的表现如何:

提示:

我去市场买了10个苹果。我给了邻居2个苹果,给了修理工2个苹果。然后我又买了5个苹果,吃了1个。我还剩下多少苹果?

输出:

11个苹果

答案是不正确的!现在让我们尝试使用特殊提示。

提示:

我去市场买了10个苹果。我给了邻居2个苹果,给了修理工2个苹果。然后我又买了5个苹果,吃了1个。我还剩下多少苹果?

让我们一步一步思考。

输出:

首先,你开始有10个苹果。
你给了邻居2个苹果和修理工2个苹果,所以你还剩下6个苹果。
然后你又买了5个苹果,现在你有11个苹果。
最后,你吃了1个苹果,所以你还剩下10个苹果。

令人印象深刻的是,这个简单的提示在这个任务中非常有效。这在您没有太多示例可用于提示时特别有用。

自动思维链(Auto-CoT)

在应用带演示的思维链提示时,这个过程涉及手工制作有效和多样化的示例。这种手动工作可能导致次优解。Zhang et al. (2022)提出了一种方法,通过利用带有“让我们一步一步思考”提示的LLMs逐个生成演示的推理链,从而消除手动工作。这种自动化过程仍可能出现生成链中的错误。为了减轻错误的影响,演示的多样性很重要。这项工作提出了Auto-CoT,它通过抽样具有多样性的问题并生成推理链来构建演示。

Auto-CoT包括两个主要阶段:

  • 阶段1):问题聚类:将给定数据集的问题分成几个簇
  • 阶段2):演示抽样:从每个簇中选择一个代表性问题,并使用简单的启发式方法生成其推理链,使用零样本 CoT。 简单的启发式方法可以是问题长度(例如,60个标记)和理由中的步骤数(例如,5个推理步骤)。这鼓励模型使用简单而准确的演示。

该过程如下图所示:

AUTOCOT

图片来源:Zhang et al. (2022)

Auto-CoT的代码可在此处找到。