- Il prompt engineering è un campo di ricerca in continua evoluzione, con l’obiettivo di rendere la comunicazione con i modelli di intelligenza artificiale sempre più naturale e intuitiva.
- Senza un prompt engineering efficace, i risultati possono essere deludenti o addirittura dannosi.
- Scopri le tecniche per implementare il prompt engineering nei tuoi progetti di intelligenza artificiale.
Il successo planetario dell’IA generativa dipende da (almeno) tre fattori: le sue innate potenzialità, l’accessibilità degli strumenti e la semplicità di utilizzo. Tuttavia, c’è differenza tra usare tool come ChatGPT, Bard o Perplexity.ai e ottenere da essi esattamente ciò che si vuole. L’accessibilità dei tool fa sì che buona parte degli utenti si limiti a fornire ai modelli delle istruzioni (prompt) predefinite o a interagire con essi come fossero esseri umani. In entrambi i casi, i risultati ottenuti non sempre sono convincenti. La parola chiave, in questi casi, è prompt engineering.
Indice degli argomenti
Cos’è il prompt engineering e perché è importante
Come è noto, le istruzioni che l’utente fornisce al modello costituiscono il prompt, che rappresenta un autentico linguaggio di interazione tra l’uomo e la macchina. Nonostante si tratti di un linguaggio naturale, occorre strutturare correttamente le istruzioni per permettere al modello di comprendere l’intento della richiesta (intent) e tutti gli elementi di contesto. Questo è l’unico modo per ottenere risultati di valore indipendentemente dall’output desiderato: un testo, una tabella, del codice, un’immagine o un video.
È in questo contesto che il prompt engineering assume un ruolo centrale, poiché fornisce alle persone l’abilità di comunicare correttamente con le macchine, ottenendo risultati di alta qualità in modo molto più rapido rispetto a qualsiasi attività manuale, dalla scrittura di un testo all’editing delle immagini. Il prompt engineering è dunque una disciplina fondata su metodologie il cui fine è strutturare in modo efficace le istruzioni, tenendo conto delle peculiarità del modello di AI generativa utilizzato e dell’obiettivo perseguito dall’utente.
Progettare prompt efficaci: linee guida e strategie
Sul tema della progettazione dei prompt esistono manuali dedicati, ed è inoltre una disciplina che evolve ogni giorno. La progettazione dei prompt richiede una comprensione approfondita del meccanismo di funzionamento, delle capacità e delle limitazioni dei modelli di AI generativa, nonché (ovviamente) delle proprie specifiche esigenze.
Partendo delle basi, occorre allinearsi sulla struttura del prompt, per la quale si identificano solitamente 5 elementi di base:
- La Persona, ovvero il ruolo che il modello AI deve adottare;
- Le istruzioni in senso stretto: è l’elemento cardine del prompt e risponde alla domanda “qual è l’output desiderato?”
- Informazioni aggiuntive. Vi rientra tutto il contesto informativo che può essere utilizzato dal modello per fornire risposte pertinenti. La qualità della risposta dipende dalla quantità e dal valore delle informazioni di contesto che vengono fornite al modello. Qui è fondamentale la chiarezza.
- Contenuto di input, qualora si richieda al modello di agire su contenuto esterno (es, del testo o del codice già scritto);
- Formato di output, come una tabella, un testo con dei bullet point, codice, immagine…
Per costruire un prompt efficace, questi elementi dovrebbero essere sempre presenti. Gli effettivi contenuti vanno invece modulati ad hoc in funzione dell’obiettivo che ci si pone: un task di text extraction porterà ad un prompt diverso da uno finalizzato alla generazione di codice o alla classificazione di informazioni estratte da un database esterno.
Superare le sfide nel prompt engineering: le soluzioni avanzate
Come in ogni disciplina, chi si cimenta con il prompt engineering deve affrontare delle sfide. In particolare, deve indirizzare i propri sforzi verso la chiarezza e la precisione, ma evitando di essere troppo specifico per non limitare eccessivamente la creatività e la capacità del modello di generare un output inedito.
Negli ultimi mesi si è creata molta letteratura sulle sfide del prompt engineering. Le più significative sono:
- Overfitting, ovvero istruzioni troppo specifiche o ristrette, per i motivi di cui sopra;
- Model bias. Le istruzioni possono portare a risultati che riflettono pregiudizi o bias indesiderati presenti nel set di dati di addestramento;
- Controllo delle risposte: verificare la veridicità delle risposte (soprattutto quelle testuali) può essere laborioso. Il modello, in questo caso un LLM, non è in grado di discernere tra il vero e il falso, per cui un controllo è fondamentale.
- Eccessiva complessità. Creare prompt efficaci richiede tempo e impegno. Alcuni utenti ritengono (all’inizio) che procedere in maniera manuale sia ancora più rapido ed efficace.
Per vincere queste sfide, ma soprattutto per generare output il più possibile coerenti con le proprie richieste, sono state sviluppate apposite tecniche per lo sviluppo dei prompt, tra cui:
- Zero shot
È la più semplice, che dà libertà alle capacità generative del modello non fornendogli esempi. Il rischio di bias è alto ed è necessario controllare bene tutte le risposte. - Few-shot prompting
Insieme agli elementi cardine del prompt, si forniscono informazioni contestuali (in-context learning) ed esempi dell’output desiderato. Più numerosi sono gli esempi, migliore è la risposta fornita dal modello. - Chain of Thought prompting
Sfrutta la capacità del modello di tener traccia delle informazioni dell’intera conversazione. Il percorso logico viene scomposto in singoli task, attraverso i quali si accompagna il modello verso l’output desiderato. Può limitare il bias e ridurre le allucinazioni. - Generated knowledge
È una tecnica interessante che usa un LLM (Large Language Model) per generare nuova conoscenza, che poi viene impiegata per migliorare il prompt stesso.
In tutto ciò, è sempre possibile interrogare il modello per ottenere una valutazione qualitativa del proprio prompt (feedback), unita a suggerimenti per migliorarlo e renderlo più efficace.
Misurare l’efficacia dei prompt: metriche e valutazioni
Un tema importante è quello della valutazione delle performance del prompt. Ovvero: come si misura la sua efficacia?
Innanzitutto, distinguiamo tra metriche oggettive e soggettive. Tra le prime rientrano:
- l’accuratezza della risposta e la correttezza semantica: in entrambi i casi, l’output richiede (al momento) una valutazione umana;
- la rilevanza dell’output, ovvero l’allineamento con l’intento del prompt;
- la valutazione delle ripetizioni concettuali, un altro tipico limite degli attuali LLM.
Sono invece tipiche metriche soggettive:
- il tone of voice (ToV);
- la chiarezza;
- la coerenza del messaggio.
Per quanto concerne, infine, il tema delle tecniche di valutazione, oltre a survey e interviste un metodo d’elezione è l’A/B Testing. Per fare un esempio, è possibile intraprendere due strade parallele di comunicazione con un bot e poi verificare quale delle due sia in grado di accorciare i tempi di interazione o di migliorare la customer satisfaction.
Consigli pratici per implementare il prompt engineering nei progetti di IA
Un conto sono i prompt, un altro è il prompt engineering, che è una metodologia per progettare prompt efficaci. Il primo è un mondo estremamente vasto, i cui contenuti spaziano – appunto – dalle generazione di audio e video alla scrittura di contenuti per il web. Per ognuna delle centinaia di use case esistono prompt efficaci.
Per quanto concerne, invece, il processo/metodo da adottare per realizzarli, lo potremmo sintetizzare in questo modo:
- Definizione degli obiettivi;
- Identificazione degli use case e degli output desiderati;
- Creazione di un primo prompt di base (Zero Shot);
- Rifinitura del prompt con progressiva aggiunta di contesto utilizzando una tecnica più avanzata (Few Shot, Chain of Thought…);
- Test e analisi secondo i criteri precedenti (A/B Testing);
- Sviluppo e documentazione delle best practice;
Il futuro del prompt engineering nell’evoluzione dell’IA conversazionale
L’aspetto più interessante del prompt engineering è che, nonostante esistano studi, corsi e metodologie efficaci, resta pur sempre un campo di ricerca emergente, destinato ad evolvere progressivamente. I modelli linguistici continueranno a migliorare, e diventerà possibile creare prompt sempre più sofisticati ed efficaci.
Un trend interessante è quello che conduce a una maggiore semplificazione. Oggi, realizzare prompt in grado di generare output complessi e allineati con le esigenze di utenti professionali non è semplice, al di là delle schematizzazioni. Con l’evoluzione dei modelli sottostanti, potrebbe diventare molto più facile ottenere i risultati voluti, riducendo la quantità e la qualità delle informazioni che oggi è necessario includere in ogni prompt. In altri termini, la comunicazione con l’AI diventerà più fluida e naturale rispetto ad oggi. Non si escludono inoltre avanzamenti importanti nella tecniche di generazione automatica dei prompt e un intreccio sempre più forte con il tema della customizzazione, che già oggi sta prendendo piede.