11 min read

Prompt Engineering 101: Cosa è, esempi pratici e perché potrebbe essere una direzione di carriera

Cosa è il Prompt Engineering? 20 esempi di domande che puoi fare a ChatGPT ordinate per utilità. E' un lavoro del futuro?
Prompt Engineering 101: Cosa è, esempi pratici e perché potrebbe essere una direzione di carriera
Prompt: Gjeir Tjelta producing music on a commodore 64 in his house in 1989 Photo taked by Sony Cinematic Realistic - preso dalla nostra raccolta di prompt su Notion.

La tagline del blog è “Il futuro è già qui, solo non è stato ancora equamente distribuito” è una frase dell'autore William Gibson (“The future is already here, it’s just not evenly distributed.”in originale): ho deciso quindi di parlare davvero di una carriera che già esiste, che diventerà di sicuro molto importante in futuro ma che passa sotto i radar della maggior parte delle persone.

Parliamo dei Prompt Engineer, ovvero le persone esperte nel scrivere in modo che i chatbot rispondano nel migliore dei modi.

Fare Prompt Engineering non è una cosa nuova, e possiamo dire che già adesso con Google search ci sono utenti base e utenti pro, che usano le possibilità che ci offre Google Search.

Raccolta di prompt di Midjourney su Notion

Raccolta di prompt di Midjourney su Notion.so
Ecco il link al mio Notion. Il modo migliore per avere spunti su cosa chiedere a Midjourney.

Poi nella seconda metà del 2022 è arrivato lo tsunami: con Midjourney e ChatGPT la creazione di immagini e contenuti è arrivata al grande pubblico. L'intelligenza artificiale ha rivoluzionato il modo in cui interagiamo con la tecnologia ed è già diventata parte integrante della nostra vita quotidiana.

Pensiamo agli assistenti vocali, ai chatbot sui siti, al suddetto google.

Abbiamo visto che, nonostante gli evidenti limiti, le sfide tecniche sono state superate, quello che adesso devono affrontare sono i limiti dell'essere umano che con queste AI si deve interfacciare.

È qui che entra in gioco il prompt engineering.

L'ingegneria dei prompt è una tecnica utilizzata per migliorare i risultati ottenibili da questi modelli grazie alla capacità di scrivere per farsi capire.

Come milioni di altre persone persone, anch'io mi sono appassionato all'IA con ChatGPT, OpenAI, Stable Diffusion, MidJourney...

E, per come sono fatto, quando mi piace una cosa voglio andare in profondità abbastanza da capirne il funzionamento. Credo di essere lo stereotipo del power user.

Per questo motivo non mi sono mai accontentato di guardare i risultati e dire "che bello", ma ho deciso di perdere/ investire del tempo a imparare a scrivere per avere delle risposte utili.

E, magicamente, man mano che costruisco le mie competenze in materia di prompting, i risultati che vedo sono di qualità superiore.

Ecco cosa ho imparato in questi mesi.

Ultimo Update:

3 Marzo 2022

Cosa è il Prompt Engineering?

Anche se esiste un prompt engineering richiesto nella fase di costruzione e allenamento dei modelli (e viene pagato pure MOLTO bene, vedi più sotto), in questo post parliamo delle query che facciamo ai modelli di AI (MidJourney, ChatGpt e quello che ci sarà quando leggi questo).

Query vuol dire quesito ed è il comando scritto dall'utente per ricavare informazioni riguardanti il contenuto di una database (o di una AI, nel nostro caso)

Queste query richiedono una serie di abilità tecniche, ma anche creative e di cultura orizzontale (finalmente i T-shaped talent hanno trovato pane per i loro denti). 

