mirror of
https://github.com/dair-ai/Prompt-Engineering-Guide
synced 2024-11-02 15:40:13 +00:00
92 lines
3.4 KiB
Plaintext
92 lines
3.4 KiB
Plaintext
# Chain-of-Thought Prompting
|
|
|
|
import {Screenshot} from 'components/screenshot'
|
|
import COT from '../../img/cot.png'
|
|
import ZEROCOT from '../../img/zero-cot.png'
|
|
|
|
|
|
## Chain-of-Thought (CoT) Prompting
|
|
|
|
<Screenshot src={COT} alt="COT" />
|
|
|
|
Image Source: [Wei et al. (2022)](https://arxiv.org/abs/2201.11903)
|
|
|
|
Introduced in [Wei et al. (2022)](https://arxiv.org/abs/2201.11903), chain-of-thought (CoT) prompting enables complex reasoning capabilities through intermediate reasoning steps. You can combine it with few-shot prompting to get better results on more complex tasks that require reasoning before responding.
|
|
|
|
*Prompt:*
|
|
```
|
|
The odd numbers in this group add up to an even number: 4, 8, 9, 15, 12, 2, 1.
|
|
A: Adding all the odd numbers (9, 15, 1) gives 25. The answer is False.
|
|
|
|
The odd numbers in this group add up to an even number: 17, 10, 19, 4, 8, 12, 24.
|
|
A: Adding all the odd numbers (17, 19) gives 36. The answer is True.
|
|
|
|
The odd numbers in this group add up to an even number: 16, 11, 14, 4, 8, 13, 24.
|
|
A: Adding all the odd numbers (11, 13) gives 24. The answer is True.
|
|
|
|
The odd numbers in this group add up to an even number: 17, 9, 10, 12, 13, 4, 2.
|
|
A: Adding all the odd numbers (17, 9, 13) gives 39. The answer is False.
|
|
|
|
The odd numbers in this group add up to an even number: 15, 32, 5, 13, 82, 7, 1.
|
|
A:
|
|
```
|
|
|
|
*Output:*
|
|
```
|
|
Adding all the odd numbers (15, 5, 13, 7, 1) gives 41. The answer is False.
|
|
```
|
|
|
|
Wow! We can see a perfect result when we provided the reasoning step. In fact, we can solve this task by providing even fewer examples, i.e., just one example seems enough:
|
|
|
|
*Prompt:*
|
|
```
|
|
The odd numbers in this group add up to an even number: 4, 8, 9, 15, 12, 2, 1.
|
|
A: Adding all the odd numbers (9, 15, 1) gives 25. The answer is False.
|
|
|
|
The odd numbers in this group add up to an even number: 15, 32, 5, 13, 82, 7, 1.
|
|
A:
|
|
```
|
|
|
|
*Output:*
|
|
```
|
|
Adding all the odd numbers (15, 5, 13, 7, 1) gives 41. The answer is False.
|
|
```
|
|
|
|
Keep in mind that the authors claim that this is an emergent ability that arises with sufficiently large language models.
|
|
|
|
## Zero-shot COT Prompting
|
|
|
|
<Screenshot src={ZEROCOT} alt="Zero-shot COT" />
|
|
|
|
Image Source: [Kojima et al. (2022)](https://arxiv.org/abs/2205.11916)
|
|
|
|
One recent idea that came out more recently is the idea of [zero-shot CoT](https://arxiv.org/abs/2205.11916) (Kojima et al. 2022) that essentially involves adding "Let's think step by step" to the original prompt. Let's try a simple problem and see how the model performs:
|
|
|
|
*Prompt:*
|
|
```
|
|
I went to the market and bought 10 apples. I gave 2 apples to the neighbor and 2 to the repairman. I then went and bought 5 more apples and ate 1. How many apples did I remain with?
|
|
```
|
|
|
|
*Output:*
|
|
```
|
|
11 apples
|
|
```
|
|
|
|
The answer is incorrect! Now Let's try with the special prompt.
|
|
|
|
*Prompt:*
|
|
```
|
|
I went to the market and bought 10 apples. I gave 2 apples to the neighbor and 2 to the repairman. I then went and bought 5 more apples and ate 1. How many apples did I remain with?
|
|
|
|
Let's think step by step.
|
|
```
|
|
|
|
*Output:*
|
|
```
|
|
First, you started with 10 apples.
|
|
You gave away 2 apples to the neighbor and 2 to the repairman, so you had 6 apples left.
|
|
Then you bought 5 more apples, so now you had 11 apples.
|
|
Finally, you ate 1 apple, so you would remain with 10 apples.
|
|
```
|
|
|
|
It's impressive that this simple prompt is effective at this task. This is particularly useful where you don't have too many examples to use in the prompt. |