🛠️ Cosa si intende per Prompt Engineering​?

Il prompt engineering consiste in una serie di tecniche per ottimizzare i prompt da fornire ai Large Language Model (LLM) come ChatGPT o Claude, ed è un campo di studio particolarmente importante. È possibile infatti aumentare sensibilmente la precisione nelle risposte, specie in domande legate al ragionamento, attraverso delle istruzioni specifiche da inserire all’interno del prompt.

Ma i pregi del prompt engineering non si fermano qui: attraverso prompt specifici è possibile guidare le risposte per rendere i LLM più efficaci in diversi contesti e adeguare il tipo di linguaggio usato o anche limitare in alcuni casi il fenomeno delle allucinazioni AI.

In questo articolo vedremo alcune delle tecniche più importanti, con qualche esempio di utilizzo.

👨🏻‍🔧 Role-prompting

È uno dei metodi di prompt engineering più diffusi e conosciuti, grazie alla sua semplicità ma anche alla sua efficacia.

L’idea è quella di assegnare un ruolo ad un LLM, immaginando un interlocutore ben preciso a cui fare le nostre domande e che vorremmo ci rispondesse, e dirglielo usando strutture come “Immagina di essere un…” o “Sei un…”. Grazie a questo metodo possiamo guidare le sue risposte perché siano più coerenti e con un tono di voce più adeguato, oltre che più precise e corrette.

Quanti più dettagli diamo nel nostro prompt al LLM, e tanto più sarà precisa e specifica la risposta.

Un esempio di utilizzo:

📋 One-shot e Few-Shot

Il One-Shot è un metodo che consiste nel fornire un esempio esplicito di risposta al LLM, permettendogli di imparare lo stile e il formato delle risposte da noi desiderato. Questo metodo è molto utile nei casi in cui vogliamo che le risposte abbiano un formato specifico, o se vogliamo rendere gli output più brevi e concisi.

Per task più complicati si può ricorrere invece al Few-shot prompting, fornendo due o più esempi di risposta al LLM poiché un singolo esempio potrebbe essere insufficiente per cogliere i pattern più sottili nelle risposte. Tuttavia, per i modelli più avanzati e sofisticati, potrebbe essere sufficiente il metodo one-shot; pertanto, la linea guida generale è di partire sempre con un singolo esempio, per ricorrere poi al few-shot se non si è soddisfatti dei risultati.

La struttura di un prompt one-shot esplicita il ruolo dell’utente e del LLM attraverso sigle come D: per “domanda” e “R:” per risposta.

Riportiamo nella tabella qua sotto un esempio di utilizzo:

💭 Chain-of-Thought

Il Chain-of-Thought (CoT) è una tecnica per migliorare le prestazioni degli LLM nei ragionamenti logici e consiste nel chiedere tutti i ragionamenti intermedi per arrivare ad una soluzione. Questo ha due vantaggi principali: si crea maggior contesto per le risposte, migliorandone la precisione, ma si esplicitano anche i passaggi fatti dal LLM in modo da capire esattamente come è arrivato a quella conclusione e valutarne la correttezza.

Il formato da seguire in questo caso è aggiungere al nostro prompt la frase “Procediamo passo per passo.” in maniera da forzare la scrittura di tutti i ragionamenti ed è particolarmente efficace in task non banali, come analisi di casi studio o debugging di codice.

È interessante infine notare come questa tecnica si sia così efficace che gli LLM più recenti mostrano una naturale propensione a seguire e articolare chain-of-thought senza espliciti prompt.

📚Generated Knowledge

Quest’ultimo metodo è usato per domande di ragionamento, e si articola in due fasi. Immaginiamo di avere una domanda ben precisa da porre al LLM: il primo passo è chiedere di generare informazioni riguardo al contesto della domanda senza porla direttamente.

Il secondo passo è invece usare una formula del tipo “Usando le informazioni che hai raccolto, rispondi a questa domanda:” , inserendo quindi la domanda da porre. In questo modo, il LLM sviluppa una comprensione più approfondita del contesto raccogliendo informazioni prima di formulare la risposta finale, riducendo quindi gli errori di ragionamento o rispondendo in maniera totalmente differente grazie alle informazioni extra che ha trovato.

⚠️ Spoiler Alert: il seguente esempio contiene un piccolo spoiler sulla trama del film “Pulp Fiction”, leggete con cautela!

Un esempio pratico:

💬 GPT per creare Prompt

Concludiamo questa carrellata con un consiglio: per scrivere prompt più efficaci e precisi possiamo farci aiutare da chi i LLM li conosce bene… ovvero i LLM stessi! Esistono infatti svariati GPT custom per la creazione di prompt migliori, tra i quali citiamo “Prompt Perfect” o “Prompt Engineer”, configurati specificamente per analizzare e ottimizzare i prompt, basandosi su un’ampia raccolta di esempi di successo e best practice del settore.

Questi possono essere utili specialmente per task complessi o specialistici come un’analisi finanziaria, di mercato o di un documento legale, correggendo le ambiguità ed evidenziando elementi mancanti, oltre a suggerire le tecniche di prompt engineering più indicate per il caso specifico.

Nome Cognome

Andrea Barbieri

Data Analyst