Ecco alcune delle competenze che servono per il prompt Engineering

  • Comprensione dei concetti di IA e apprendimento automatico: Per creare messaggi efficaci, è importante avere una comprensione dei concetti e dei principi di base dell'IA e dell'apprendimento automatico, come le reti neurali, l'elaborazione del linguaggio naturale e l'apprendimento profondo. Conoscere questo permette di fare richieste utili: è essenziale per evitare di spremere un sasso e lamentarsi che non esca del succo  (vedi il mio post sul tizio che usava ChatGPT per fare dei calcoli)
  • Conoscenza del modello specifico di IA: Per creare prompt efficaci, è importante avere una buona conoscenza del modello specifico di IA con cui si sta lavorando, i prompt di GPT-3 di OpenAI sono molto diversi da quelli di Midjourney, che sono quelli di Dall-e. Questo include ovviamente una conoscenza dei dati di addestramento e di tutte le caratteristiche o capacità specifiche che può avere. Midjourney ha un'estensione (nijijourney)  specializzata in immagini dagli anime giapponesi per esempio.
  • Pulizia di pensiero: se con gli esseri umani il verbale e il paraverbale ci aiutano tantissimo quando dobbiamo esprimerci, con un AI testuale questo non succede: avere chiarezza di dove siamo, cosa vogliamo ottenere e sapere i passi intermedi è essenziale.
  • Competenze creative: La creatività, la capacità di pensare "come se ", pensare fuori dagli schemi, sono vitali per uscire dalle impasse. E' il momento di tirare fuori il libro "6 cappelli per pensare" di De Bono o per lo meno ripassare il suo modello.
  • Abilità comunicative: Per creare suggerimenti efficaci, è importante avere una buona comprensione delle capacità comunicative necessarie per comunicare efficacemente gli input e i risultati desiderati al modello di intelligenza artificiale. Il sito "modellimentali.com" ha una raccolta di modelli comuncativi che dovete sapere.
  • Flessibilità nell'accettare i risultati. Se chiedo qualcosa e la risposta non mi soddisfa non è il trasformarsi in un trattore e porre sempre la stessa domanda che farà migliorare la qualità delle risposte

Prompt chaining

Piccolo excursus sul prompt chaining. Al momento i prompt sono diretti: a domanda c'è una risposta. Sappiamo bene che il mondo però non funziona così e quindi oltre alle competenze elencate sopra anche la capacità di spezzettare un un compito complesso in micro passaggi è probabilmente molto importante. In questo modo ogni risposta al vostro prompt è la base del prompt successivo.

Come competenza per un buon Prompt quindi direi anche quella di aver la visione larga di un "Project Manager".

Esistono già progetti che permettono ai sistemi di costruire delle catene di comandi, e appena rilasciano documentazione ci ritorno.

  • Dust è un progetto open source che collega API di diversi servizi per permettere di eseguire compiti multi passaggio.
  • Langchain promette di essere qualcosa di simile

Struttura del prompt di ChatGPT

Se ancora non lo hai fatto, leggiti prima l'Articolo introduttivo al Prompt Engineering di ChatGPT:

Anatomia di un Prompt: Introduzione
Cosa è un prompt? I modelli di intelligenza artificiale generativa si interfacciano con l’utente attraverso input prevalentemente testuali. Dici al modello cosa fare attraverso un’interfaccia testuale e il modello cerca di portare a termine l’attività. Quello che dici al modello di fare in senso la…

Nell'articolo ho parlato di due elementi: Istruzioni e domanda e ti ho fornito alcuni esempi, alcuni anche complessi (catena di pensiero e il roleplaying) che portano a risultati incredibili.

Ma adesso incominciamo a fare sul serio:

Capire cosa sa l'AI sull'argomento

Il (primo) segreto per scrivere buoni prompt è capire cosa il GPT-3 sa del mondo e come far sì che il modello usi queste informazioni per generare risultati utili.

Risposta al primo colpo oppure contesto, un po' alla volta

Se ChatGPT non risponde al primo colpo è utile dare un po' di contesto per fare in modo che l'AI capisca la direzione, peschi i dati corretti e solo a quel punto aggiungere contenuti e costruire le domande un po' alla volta.

Un primo flusso utile è questo:

  1. Definire il tipo di problema che vuoi risolvere: Domanda? Generazione di testo? calcoli? pensieri complessi?
  2. Chiediti: lo strumento che sto utilizzato è fatto per risolvere il mio problema (perchè impuntarsi a usare ChatGpt per fare i calcoli quando puoi farlo con excel?)
  3. Chiediti se c'è un modo di avere una risposta al primo colpo.
  4. Se la risposta è no, pensa a un modello esterno che potresti applicare.
  5. Crea quindi una domanda, e pensa alla modo in cui vorresti avere una risposta
  6. Se credi che devi inserire degli esempi esterni, fallo, ma usa una varietà di esempi senza però uscire dal seminato.

A questo io applico molto spesso lo STAR Model, modello di comunicazione che continua a rivelarsi di una flessibilità rara.

Lo Star Model, in breve

