链式思考(Chain-of-Thought, CoT)提示

通过中间推理步骤实现复杂推理能力

什么是链式思考?

链式思考(Chain-of-Thought, CoT)提示由 Wei 等人(2022)引入,通过中间推理步骤实现了复杂的推理能力。你可以将其与少样本提示相结合,以便在回答之前进行推理的更复杂任务上获得更好的结果。

CoT 提示示例

以下是一个使用链式思考提示的示例,任务为判断一组数中的奇数之和是否为偶数:

这组数中的奇数加起来是偶数:4、8、9、15、12、2、1。

A:将所有奇数相加(9、15、1)得到 25。答案为 False。

这组数中的奇数加起来是偶数:17、10、19、4、8、12、24。

A:将所有奇数相加(17、19)得到 36。答案为 True。

这组数中的奇数加起来是偶数:16、11、14、4、8、13、24。

A:将所有奇数相加(11、13)得到 24。答案为 True。

这组数中的奇数加起来是偶数:17、9、10、12、13、4、2。

A:将所有奇数相加(17、9、13)得到 39。答案为 False。

这组数中的奇数加起来是偶数:15、32、5、13、82、7、1。

A:

输出:

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

可以看到,在提供推理步骤时得到了完美的结果。实际上,可以通过提供更少的示例来解决此任务,仅一个示例似乎就足够了。

注意:链式思考是一种涌现能力,只有在足够大的语言模型上才会出现。

零样本 CoT 提示

零样本 CoT 由 Kojima 等人(2022)提出,核心思路非常简单——在原始提示后加上"让我们逐步思考"即可。

先看一个不使用 CoT 的例子:

我去超市买了 10 个橘子。送了邻居 2 个,又给了快递小哥 2 个。后来又买了 5 个,自己吃了 1 个。我还剩多少个橘子?

输出:

11 个橘子

答案是不正确的!现在让我们尝试使用零样本 CoT 提示:

我去超市买了 10 个橘子。送了邻居 2 个,又给了快递小哥 2 个。后来又买了 5 个,自己吃了 1 个。我还剩多少个橘子?

让我们逐步思考。

输出:

首先,你从 10 个橘子开始。

你送了邻居 2 个、给了快递小哥 2 个,所以还剩 6 个。

然后又买了 5 个,所以现在有 11 个。

最后自己吃了 1 个,所以还剩 10 个橘子。

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

CoT 与少样本提示的对比

特性少样本提示链式思考(CoT)
是否需要示例需要可选(零样本 CoT 不需要)
推理能力有限强(通过中间步骤推理)
适用任务简单分类、格式化算术、常识推理
模型规模要求中等较大(涌现能力)

下一步