Prompt engineering: cos’è e perché serve alle aziende?



Tutti sappiamo che il modo in cui si chiede di fare qualcosa può cambiare drasticamente il risultato. E questo è ancor più vero da quando, in tutto il mondo, si è diffuso l’utilizzo dei modelli linguistici basati su sistemi di Intelligenza Artificiale, come ChatGPT e Bard, per generare contenuti di vario tipo. Così come nella vita reale, anche l’accuratezza dell’output degli AI generative creator è correlata all’adeguatezza della richiesta: domande poco chiare o addirittura formulate in modo sbagliato hanno elevate probabilità di generare output non pertinenti e allucinati.

A cura di Luigi Simeone, Chief Technology Officer Moxoff

Cos’è la prompt engineering?

La prompt engineering, o ingegneria dei prompt, è una tecnica per migliorare le prestazioni dei modelli linguistici. Si basa sul concetto che più un prompt è specifico, più aumenta la probabilità di ottenere un output desiderato dalla generazione di testo, alla traduzione linguistica fino alla scrittura creativa. Un prompt è una breve stringa di testo che deve essere chiaro e conciso per fornire al modello linguistico le informazioni di cui ha bisogno per generare un output accurato e pertinente.

Ad esempio, affinché l’intelligenza artificiale generi un testo creativo, è necessario fornire un prompt di qualità, stimolante e specifico, così come per scrivere una storia su un argomento o un articolo. Tuttavia non è necessario fornire al modello linguistico tanti dettagli; fondamentale è la qualità del prompt, che si ottiene selezionando le parole, le frasi, le strutture di frase e la punteggiatura più appropriate. L’ingegnerizzazione dei prompt, a tutti gli effetti, si potrebbe quindi descrivere come l’arte di guidare un’intelligenza artificiale rendendola sempre più efficiente e comprensiva nell’elaborazione del Natural Language Processing (NLP), che consente a un algoritmo di intelligenza artificiale generativa di decifrare il linguaggio umano e produrre risultati utili.

Senza addentrarsi troppo in argomenti tecnici, è opportuno osservare che con lo stesso nome di prompt engineering si designa anche in senso più ampio la branca della ricerca volta alla creazione e all’utilizzo di particolari funzioni (dette prompt) da applicare all’input nell’ambito del funzionamento d’un LLM (Large Language Model) [2] per addestrarlo alla soluzione d’un particolare problema di NLP (Natural Language Processing). Da questo punto di vista, l’argomento del presente articolo, cioè la forma testuale del dato in ingresso fornito dall’utente, rappresenta dunque un caso particolare.

Perché è nata la prompt engineering?

La necessità di comunicare con l’intelligenza artificiale e di ottenere risposte adeguate alla domanda nasce con l’accesso del grande pubblico ai sistemi linguistici di intelligenza artificiale generativa. In particolare, ChatGPT ha permesso a tutti di sperimentare l’innovativa modalità di dialogo tra l’uomo e l’intelligenza artificiale. Tuttavia, l’ampia diffusione di questi sistemi di AI ha fatto emergere anche il problema di come vengono poste le domande e del controllo delle risposte, della comprensione del contesto linguistico umano da parte dell’AI e quindi di come utilizzare specifici input per insegnare all’algoritmo a fornire gli output desiderati. Poiché i modelli di NLP generativi producono in uscita le parole ritenute più probabili in base a un certo contesto, essi garantiscono la verosimiglianza del risultato ma non la sua aderenza ai dati utilizzati nella fase d’addestramento; pertanto, quando sussiste solo la prima ma non la seconda, si manifesta il fenomeno delle cosiddette allucinazioni.

Proprio per limitare il fenomeno dell’ hallucination e permettere al modello di ottenere le massime prestazioni consentite, assume un ruolo fondamentale la figura dell’utente mediante il processo di interazione messo in atto con la macchina [3], che deve ispirarsi a due princìpi cardine:

  1. la formulazione di istruzioni prive di ambiguità [4] usando delimitatori quando necessario al fine di rendere più chiaro l’input, definendo all’occorrenza la struttura o il formato desiderato di output (json, xml, ecc.) ed infine fornendo esempi di risposta direttamente nel prompt (few-shot).
  2. il fornire al modello il tempo e un supporto al suo “pensare”, mediante scomposizione di un problema complesso in una sequenza di quesiti più semplici [6], ovvero dalla definizione di sotto step logici intermedi di ragionamento, che se risolti portano al risultato finale (chain of thought), istruendo eventualmente il modello a controllare la sua stessa risposta mediante ulteriori check.

Dalla necessità di migliorare e guidare l’apprendimento delle AI nasce dunque il prompt engineering e la professione del prompt engineer o prompt manager, ovvero un comunicatore in grado di formulare “prompt” o istruzioni che guidano l’AI verso la produzione di risposte appropriate in ogni settore, dalla sanità al retail, dall’istruzione alla sicurezza.

Perché la prompt engineering serve all’azienda che vuole usare l’AI?

L’obiettivo dell’ingegnerizzazione dei prompt è verificare l’output del modello linguistico e creare un contesto fatto di informazioni aggiuntive come parole chiave, ad esempio, indicazioni e regole destinate sia a ottenere risultati specifici dall’intelligenza artificiale, sia ad allenare i modelli linguistici con input specifici per settori commerciali, aziendali e professionali diversi.

Ogni settore usa linguaggi, termini tecnici e specifici per produrre contenuti, dalla comunicazione, ai social media al marketing, che richiedono continua creatività ma anche rispetto del tone of voice aziendale. I sistemi di intelligenza artificiale generativa, adeguatamente addestrati con tecniche di prompt engineering, sono in grado di generare un numero enorme di contenuti e modifiche diverse solo con il clic di un pulsante.