Il modello STAR è uno dei sistemi più flessibili per descrivere e avere una soluzione. STAR è l’acronimo di

  • Situation – Situazione
  • Task – Compito
  • Action – Azione
  • Result – Risultato

Per approfondimenti vai su ModelliMentali.com - sito che fornisce modelli di pensiero pronti all'uso

Modello # 28: STAR Model per descrivere e dar valore i propri risultati - ModelliMentali.com
Il modello STAR è uno dei sistemi più flessibili per descrivere e avere una soluzione. STAR è l’acronimo di Situation – Situazione Task – Compito Action – Azione Result – Risultato E’ stato sviluppato dalla Development Dimensions International (DDI) azienda di consulenza aziendale e come vedremo è p…

GPT3 In azione…

In cosa si può usare ChatGPT senza farsi ridere dietro?

Certo molti hanno già scritto dei libri con ChatGpt

Al momento due sono le direzioni che vedo più promettenti:

  • Brain Storming (quindi punti vista multipli, roleplaying, sviluppare la bozza di un contenuto, chiedere di applicare un modello comunicativo)
  • Formattare i dati.

Quello su cui NON è ancora pronta

  • Scrivere racconti interessanti.

Qualche Applicazione di GPT3 in pratica

  • Punti di vista multipli. Inzia con "I want you to act as a <persona- cosa>" "Agisci come se fossi il miglior copywriter del mondo, Agisci come se fossi un computer con risorse infinite."
    Utilizza i 7 cappelli per pensare di DeBono o la Walt Disney Strategy di Dilts per generare idee fuori dalla tua zona di conoscenza.
  • Sistemare / scrivere prima bozza di Contenuti (da un articolo alla cover letter e Curriculum per la ricerca lavoro)
  • Generare una lista di idee e contenuti correlati per scrivere un articolo. "Sto facendo un articolo sul <argomento> per <nicchia>, quali sono i 10 problemi dei <persone nella nicchia> nel <argomento> ?" - Io di solito creo una mappa mentale, guardo i rami più scarni e chiedo a ChatGpt di generare contenuti.
  • Spiegare Argomenti complessi in parole povere. Anche se la superficialità non ha mai aiutato nessuna causa è vero che a volte "farsi spiegare un argomento come se avessi 7 anni" potrebbe essere il piccolo passo. Poi però non fermatevi alla seconda elementare, cerchiamo di arrivare almeno alla complessità della prima superiore :-)
  • Raccontare usando un particolare stile narrativo o voce autoriale. In italiano fa un gran pastrocchio di dialetti, ma in inglese funziona bene. Utilità? Boh.
  • CSS & formattazione Pagine Html. Anche se fare il prompt giusto presuppone una conoscenza in materia, da quello che ho visto ChatGpt genere CSS di qualità decente.
  • Tradurre Contenuti. DeepL forse è meglio ma avere un sistema che traduce e sistema a richiesta è decisamente comodo.
  • Idee su compleanni, idee regalo, biglietti di auguri. Dato che ChatGPT è un modello statistico chiedere qualcosa di super comune darà delle ottime risposte comuni.
  • Consigli su cultura Pop. Esattamente come sopra. Più un argomento è pop più dati esistono sull'argomento.

