Non esistono risposte sbagliate, solo domande mal poste
Recentemente ho avuto la possibilità di approfondire le tematiche del prompt engineering, che potremmo definire “l’arte di fare le domande giuste a ChatGPT” (il sistema di AI che abbiamo già introdotto nei precedenti articoli sulla AI).
Per comprendere il concetto di prompt engineering e il suo impatto sull’interazione con i Large Language Models (LLM), occorre convincersi che la qualità delle risposte generate dai LLM dipende direttamente dalla qualità delle domande poste.
In altre parole, se l’input è di cattiva qualità, l’output lo sarà altrettanto – come peraltro sa benissimo chi abbia interagito con qualsiasi forma di programmazione.
Prompt Engineering: la chiave per interagire con i Large Language Models
Il prompt engineering si rivela come uno strumento potente per guidare i LLM nella produzione di output di alta qualità. Attraverso la corretta formulazione dei prompt, è possibile influenzare significativamente le risposte generate, facilitando anche la verifica delle fonti e la coerenza dei risultati.
Esistono, ad esempio, delle tecniche per generare risposte che migliorano iterativamente. Oppure si può partire da un indice, raffinarlo e svilupparne i contenuti. O, ancora, chiedere al LLM di riformulare le proprie domande in versione migliorata, attingendo alla conoscenza specifica del corpus di dati su cui il LLM è stato addestrato.
Se si chiede al LLM di impersonare un esperto in un certo settore, si ottiene in risposta un lessico adeguato, che attinge a testi specialistici.
Combinando le tecniche si possono ottenere risultati interessanti.
Certamente la verifica dei dati e l’indirizzo da parte dell’utilizzatore non sono sostituibili, ma un prompt ben fatto può facilitare, e di molto, il lavoro umano.
Esempi Pratici
1. Persona Pattern: Immagina di chiedere al LLM di agire da esperto in un certo campo. Otterrai una risposta con un lessico specifico, che attinge dalla parte specializzata dei dati.
2. Question Refinement Pattern: Se chiedi al LLM di riformulare una domanda su un argomento complesso, potresti ottenere una versione più chiara e precisa della tua richiesta, facilitando la comprensione e l’approfondimento del tema.
3. Cognitive Verifier Pattern: Richiedendo al modello di generare domande aggiuntive per affinare la risposta a una domanda complessa, come il numero di specie di piante in un ecosistema, si ottiene un approfondimento accurato e dettagliato sull’argomento.
4. Outline Expansion Pattern: Serve a guidare i Large Language Models nella generazione di outline dettagliati a partire da input ad alto livello. Attraverso questo pattern, è possibile istruire il modello a:
- Generare un outline a punti in base all’input fornito
- Chiedere su quale punto espandere l’outline
- Creare un nuovo outline più dettagliato per il punto selezionato
- Chiedere nuovamente su quale punto espandere successivamente
5. Fornire esempi al LLM nel prompt è spesso utile per indirizzare il modello sulla strada desiderata. Questa tecnica si chiama in-context learning.
Attraverso l’uso creativo e mirato del prompt engineering, è possibile sfruttare appieno le potenzialità dei Large Language Models, garantendo output di qualità e risposte pertinenti. La corretta formulazione delle domande diventa quindi il fulcro per ottenere informazioni precise e affidabili, trasformando il modo in cui interagiamo con la tecnologia e le risorse informative a nostra disposizione.
Il gioco piu bello del mondo
Ho provato a giocare con una versione di GPT che non ha dati sull’ultima coppa del mondo. Ho chiesto di impersonare l’allenatore dell’Argentina nella finale ed a pianificare le sostituzioni.
Ecco il dialogo:
>Io
>Qual è la tua data di cutoff?
>ChatGPT
>La mia data di cutoff è gennaio 2022, il che significa che la mia conoscenza si ferma a quel punto e non ho informazioni aggiornate successivamente a quella data.
>Io
>Ultima coppa del mondo di calcio che conosci?
>ChatGPT
>La mia conoscenza si ferma a gennaio 2022, quindi l’ultima Coppa del Mondo di calcio di cui sono a conoscenza è stata quella del 2018, che si è svolta in Russia e è stata vinta dalla nazionale francese.
Agisci come se tu fossi l’allenatore dell’Argentina durante la finale
>Io
>Agisci come se tu fossi l’allenatore dell’Argentina durante la finale dell’ultima coppa del mondo, che si e’ tenuta in Qatar nel 2022.
La lista completa della squadra dell’Argentina, che ha raggiunto la finale con la Croazia, era la seguente:
Posi- zione | N° | Giocatore | Club | Età | Presenze |
GK | 1 | Franco Armani | River Plate (ARG) | 36 | 18 |
GK | 23 | Emiliano Martinez | Aston Villa (ENG) | 30 | 19 |
GK | 12 | Geronimo Rulli | Villarreal (SPA) | 30 | 4 |
DEF | 8 | Marcos Acuna | Siviglia (SPA) | 30 | 43 |
DEF | 2 | Juan Foyth | Villarreal (SPA) | 24 | 16 |
DEF | 25 | Lisandro Martinez | Man United (ENG) | 24 | 10 |
DEF | 26 | Nahuel Molina | Atletico Madrid (SPA) | 24 | 19 |
DEF | 4 | Gonzalo Montiel | Siviglia (SPA) | 25 | 19 |
DEF | 19 | Nicolas Otamendi | Benfica (POR) | 34 | 93 |
DEF | 6 | German Pezzella | Real Betis (SPA) | 31 | 32 |
DEF | 13 | Cristian Romero | Tottenham (ENG) | 24 | 12 |
DEF | 3 | Nicolas Tagliafico | Lione (FRA) | 30 | 42 |
MID | 7 | Rodrigo De Paul | Atletico Madrid (SPA) | 28 | 44 |
MID | 24 | Enzo Fernandez | Benfica (POR) | 21 | 3 |
MID | 17 | Alejandro ‘Papu’ Gomez | Siviglia (SPA) | 34 | 15 |
MID | 20 | Alexis Mac Allister | Brighton (ENG) | 23 | 8 |
MID | 14 | Exequiel Palacios | Bayer Leverkusen (GER) | 24 | 20 |
MID | 5 | Leandro Paredes | Juventus (ITA) | 28 | 46 |
MID | 18 | Guido Rodriguez | Real Betis (SPA) | 28 | 26 |
FWD | 9 | Julian Alvarez | Man City (ENG) | 22 | 12 |
FWD | 16 | Thiago Almada | Atlanta United (USA) | 21 | 1 |
FWD | 11 | Angel Di Maria | Juventus (ITA) | 34 | 124 |
FWD | 21 | Paulo Dybala | AS Roma (ITA) | 28 | 34 |
FWD | 15 | Angel Correa | Atletico Madrid | 25 | 22 |
FWD | 22 | Lautaro Martinez | Inter Milan (ITA) | 25 | 40 |
FWD | 10 | Lionel Messi | PSG (FRA) | 35 | 165 |
QualI sostituzioni suggeriresti e quando? Spiega il tuo piano partita
Io>
Hai scelto la seguente formazione iniziale per la finale (4-3-3, da destra a sinistra): 23. E. Martinez (GK) — 26. Molina, 13. Romero, 19. Otamendi, 3. Tagliafico — 7. De Paul, 24. E. Fernandez, 20. Mac Allister — 11. Di Maria, 10. Messi, 9. Alvarez
Ti aspetti una partita molto intensa ed equilibrata, con alte probabilità di arrivare ai supplementari.
Il tuo compito è pianificare le sostituzioni, assumendo che non si verifichino infortuni. Nella partita di semifinale contro la Croazia sono state effettuate le seguenti sostituzioni: L. Martinez per Paredes (62°) Palacios per De Paul (74°) Dybala per Alvarez (74°) Correa per Mac Allister (86°) Foyth per Molina (86°)
Quali sostituzioni suggeriresti e quando? Spiega il tuo piano partita.
ChatGPT
>ChatGPT
Considerando che mi aspetto una partita intensa e equilibrata che potrebbe arrivare ai supplementari, è importante gestire attentamente le sostituzioni per mantenere fresca la squadra e avere le migliori opzioni disponibili nei momenti cruciali del match.
- Dybala per Alvarez (60°): Dato che ci aspettiamo una partita intensa, voglio introdurre Dybala per portare un nuovo impulso all’attacco e sfruttare la sua creatività e capacità nel dribbling per mettere sotto pressione la difesa avversaria.
- Correa per Mac Allister (70°): A questo punto del match, potremmo avere bisogno di più freschezza e dinamismo a centrocampo per mantenere il controllo del gioco e resistere alla pressione avversaria. Correa può portare energia e determinazione nella fase di centrocampo, aiutando a chiudere gli spazi e supportare l’attacco.
- Palacios per E. Fernandez (80°): Avendo superato il tempo regolamentare e con il rischio dei supplementari, è fondamentale avere un centrocampo solido e resistente. Palacios può apportare stabilità e sicurezza a centrocampo, aiutando a difendere e mantenere il possesso del pallone.
- Foyth per Molina (85°): Considerando la stanchezza accumulata e la necessità di rafforzare la difesa per evitare gol dell’avversario nei minuti finali, Foyth può essere inserito per garantire maggiore solidità e protezione sulla fascia destra.
- Lautaro Martinez per Messi (90°): Nel caso in cui la partita arrivi ai supplementari e considerando la stanchezza accumulata da Messi, potrebbe essere prudente sostituirlo per un giocatore fresco per eventuali rigori. Martinez può fornire fisicità ed un’opzione valida nell’attacco.
Questo piano di sostituzioni mira a mantenere un equilibrio tra freschezza e qualità in campo, adattandosi alle esigenze della partita e preparandoci al meglio per affrontare eventuali tempi supplementari o una sessione di rigori.
Niente male, no?