Prompt Engineering: risorse e best practices

Negli ultimi anni, i progressi dell’Intelligenza Artificiale hanno segnato traguardi importanti, grazie soprattutto alle innovazioni nei modelli linguistici di grandi dimensioni (LLM). Questi modelli, quali GPT, Gemini, Claude e LLaMa, hanno rivoluzionato numerosi aspetti della vita quotidiana, dall’elaborazione delle informazioni, alla generazione di contenuti coinvolgenti. Le applicazioni degli LLM nei vari settori stanno continuando a progredire, automatizzando i compiti di routine e impattando vari settori, particolarmente nei campi della sanità e dell’educazione.

Nelle applicazioni reali, il prompt è l’input del modello e la sua progettazione può influenzare l’output in modo significativo. È qui che entra in gioco il prompt engineering, una disciplina che si è evoluta parallelamente agli LLM. Da pratica fondamentale, il prompt engineering ha assunto una forma strutturata e ben definita, con le sue tecnologie distintive e le migliori pratiche universalmente riconosciute. La progettazione del prompt è divenuta un’arte in sé, poiché determina l’efficacia e la pertinenza dell’output prodotto dal modello.

> Leggi anche: Che cosa sono e come funzionano i Large Language Model

Che cos’è il Prompt Engineering

Il termine prompt engineering si riferisce alla progettazione sistematica dei prompt di input, con l’obiettivo di guidare la risposta dell’LLM, assicurandosi che quest’ultima sia accurata, rilevante e coerente.

Il processo è fondamentale per sfruttare l’intero potenziale di questi modelli, rendendoli più accessibili e applicabili nei diversi settori. Il prompt engineering odierno include una serie di tecniche, da quelle fondamentali come il role prompting, fino a quelle più sofisticate, ad esempio il chain of thought.

> Scopri il corso “Introduzione a ChatGPT”

L’importanza del prompt engineering risiede innegabilmente nella sua capacità di plasmare la risposta degli LLM, estendendo così la loro versatilità e rilevanza in settori diversificati. Attraverso la scelta accurata dei prompt, è possibile creare nuovi paradigmi di interazione, simulare ambienti operativi complessi come le finestre di Linux e generare quiz per l’apprendimento automatico. Inoltre, i prompt possiedono una notevole capacità di auto-adattamento, suggerendo informazioni supplementari o generando output correlati per i prompt successivi.

La struttura di un prompt

Un prompt è una serie di istruzione fornite ad un LLM che programma l’output del modello stesso. Un prompt può influenzare le interazioni successive con l’LLM e fornire specifiche regole e linee guida. In altre parole, un prompt imposta il contesto per la conversazione, indicando all’LLM quali informazioni sono rilevanti e quale dovrebbe essere la forma e il contenuto dell’output.

Ad esempio, un prompt può specificare che un LLM deve generare codice solo in Python, oppure che deve sottolineare solo alcune parole di un documento e fornire ulteriori informazioni su di esse. Introducendo delle linee guida, il prompt facilita un output più strutturato e articolato.

Un prompt efficace contiene tipicamente i seguenti elementi:

  • Contesto – Fornisce informazioni esterne o contestuali che possono indirizzare il modello verso risposte più pertinenti e accurate. Ad esempio, il contesto potrebbe essere specificato come “sei un social media manager esperto”.
  • Istruzione – Presenta un compito o un’istruzione chiara che il modello deve eseguire. Questo potrebbe essere “Scrivi un post per LinkedIn su come progettare i prompt in modo efficace”.
  • Dati in Input – Rappresenta l’input o la domanda per cui si desidera ottenere una risposta. In questo caso, potrebbe essere il requisito di includere un “gancio” e una “call to action” nel post.
  • Indicatore dell’Output – Specifica il tipo o il formato dell’output desiderato. Ad esempio, potrebbe essere richiesto di presentare l’output in forma di tabella o di elenco puntato.

Non tutti questi elementi sono sempre necessari. Mettendo insieme le componenti, potremmo scrivere per esempio questo prompt:

Sei un social media manager esperto (contesto). Scrivi un post per Linkedin sul come scrivere i prompt in modo efficace (istruzione). Il post deve contenere un gancio e una call to action (dato di input).

Best practice & tricks per scrivere un prompt