Applicazioni che mi lasciano ancora perplesso

  • Suggerimenti comunicativi - se è vero chatGPT è in grado di fornire buoni consigli per le cose "superficiali" è anche vero che è stato nutrito da migliaia di pagine copia incolla scritte da persone totalmente inette sull'argomento. La possibilità che dice sciocchezze è piuttosto alta. Usatelo al massimo per chiedere chi è il massimo esperto su un argomento, poi usate Google.
  • Scrivere Codice. Lo hanno venduto come l'ammazza Programmatori e sono sicuro che lo sarà tra poco, almeno quelli entry level. Al momento però a parte alcuni piccoli snippet (scrivimi un plugin per wordpress) può essere solo di supporto, anche il fatto di rivedere e correggere il codice è un "aggiungi rumore glorificato"
  • Chiedere Accordi di una canzone. Per ora i consigli che mi ha dato hanno fatto ridere. Mi piacerebbe se i vari Dj / musicisti che mi seguono facessero delle prove migliori (rispondi alla mail please, adesso ha l'indirizzo corretto - Grazie Marco per avermelo fatto notare)
  • Matematica. Anche se la qualità è migliorata e chiedendo la catena di pensiero si ottengono risultati molto migliori, la qualità delle risposte è da prima media e comunque MOLTO sotto a quanto faccia un semplice excel.
  • Generazione di testi. Ok un testo poco utile è meglio di nessun testo, ma davvero qualcuno ha il coraggio di scrivere articoli con ChatGpt? Ma davvero fior fiore di persone consigliano di scrivere articoli con esso? Se per lavoro fai il social media manager e la qualità dei tuoi testi è peggiore di ChatGPT, io mi farei qualche domanda
print screen del codice Javascript per aprire i link in un nuovo tab su Ghost
Una lettrice del blog, Luisa (grazie) mi fa notare che i link esterni non vengono aperti in un nuovo Tab. Ha ragione. Quindi cosa c'è di meglio per fare un print screen?

Applicazioni a metà del guado

fanno già il loro, ma non meglio di un essere umano.

  • Correggere il codice. Se inserisci dei pezzi di codice chiedendo di correggerli e hai abbastanza pazienza allora potresti trovare il bug.
  • Generare Query SQL - all'alba del 2023 mi sono messo a studiare SQL, e mi sta aiutando, ma non so quanto sia robusta come applicazione: immagino sia abbastanza superficiale
  • Sentiment Analysis. Per il momento la quantità dei dati in input è troppo bassa per analizzare grosse quantità di dati.
  • Formattare testo e trasformarlo in Dati strutturati. Lo fa e lo fa anche bene: il limite grosse è la quantità di caratteri in output richiesti. "Estrai i valori (nome, cognome, email) come un semplice file Json"  - "crea una tabella con nome, cognome, email"... "Estrai nome e cognome e postali separati da |"
  • Virtual Assistant - risponde spesso molto più velocemente di un google e spesso ci basta una risposta più o meno corretta velocemente.
  • Chiedere di Valutare un testo. "Mi valuti in una scala da 1 a 10 (con 6 la sufficienza)  dandomi anche due righe di feedback questo testo: <Testo>" - Fate attenzione perchè raramente ti stronca dei testi anche se fanno schifo e i consigli sono sempre positivi. Se siete cresciuti a suon di ciabattate perchè "hai preso 8, ed è il tuo dovere" forse sono poco util

Direzione di carriera?

Anche se rido grassamente all'esplosione di corsi che ti aiutano a fare i milioni di euri con un libro scritto da ChatGpt - Ricordiamoci che molte delle professioni che ci faranno guadagnare la pagnotta tra 10 anni adesso ancora non esistono.

Fino ad oggi l'unico prompting che potevi usare era quello di Google. Benchè la differenza tra una persona che sa cercare e uno che non sa farlo equivale a decine ore-uomo in un'azienda, non ho mai sentito nessuno - oltre al sottoscritto - che lo chiede durante il colloquio. Questa skill quindi non è quindi considerata.

La capacità di creare una pivot table su excel (voglio proprio prenderla alla larga sul prompting) è già valutate meglio in azienda, ma e anche inflazionata. E' una skill base per ogni millenial.

Cosa succede però se le AI diventano obiquee a ogni strumento aziendale? Ecco che la capacità di interrogare l'interfaccia diventa un'abilità importante.

La anthropic cerca Prompt engineer con paga da 175K-335K ! preso da qui

Tanto da farci una carriera?  Forse no, o forse si ma perchè non investire un po' di tempo per appropriasi della corretta forma mentis?

Ma davvero servirà in futuro?

Fatemi fare anche la parte dell'avvocato del diavolo.

Per prima cosa c'è chi ci ricorda che siamo all'infanzia delle AI: non sappiamo dove si potrà andare. Solo per il fatto che serva adesso non vuol dire che potrà servire tra qualche anno. Ha ragionissima.

In molti pensano che il prompt engineering diventerà obsoleto mano mano che i modelli migliorano.

Altri (come il sottoscritto) hanno il sospetto che un'offerta di lavoro sia principalmente una mossa dalle PR, per aumentare il buzz sull'argomento. Alla fine con tutte le startup di crypto fallite è pieno di locuste pronte a banchettare... Ho detto locuste? intendevo professionisti che fanno il loro lavoro in maniera integerrima

Personalmente, sono un fervido sostenitore del miglioramento personale e dello studio della comunicazione. E così come la maggior parte delle persone manca di modelli per comunicare efficacemente con il prossimmo  così mancherà anche di modelli per comunicare con la macchina.