Uh oh, ora l’IA è migliore di te nell’ingegneria delle istruzioni

Uh oh, l'IA è ora migliore di te nella programmazione delle istruzioni.

Hai appena scoperto la tua prossima mossa di carriera: diventare un esperto in prompt engineering, l’arte di creare la migliore frase di input per un programma di intelligenza artificiale generativa come ChatGPT di OpenAI.

Non così veloce: l’arte del prompting potrebbe essere presa in mano dall’automazione tramite modelli di linguaggio di grandi dimensioni.

Inoltre: 7 consigli avanzati per la scrittura di prompt di ChatGPT che devi conoscere

In un articolo pubblicato la scorsa settimana da Google’s DeepMind, i ricercatori Chengrun Yang e il suo team hanno creato un programma chiamato OPRO che fa sì che i modelli di linguaggio di grandi dimensioni provino diversi prompt fino a trovare quello che si avvicina di più alla soluzione di un compito. È un modo per automatizzare il tipo di tentativi ed errori che una persona farebbe digitando.

L’articolo di ricerca, “Large Language Models as Optimizers”, pubblicato sul server di pre-stampa arXiv, descrive un esperimento su come “ottimizzare” qualsiasi cosa con un modello di linguaggio, cioè far sì che il programma produca risposte sempre migliori, avvicinandosi a uno stato ideale.

Yang e il suo team hanno deciso, invece di programmare esplicitamente quello stato ideale, di utilizzare modelli di linguaggio di grandi dimensioni per esprimere in linguaggio naturale l’obiettivo da raggiungere. Ciò permette al programma di intelligenza artificiale di adattarsi a richieste di ottimizzazione in costante evoluzione su diversi compiti.

Inoltre: Estensione di ChatGPT: possono i plugin di chatbot AI davvero cambiare il gioco?

Come scrivono Yang e i coautori, la flessibilità nell’elaborazione del linguaggio dei modelli di linguaggio di grandi dimensioni “apre una nuova possibilità per l’ottimizzazione: anziché definire formalmente il problema di ottimizzazione e derivare il passo di aggiornamento con un risolutore programmato, descriviamo il problema di ottimizzazione in linguaggio naturale, quindi istruire il LLM a generare iterativamente nuove soluzioni basate sulla descrizione del problema e sulle soluzioni trovate in precedenza.”

Al centro del programma OPRO c’è un algoritmo chiamato “Meta-Prompt”. Meta-Prompt guarda indietro ai prompt precedenti e valuta come questi abbiano risolto un determinato problema. Genera quindi più prompt che può provare per trovare il migliore.

La struttura di Meta-Prompt di DeepMind

In effetti, Meta-Prompt è come una persona seduta alla tastiera che digita molte nuove possibilità basate su ciò che ha visto funzionare o non funzionare in precedenza. Meta-Prompt può essere collegato a qualsiasi modello di linguaggio di grandi dimensioni per generare i prompt e le risposte effettive. Gli autori testano vari modelli di linguaggio di grandi dimensioni, tra cui GPT-3 e GPT-4, e il modello di linguaggio PaLM 2 di Google stesso.

Gli autori iniziano testando OPRO su problemi semplici. Uno di questi è la regressione lineare, in cui viene chiesto al programma di “minimizzare una funzione”, cioè trovare una coppia di numeri simili a esempi passati ma che producano un valore numerico più piccolo come risultato.

Inoltre: Come accedere a migliaia di audiolibri gratuiti, grazie all’IA di Microsoft e a Project Gutenberg

Il punto è che il modello di linguaggio è in grado di trovare soluzioni a un problema matematico, semplicemente mediante il prompting, che normalmente sarebbero affrontate da un programma creato appositamente per quel problema – un “risolutore”, come viene chiamato. Come scrivono gli autori, “LLM cattura correttamente le direzioni di ottimizzazione su problemi di piccola scala basandosi semplicemente sulla traiettoria di ottimizzazione passata fornita nel meta-prompt”.

Risulta che l’arte di scrivere un buon prompt per un modello di linguaggio di grandi dimensioni può essere vista come un compito da ottimizzare.

I ricercatori lo sanno da tempo. Gli scienziati di Microsoft hanno proposto all’inizio di quest’anno quello che hanno chiamato “Automatic Prompt Optimization”. Questo approccio modifica automaticamente la scrittura del prompt per migliorarla. Yang e il suo team vanno oltre. Invece di semplicemente modificare un prompt precedente per migliorarlo, Meta-Prompt genera prompt completamente nuovi.

Come dicono loro, “Ogni passo di ottimizzazione nel nostro lavoro genera nuovi prompt che mirano a aumentare l’accuratezza dei test sulla base di una traiettoria di prompt generati in precedenza, anziché modificare un prompt di input in base al feedback in linguaggio naturale o richiedere al nuovo prompt di seguire lo stesso significato semantico”.

Anche: I migliori generatori di immagini AI: DALL-E 2 e alternative