Sarà però necessario progettare un prompt stabile al fine di ottenere i contenuti di testo, video o immagini che riescano a seguire e replicare lo stile linguistico e il tono di voce secondo le linee guida approvate dalla direzione di ogni azienda.

Esempi d’applicazione 

Seguendo i criteri basilari di univocità di interpretazione della richiesta e di suddivisione di un tema in problemi minori più agevoli da trattare, lo scopo della prompt engineering consiste nel delineare le caratteristiche fondamentali che un testo fornito in ingresso (il prompt) deve possedere per migliorare le prestazioni della macchina in relazione a determinate potenzialità di grande importanza del suo funzionamento.

Ad esempio, l’assunzione di un particolare punto di vista nell’analizzare un tema, la capacità di generare domande all’utente per inquadrare meglio un argomento, l’individuazione di molteplici approcci alternativi per raggiungere un risultato, l’esposizione degli elementi che hanno portato ad una certa conclusione e l’abilità di fornire risposte in un particolare formato.
Dal momento che la materia è d’estremo interesse e attualità, la ricerca in questo ambito è florida e alcuni schemi di prompt da utilizzare per i fini indicati sono già stati delineati in letteratura.

Ad esempio per quanto riguarda l’ottica che il modello di linguaggio deve adottare nel valutare una questione, il suggerimento è quello di dire esplicitamente alla macchina qual è la figura umana o la categoria professionale o anche l’entità inanimata in cui immedesimarsi, aggiungendo di produrre il responso nella stessa modalità che questa seguirebbe nella realtà. Prompt di questo tipo sono i seguenti [1].


“From now on, act as a security reviewer. Pay close attention to the security details of any code that we look at. Provide outputs that a security reviewer would regarding the code” e “You are going to pretend to be a Linux terminal for a computer that has been compromised by an attacker. When I type in a command, you are going to output the corresponding text that the Linux terminal would produce”.

D’altra parte per la produzione in automatico di domande d’approfondimento si prescrive all’utente di dare indicazioni al LLM di generare interrogazioni alternative ritenute migliori di quella originale nel porre i presupposti per la soluzione di un problema, come ad esempio nel prompt [1] “From now on, whenever I ask a question about a software artifact’s security, suggest a better version of the question to use that incorporates information specific to security risks in the language or framework that I am using and ask me if I would like to use your question instead”. Per proporre questo genere di addestramento ai modelli linguistici adottati in aziende con richieste specifiche, ecco che diventano necessari esperti formati alla prompt engineering, ovvero la professione che oggi e domani sarà sempre più richiesta da ogni tipo di azienda.

Bibliografia

[1] J. White, Q. Fu, S. Hays, M. Sandborn, C. Olea, H. Gilbert, A. Elnashar, J. Spencer-Smith, D.C. Schmidt, A prompt pattern catalog to enhance prompt engineering with ChatGPT. arXiv:2302.11382, 2023.
[2] P. Liu, W. Yuan, J. Fu, Z. Jiang, H. Hayashi, G. Neubig, Pre-train, prompt, and predict: A systematic survey of prompting methods in natural language processing. ACM Computing Surveys, 55(9), 1-35, 2023.
[3] L. Henrickson, A. Meroño-Peñuela. Prompting meaning: a hermeneutic approach to optimising prompt engineering with ChatGPT. AI & Soc. 2023.
[4] A. Bozkurt, R.C. Sharma. Generative AI and Prompt Engineering: The Art of Whispering to Let the Genie Out of the Algorithmic World. Asian Journal of Distance Education, 18(2), 2023.
[5] J. Kocoń, I. Cichecki, O. Kaszyca, M. Kochanek, D. Szydło, J. Baran, J. Bielaniewicz, M. Gruza, A. Janz et al. ChatGPT: Jack of all trades, master of none. Information Fusion, 99, 2023.
[6] T.F. Heston, C. Khun. Prompt Engineering in Medical Education. Int. Med. Educ., 2, 198–205, 2023.
[7] J. Hutson, B. Robertson. Exploring the Educational Potential of AI Generative Art in 3D Design Fundamentals: A Case Study on Prompt Engineering and Creative Workflows. Global Journal of Human-Social Science: A Arts & Humanities – Psychology, 23(2), 2023.
[8] R. Peres, M. Schreier, D. Schweidel, A. Sorescu. On ChatGPT and beyond: How generative artificial intelligence may affect research, teaching, and practice. International Journal of Research in Marketing, 40, 269–275, 2023.
[9] M. Wong, Y.-S. Ong, A. Gupta, K.K. Bali,C. Chen. Prompt Evolution for Generative AI: A Classifier-Guided Approach. In 2023 IEEE Conference on Artificial Intelligence (CAI), 226-229, 2023.
[10] S. Arvidsson, J. Axell. Prompt engineering guidelines for LLMs in Requirements Engineering. Thesis, University of Gothenburg Chalmers University of Technology, June 2023.
[11] J. Qadir. Engineering Education in the Era of ChatGPT: Promise and Pitfalls of Generative AI for Education. In 2023 IEEE Global Engineering Education Conference (EDUCON), 1-9, 2023.
[12] F. Fui-Hoon Nah, R. Zheng, J. Cai, K. Siau, L. Chen. Generative AI and ChatGPT: Applications, challenges, and AI-human collaboration. Journal of Information Technology Case and Application Research, 25(3), 277-304, 2023.




Contattaci