Nel primo anno di modelli linguistici molti commentatori hanno speculato su una nuova figura professionale emergente definita “prompt engineer”, ovverosia colui che è capace di scrivere i prompt per un modello di AI generativa per ottenere quello che utenti occasionali non erano in grado da questa nuova tecnologia.
Dopo un solo anno emergono sempre più evidenze del fatto che i prompt generati e manipolati meccanicamente, da altre intelligenze artificiali, risultano significativamente più efficaci rispetto a quelli scritti da esseri umani.
Va però sottolineato che la richiesta viene normalmente da un essere umano, ma questa non viene passata direttamente al modello AI, viene al contrario espanso e riscritto al fine di migliorare il comportamento atteso dal modello.
Le ragioni della meccanizzazione
I modelli di AI Generativa ci hanno abituato al concetto di “contesto”, ovverosia della lunghezza massima del prompt utilizzato per effettuare la richiesta al modello AI. I primi modelli avevano contesti relativamente piccoli: poche migliaia di token, in pratica qualche kilobyte; si tratta di dimensioni che anche testualmente non sono troppo onerose da gestire per noi esseri umani.
Ma un contesto di 128 mila token, ovvero circa mezzo megabyte, può contenere il terzo di circa un terzo dei promessi sposi. Ma quanto tempo siamo disposti a spendere per porre una domanda ad una AI? Dopo un anno, possiamo dire: non troppo. Io personalmente ho cominciato quasi subito ad usare prompt in un LLM richiedendo la generazione di un prompt da utilizzare in un’altra AI: chiedevo a GPT di generarmi un prompt in inglese per generare una certa immagine che poi copiavo e incollavo in una AI generativa di immagini come quella di Bing, Stable diffusion o DALL-E. In questo caso il modello aggiungeva dettagli come, ad esempio, le proprietà dell’obiettivo, o dettagli da includere, che non mi sarebbero mai venuti in mente scrivendoli direttamente.
Alcuni sistemi hanno cominciato ad offrire interfacce che generano un prompt, come ad esempio la barra che Microsoft ha incluso new browser Edge: la richiesta della generazione di testo viene annotata attraverso elementi grafici come, ad esempio, il tono della comunicazione, la sua destinazione e la lunghezza. Sarà poi lo strumento a generare il prompt che effettivamente sarà passato al modello LLM.
Scrivendo un prompt più generico è possibile ottenere un prompt fino a 10 volte più grande con numerosi dettagli che possono aiutare a governare il comportamento della AI come mostrato nella seguente immagine.
Un altro aspetto cruciale è che un modello LLM non è umano: non ha bisogno di molti elementi di costruzione del linguaggio per ottenere un certo risultato. Un prompt come “differenza carbonara amatriciana” è sufficiente per generare un confronto e sostanzialmente equivalente al prompt “dimmi la differenza tra carbonara e amatriciana”. In questo caso si può semplificare un prompt per aumentare l’informazione che si può indicare nel prompt (oppure per risparmiare i costi per i modelli che si pagano per token utilizzati) e ottenere allo stesso tempo risposte spesso più focalizzate.
Comprimere il prompt
Microsoft research ha recentemente annunciato il progetto open source LLMLingua, un sistema basato su un modello LLM compatto (di una dimensione paragonabile ad un modello 7B come ad esempio llama2 7B) la cui funzione è quella di prendere in ingresso un prompt e generare un prompt da 3 a sei volte più compatto riducendo la dimensione del contesto e quindi della velocità di elaborazione.
Se ad esempio proviamo a comprimere il prompt generato per la generazione dell’immagine utilizzando il sistema di demo otteniamo un prompt lungo la metà (in realtà lo ho richiesto esplicitamente):
Se usiamo i due prompt in midjourney (a sinistra quello non compresso) il risultato è sicuramente paragonabile nonostante il prompt generato sia lungo la metà:
Quello di Microsoft non è l’unico lavoro, c’è anche NeuroPrompts, un modello addestrato per sintetizzare prompt di qualità paragonabile rispetto a quelli scritti da umani. In questo caso l’approccio è quello di “mimare” il lavoro del prompt engineer.
Conclusioni
Il prompt engineering sembrava potesse divenire una vera e propria professione, ma il proliferare di modelli (con comportamenti differenti a parità di prompt), la crescente complessità nel dover specificare più informazioni, e la natura meccanica di analisi da parte dell’AI, hanno incoraggiato lo sviluppo di modelli che sostituiscano di fatto il “prompt engineer”. Questi nuovi modelli hanno il compito di catturare l’essenza di una richiesta semplice da parte di un utente per poi generare un prompt più sofisticato capace di migliorare il processo di generazione e, in alcuni casi, riducendo la dimensione del prompt stesso per risparmiare costi e accelerare la velocità di generazione che è comunque legata anche alla lunghezza del prompt.
Ma chi aveva cominciato a sviluppare competenze in materia può continuare ad approfondire i vari modelli e la maturità acquisita nella scrittura di prompt più complessi aiuta in ogni caso a formulare la versione semplice, ottenere il prompt generato per eventualmente ispezionarlo o integrarlo.
Resta inteso che la continua crescita di sistemi RAG contribuisce alla generazione meccanica dei prompt dove è il sistema a generare il prompt per includere le informazioni da utilizzare nella generazione dell’output. Questa forma di prompt engineering, però, non è mai stata considerata come prodotto manuale di esperti. In ogni caso anche questi sistemi possono beneficiare di questi sistemi per ottimizzare il prompt prima di inviarlo al modello.