Prompt-Engineering-Guide/pages/techniques/cot.zh.mdx
RealTong 3de62e5bd3
Update: Chinese translation
- Update Chinese translation of the techniques section
- For a better reading experience on the Chinese internet, modify the spacing between Chinese and English characters.
2024-03-02 18:47:57 +08:00

110 lines
4.5 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Chain-of-Thought Prompting
import {Screenshot} from 'components/screenshot'
import COT from '../../img/cot.png'
import ZEROCOT from '../../img/zero-cot.png'
import AUTOCOT from '../../img/auto-cot.png'
## 链式思考CoT提示
<Screenshot src={COT} alt="COT" />
图片来源:[Wei等人2022](https://arxiv.org/abs/2201.11903)
在 [Wei等人2022](https://arxiv.org/abs/2201.11903) 中引入的链式思考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。
```
哇!我们可以看到在提供推理步骤时得到了完美的结果。实际上,我们可以通过提供更少的示例来解决此任务,即仅一个示例似乎就足够了:
*提示:*
```
这组数中的奇数加起来是偶数4、8、9、15、12、2、1。
A将所有奇数相加9、15、1得到25。答案为False。
这组数中的奇数加起来是偶数15、32、5、13、82、7、1。
A
```
*输出:*
```
将所有奇数相加15、5、13、7、1得到41。答案为False。
```
请记住,作者声称这是足够大的语言模型才会出现的新兴能力。
## 零样本 COT 提示
<Screenshot src={ZEROCOT} alt="Zero-shot COT" />
图片来源:[Kojima等人2022](https://arxiv.org/abs/2205.11916)
最近提出的一个新想法是 [零样本CoT](https://arxiv.org/abs/2205.11916) Kojima 等人2022年它基本上涉及将“让我们逐步思考”添加到原始提示中。让我们尝试一个简单的问题看看模型的表现如何
*提示:*
```
我去市场买了10个苹果。我给了邻居2个苹果和修理工2个苹果。然后我去买了5个苹果并吃了1个。我还剩下多少苹果
```
*输出:*
```
11个苹果
```
答案是不正确的!现在让我们尝试使用特殊提示。
*提示:*
```
我去市场买了10个苹果。我给了邻居2个苹果和修理工2个苹果。然后我去买了5个苹果并吃了1个。我还剩下多少苹果
让我们逐步思考。
```
*输出:*
```
首先您从10个苹果开始。
您给了邻居和修理工各2个苹果所以您还剩下6个苹果。
然后您买了5个苹果所以现在您有11个苹果。
最后您吃了1个苹果所以您还剩下10个苹果。
```
令人印象深刻的是,这个简单的提示在这个任务中非常有效。这在您没有太多示例可用于提示时特别有用。
## 自动思维链Auto-CoT
当使用思维链提示时,这个过程需要手工制作有效且多样化的例子。这种手动工作可能会导致次优解决方案。[Zhang et al. 2022](https://arxiv.org/abs/2210.03493) 提出了一种消除人工的方法,即利用 LLMs “让我们一步一步地思考” 提示来生成一个接一个的推理链。这种自动过程仍然可能在生成的链中出现错误。为了减轻错误的影响演示的多样性很重要。这项工作提出了Auto-CoT它对具有多样性的问题进行采样并生成推理链来构建演示。
Auto-CoT 主要由两个阶段组成:
- 阶段1**问题聚类**:将给定问题划分为几个聚类
- 阶段2**演示抽样**:从每组数组中选择一个具有代表性的问题,并使用带有简单启发式的 Zero-Shot-CoT 生成其推理链
简单的启发式方法可以是问题的长度例如60 个 tokens和理由的步骤数例如5 个推理步骤)。这鼓励模型使用简单而准确的演示。
该过程如下图所示:
<Screenshot src={AUTOCOT} alt="AUTOCOT" />
图片来源:[Zhang等人2022](https://arxiv.org/abs/2210.03493)
Auto-CoT 的代码可在这里找到:[Github](https://github.com/amazon-science/auto-cot)。