Dopo i problemi iniziali, Yang e il suo team si sono messi alla prova per valutare quanto bene Meta-Prompt possa ottimizzare le indicazioni.

Hanno testato Meta-Prompt su alcune valutazioni di benchmark in cui si è dimostrato che una corretta indicazione migliora le prestazioni.

Una di queste è “GSM8K,” introdotta nel 2021 da OpenAI, una serie di problemi di matematica di scuola elementare come ad esempio: “Beth fa 4, 2 dozzine di fornate di biscotti in una settimana. Se questi biscotti sono divisi in parti uguali tra 16 persone, quanti biscotti consuma ogni persona?”

Un secondo test è una derivazione di BIG-bench, il test di ragionamento introdotto l’anno scorso da Google e decine di organizzazioni collaboratrici. La nuova versione degli autori di Google, chiamata BIG-bench Hard, introdotta quest’anno, si concentra su problemi di ragionamento in cui i grandi modelli di linguaggio sono falliti in passato nel raggiungere una precisione di livello umano.

I problemi di BIG-bench sono “diversi”, come hanno scritto gli autori di Google nel paper originale, “problemi tratti dalla linguistica, dallo sviluppo dell’infanzia, dalla matematica, dal ragionamento di buon senso, dalla biologia, dalla fisica, dal pregiudizio sociale, dallo sviluppo software e oltre”.

Anche: Come funziona effettivamente ChatGPT?

Gli autori confrontano le loro indicazioni generate automaticamente per entrambi i compiti con le indicazioni create “manualmente”, come esemplificato nel lavoro del 2022 di Takeshi Kojima e del suo team presso l’Università di Tokyo e Google Research.

È noto che Kojima e il suo team hanno scoperto di poter migliorare la capacità dei grandi modelli di linguaggio in compiti come GSM8K e BIG-bench semplicemente aggiungendo la frase “Pensiamo passo dopo passo” all’inizio dell’indicazione e quindi un esempio di risposta. Hanno scoperto che quella frase era sufficiente a indurre “catene di pensiero” nel modello di linguaggio.

Con Meta-Prompt, Yang e il suo team scoprono di poter generare automaticamente indicazioni con frasi simili a “Pensiamo passo dopo passo” ma migliori – o, più ottimali, nel loro linguaggio.

Un esempio di “meta-prompt” utilizzata per indurre il modello di linguaggio a creare indicazioni più ottimali. Il testo arancione è la “meta-prompt”, istruzioni che dicono al modello di linguaggio come costruire un’indicazione. Il testo blu sono alcuni esempi. E il testo viola descrive il compito di ottimizzazione e il formato di output.

A volte, le indicazioni generate automaticamente diventano molto intricate. Ad esempio, nel compito di ragionamento di BIG-bench chiamato “temporal_sequence”, viene fornito al modello di linguaggio un contesto e viene chiesto di rispondere a che ora è successo qualcosa, come ad esempio:

Oggi, Richard è andato alla piscina. Tra quali orari potrebbe essere andato?

Sappiamo che: Richard si è svegliato alle 7 del mattino. Samantha ha visto Richard passeggiare in giardino dalle 7 alle 8. Mark ha visto Richard allenarsi in palestra dalle 8 alle 9. David ha visto Richard frequentare le lezioni a scuola dalle 9 alle 10. Andrew ha visto Richard aspettare alla stazione del treno dalle 10 alle 16. La piscina era chiusa dopo le 17. Tra quali orari Richard potrebbe essere andato alla piscina?

Yang e il suo team hanno scoperto che Meta-prompt ha ottenuto risultati migliori compilando indicazioni molto complesse come la seguente:

“Per determinare il periodo di tempo possibile in cui una persona è andata in un luogo, identificare prima tutti i periodi di tempo in cui la persona non è stata vista fare altro e il luogo era aperto. Successivamente, escludere tutti i periodi di tempo in cui la persona è stata vista fare qualcos’altro. I periodi di tempo rimanenti sono i possibili momenti in cui la persona potrebbe essere andata in quel luogo”.

In generale, hanno scoperto che “le nostre indicazioni ottimizzate superano quelle progettate dall’uomo su GSM8K e Big-Bench Hard di una percentuale significativa, a volte oltre il 50%”.

C’è ancora altro lavoro da fare, tuttavia, per ottimizzare l’algoritmo che ottimizza le indicazioni.

Anche: 6 strumenti di intelligenza artificiale per potenziare il tuo lavoro e la tua vita quotidiana

In particolare, Meta-Prompt di OPRO non è in grado di estrapolare dagli esempi negativi. “Abbiamo provato a includere casi di errore nella meta-prompt anziché estrarre casualmente dall’insieme di addestramento ad ogni passo di ottimizzazione,” osservano, “ma i risultati sono simili, indicando che i casi di errore da soli non sono sufficientemente informativi per far comprendere all’ottimizzatore LLM la causa della previsione errata”.

Quindi, forse, il tuo prossimo lavoro di programmazione consiste nel capire come indurre al meglio Meta-Prompt a creare indicazioni migliori.