Prompt-Engineering-Guide/pages/techniques/cot.it.mdx
2023-04-13 14:30:15 +02:00

93 lines
3.6 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)
Introdotto in [Wei et al. (2022)](https://arxiv.org/abs/2201.11903), il prompt a catena di pensieri (CoT) consente di ottenere capacità di ragionamento complesse attraverso fasi di ragionamento intermedie. Si può combinare con il prompt few-shot per ottenere risultati migliori su compiti più complessi che richiedono un ragionamento prima di rispondere.
*Prompt:*
```
La somma dei numeri dispari di questo gruppo corrisponde ad un numero pari: 4, 8, 9, 15, 12, 2, 1.
R: Sommando tutti i numeri dispari (9, 15, 1) si ottiene 25. La risposta è Falsa.
La somma dei numeri dispari di questo gruppo è un numero pari: 17, 10, 19, 4, 8, 12, 24.
R: La somma di tutti i numeri dispari (17, 19) risulta 36. La risposta è Corretta.
La somma dei numeri dispari di questo gruppo è un numero pari: 16, 11, 14, 4, 8, 13, 24.
R: La somma di tutti i numeri dispari (11, 13) risulta 24. La risposta è Corretta.
La somma dei numeri dispari di questo gruppo è un numero pari:: 17, 9, 10, 12, 13, 4, 2.
R: La somma di tutti i numeri dispari (17, 9, 13) risulta 39. La risposta è Falsa.
I numeri dispari di questo gruppo si sommano in un numero pari.: 15, 32, 5, 13, 82, 7, 1.
R:
```
*Output:*
```
La somma di numeri dispari (15, 5, 13, 7, 1) risulta 41. La risposta è Falsa.
```
Wow! Possiamo vedere un risultato perfetto quando abbiamo fornito la fase di ragionamento. In effetti, possiamo risolvere questo compito fornendo ancora meno esempi, cioè un solo esempio sembra sufficiente:
*Prompt:*
```
La somma dei numeri dispari in questo gruppo è un numero pari: 4, 8, 9, 15, 12, 2, 1.
R: Sommando tutti i numeri dispari (9, 15, 1) si ottiene 25. La risposta è Falsa.
La somma dei numeri dispari in questo gruppo è un numero pari: 15, 32, 5, 13, 82, 7, 1.
R:
```
*Output:*
```
La somma dei numeri dispari (15, 5, 13, 7, 1) è 41. La risposta è Falsa.
```
Si tenga presente che gli autori sostengono che si tratta di una capacità emergente che si manifesta con modelli linguistici sufficientemente grandi.
## Zero-shot COT Prompting
<Screenshot src={ZEROCOT} alt="Zero-shot COT" />
Image Source: [Kojima et al. (2022)](https://arxiv.org/abs/2205.11916)
Un'idea emersa più di recente è quella della [zero-shot CoT](https://arxiv.org/abs/2205.11916) (Kojima et al. 2022) che consiste essenzialmente nell'aggiungere "Pensiamo passo dopo passo" al prompt originale. Proviamo un problema semplice e vediamo come si comporta il modello:
*Prompt:*
```
Sono andato al mercato e ho comprato 10 mele. Ho dato 2 mele al vicino e 2 al riparatore. Poi sono andato a comprare altre 5 mele e ne ho mangiata una. Quante mele mi sono rimaste?
```
*Output:*
```
11 mele
```
La risposta è errata! Proviamo ora con il prompt speciale.
*Prompt:*
```
Sono andato al mercato e ho comprato 10 mele. Ho dato 2 mele al vicino e 2 all'operaio. Poi sono andato a comprare altre 5 mele e ne ho mangiata una. Quante mele mi sono rimaste?
Pensiamo passo dopo passo.
```
*Output:*
```
In primo luogo, si è partiti da 10 mele.
Hai dato via 2 mele al vicino e 2 all'operaio, quindi ti sono rimaste 6 mele.
Poi ha comprato altre 5 mele, per cui ora ne ha 11.
Infine, avete mangiato 1 mela, quindi ti rimarranno 10 mele.
```
È impressionante come questo semplice prompt sia efficace nello svolgere questo compito. Dimostra di essere particolarmente utile quando non si hanno molti esempi da utilizzare nel prompt.