Esaminiamo le migliori pratiche del prompt engineering, ovvero come istruire gli LLM per ottenere risposte chiare e precise, evitando ambiguità e allucinazioni.

  1. Essere chiari, brevi e precisi e formulare prompt non ambigui e specifici, che riescano a guidare il modello nella generazione dell’ouput desiderato. Un prompt generico o poco dettagliato produrrà un output altrettanto generico e poco adatto al contesto di utilizzo. Al contrario, un prompt preciso e dettagliato guiderà il modello nella generazione di contenuti allineati ai requisiti specifici dello scenario fornito, riducendo l’incertezza del risultato. Ad esempio, invece di chiedere all’LLM “Voglio capire meglio le innovazioni tecnologiche”, si può chiedere “Voglio capire meglio le innovazioni tecnologiche relative all’intelligenza artificiale e al machine learning”.
  2. Il role prompting consiste nell’assegnare al modello un ruolo specifico da giocare, ad esempio quello di un assistente per portare a termine un compito o di un esperto per spiegare un concetto. Ad esempio, richiedendo all’LLM di assumere il ruolo di uno storico, si otterrà un output più accurato e dettagliato su un evento storico.
  3. Resampling: questa tecnica consiste nel provare più volte lo stesso prompt, in modo da poter selezionare l’output migliore tra le varie iterazioni. Questo metodo può migliorare significativamente la qualità dell’output.
  4. Sperimentare. Data la natura non deterministica degli LLM, è necessario sperimentare e testare diversi prompt per ottenere risultati migliori. Gli LLM imparano con l’utente, quindi è possibile iniziare con prompt semplici e aggiungere gradualmente elementi e contesti per migliorare le risposte.
  5. One shot e few shot prompting. Queste tecniche consistono nel fornire all’LLM uno o più esempi da cui apprendere. La scelta tra “one shot” e “few shot”, cioè uno o più esempi, dipende dalla complessità della richiesta e dalle capacità del modello. Ad esempio, per richieste semplici e modelli potenti, potrebbe essere sufficiente un solo esempio per ottenere una risposta accurata.
  6. Verificare sempre le informazioni. Nonostante gli LLM siano addestrati su grandi quantità di dati, è importante verificare sempre l’accuratezza delle informazioni fornite. I dati possono essere inesatti e questi modelli possono essere ingannat abbastanza facilmente da tecniche come il “jailbreaking”.

Strumenti e risorse di AI prompt engineering

Esistono diverse risorse e strumenti che semplificano il processo di prompt engineering nei sistemi di intelligenza artificiale, tra cui ChatGPT e DALL‐E. Queste risorse variano da piattaforme e database a tutorial, guide, framework open-source e comunità dedicate.

Ecco alcuni esempi:

  • Prompting Guide: la guida online di GitHub che fornisce conoscenze di base sulla creazione di prompt, metodologie e modelli. È un punto di partenza molto utile per chi desidera approfondire le tecniche di intelligenza artificiale. Puoi trovarla su https://www.promptingguide.ai/it
  •  PromptBase: un ampio database di prompt compatibili con ChatGPT, Midjourney, Stable Diffusione, DALL‐E e altri. Funziona anche come marketplace per la compravendita di prompt: https://promptbase.com/
  • OpenPrompt: si tratta di un framework open-source che fornisce un ambiente flessibile e accessibile dove gli utenti possono studiare, testare e sviluppare nuove tecniche di prompt engineering per migliorare le prestazioni dei loro modelli AI. Puoi trovarlo qui: https://openprompt.co/
  • ShareGPT: Offre una piattaforma con oltre 31.000 post e commenti su ChatGPT e i suoi comandi. Serve come estensione per imparare e condividere nuovi prompt: è possibile copiare e salvare i prompt degli altri utenti per un utilizzo futuro. Link: https://sharegpt.com/
  • Best Practices di OpenAI: Questa risorsa fornisce approfondimenti e best practices direttamente da OpenAI, l’azienda che ha dato al mondo ChatGPT e DALL-E. È particolarmente utile per gli utenti alle prime armi nel prompt engineering.
  • Learn Prompting: una comunità Discord attiva che offre documenti e tutorial per il prompt engineering. È un luogo ideale per interagire con altri professionisti del settore e approfondire le proprie conoscenze sull’argomento: https://learnprompting.org/

Mentre il prompt engineering continua a evolversi, è essenziale adottare un approccio critico verso il suo ruolo come competenza digitale fondamentale del futuro. Se da un lato il prompt engineering offre potenzialità significative per migliorare l’efficacia e l’efficienza dei sistemi di intelligenza artificiale, dall’altro presenta sfide e rischi intrinseci. È imperativo affrontare in modo proattivo questioni come la trasparenza, l’etica e l’impatto socio-economico delle tecnologie basate sul prompt engineering. Solo adottando un approccio critico e riflessivo possiamo garantire che il prompt engineering sia integrato in modo responsabile e sostenibile nelle competenze digitali del futuro, contribuendo effettivamente al progresso e al benessere tecnologico.

Fonti: 

Chen, B., Zhang, Z., Langrené, N., & Zhu, S. (2023). Unleashing the potential of prompt engineering in large language models: a comprehensive review. arXiv preprint arXiv:2310.14735.

D’Agostino, A. (2023). Prompt engineering: Una Guida All’Interrogazione efficace degli LLM. Diario Di Un Analista | Data Science, Machine Learning & Analytics. https://www.diariodiunanalista.it/posts/guida-prompt-engineering/

Guida Al Prompt Engineering . Prompt Engineering Guide. (n.d.). https://www.promptingguide.ai/it

Korzyński, P., Mazurek, G., Krzypkowska, P., & Kurasiński, A. (2023). Artificial intelligence prompt engineering as a new digital competence: Analysis of generative AI technologies such as ChatGPT. Entrepreneurial Business and Economics Review.

White, J., Fu, Q., Hays, S., Sandborn, M., Olea, C., Gilbert, H., … & Schmidt, D. C. (2023). A prompt pattern catalog to enhance prompt engineering with chatgpt. arXiv preprint arXiv:2302.11382.