introduzione
Nel mio recente articolo, Nuova tecnica di ingegneria del prompt ChatGPT: simulazione del programmaHo esplorato una nuova categoria di tecniche di prompt engineering che mirano a far sì che ChatGPT-4 si comporti come un programma. Mentre ci lavoravo, ciò che mi ha colpito in particolare è stata la capacità di ChatGPT-4 di autoconfigurare le funzionalità entro i confini delle specifiche del programma. Nel prompt originale della simulazione del programma, abbiamo definito rigidamente una serie di funzioni e ci aspettavamo che ChatGPT-4 mantenesse lo stato del programma in modo coerente. I risultati sono stati impressionanti e molti lettori hanno condiviso come hanno adattato con successo questo metodo per una serie di casi d’uso.
Ma cosa succede se allentiamo un po’ le redini? E se diamo a ChatGPT-4 più margine di manovra nella definizione delle funzioni e del comportamento del programma? Questo approccio sacrificherebbe inevitabilmente una certa prevedibilità e coerenza. Tuttavia, la maggiore flessibilità potrebbe darci più opzioni ed è probabilmente adattabile a uno spettro più ampio di applicazioni. Ho elaborato un quadro preliminare per l’intera categoria di tecniche che è mostrato nella figura seguente:
Dedichiamo un po’ di tempo ad esaminare questo grafico. Ho identificato due dimensioni chiave che sono ampiamente applicabili al modo in cui possono essere realizzate le istruzioni di simulazione del programma:
- Decidere quante e quali funzioni del programma di simulazione definire.
- Decidere il grado di autonomia del comportamento e della configurazione del programma.
Nel primo articolo, abbiamo creato un prompt che rientrasse nella categoria “Strutturato preconfigurato” (punto viola). Oggi esploreremo l’approccio di “autoconfigurazione non strutturata” (punto blu). Ciò che è utile in questo diagramma è che fornisce una tabella di marcia concettuale concisa per creare suggerimenti per la simulazione del programma. Fornisce inoltre dimensionalità facile da applicare per la sperimentazione, la regolazione e il perfezionamento durante l’applicazione della tecnica.
Prompt di simulazione del programma autoconfigurante non strutturato
Senza ulteriori indugi, iniziamo l’esame dell’approccio della “Simulazione di programmi autoconfiguranti non strutturati”. Ho realizzato un suggerimento il cui scopo è creare storie illustrate per bambini come segue:
“Comportati come un programma autoassemblante il cui scopo è creare storie illustrate per bambini. Hai completa flessibilità nel determinare le funzioni, le caratteristiche e l’interfaccia utente del programma. Per la funzione di illustrazione, il programma genererà prompt che possono essere utilizzati con un modello da testo a immagine per generare immagini. Il tuo obiettivo è eseguire il resto della chat come un programma perfettamente funzionante pronto per l’input dell’utente una volta ricevuto questo messaggio. “
Come puoi vedere, il prompt è apparentemente molto semplice. Ciò può essere interessante in un’epoca in cui i suggerimenti diventano lunghi, confusi e così specifici da essere difficili da adattare alle diverse situazioni. Abbiamo dato a GPT-4 piena discrezione sulla definizione delle funzioni, sulla configurazione e sul comportamento del programma. Le uniche istruzioni specifiche hanno lo scopo di guidare l’output delle illustrazioni in modo che diventino prompt che possono essere utilizzati per la generazione di testo in immagine. Un altro ingrediente importante è che ho fissato un obiettivo che il modello di chat dovrebbe sforzarsi di raggiungere. Un’ultima cosa da notare è che ho usato il termine “autoassemblante” in contrapposizione a “autoconfigurante”. Puoi provarli entrambi, ma l'”autoconfigurazione” tende a spingere ChatGPT a simulare un’effettiva interazione programma/utente.
“Comportarsi come” vs. “Comportarsi come”
Vale anche la pena evidenziare un’altra scelta di parole distinta nel prompt. Tutti voi avete incontrato la guida per utilizzare “Agisci come un esperto di un tipo o dell’altro” nei tuoi suggerimenti. Nei miei test “Act Like” tende a guidare i modelli di chat verso risposte guidate dalla persona. “Comportarsi come” offre maggiore flessibilità soprattutto quando l’obiettivo è che il modello funzioni più come un programma o un sistema. E può essere utilizzato anche in contesti incentrati sulla persona.
Se tutto è andato come previsto, l’output risultante dovrebbe assomigliare a questo (nota: vedrete tutti qualcosa di leggermente diverso).
Sembra un programma. Le funzioni sono intuitive e appropriate. Il menu arriva addirittura a includere “Impostazioni” e “Guida e tutorial”. Esploriamoli poiché, lo ammetto, erano inaspettati.
Le “Impostazioni” presentate sono molto utili. Farò alcune selezioni per mantenere la storia breve e impostare il livello della lingua e del vocabolario su “Principiante”.
Poiché siamo interessati ad esaminare la capacità del modello di autoconfigurare autonomamente il programma, combinerò le modifiche alle impostazioni in un’unica riga di testo e vedrò se funziona.
L’aggiornamento delle impostazioni è confermato. Le scelte di menu che seguono sono completamente libere ma appropriate al contesto in cui ci troviamo nel “programma”.
Ora controlliamo “Guida e tutorial”
E da lì diamo uno sguardo più da vicino a “Suggerimenti e generazione di illustrazioni”.
Ancora una volta, molto utile e a dir poco impressionante poiché non abbiamo definito nulla di tutto ciò nella definizione del nostro programma.
Tornerò al menu principale e inizierò a creare una nuova storia.
È una piccola storia carina e semplice lunga 3 pagine e adatta a un livello di vocabolario per principianti (esattamente come specificato nelle nostre impostazioni). Le funzioni presentate nuovamente hanno senso per il punto in cui ci troviamo nel programma. Possiamo generare illustrazioni, modificare la storia o uscire dal menu principale.
Lavoriamo sui nostri suggerimenti illustrativi.
Non ho incluso il testo generato per gli altri suggerimenti di illustrazione, ma sono simili a quello che vedi sopra per la pagina 1. Forniamo il messaggio di illustrazione così com’è a MidJourney per produrre alcune immagini.
“Un simpatico orsacchiotto marrone con grandi occhi rotondi seduto sul davanzale di una finestra di una casetta blu in una cittadina tranquilla.”
Molto bello. Questo passaggio è stato manuale e abbiamo l’ulteriore sfida di ottenere illustrazioni coerenti su tutte e tre le pagine. Può essere fatto con MidJourney ma richiede il caricamento di una delle immagini da utilizzare come base per generare le immagini aggiuntive. Forse DALL·E 3 includerà funzionalità che consentiranno di realizzare tutto ciò senza problemi. Come minimo la funzionalità annunciata da OpenAI indica che possiamo generare le immagini direttamente in ChatGPT.
Facciamo “Salva ed esci” e vediamo cosa succede nella nostra finestra di dialogo ChatGPT:
E ora, proviamo a “Caricare la storia salvata”.
“The Lost Teddy” è stato “salvato” e quando gli dico di “Aprire” ricorda l’intera storia e tutti i suggerimenti dell’illustrazione. Alla fine fornisce questo menu di funzioni autoassemblato:
OK. Fermiamoci qui. Se lo desideri, puoi procedere alla generazione delle tue storie, ma tieni presente che, a causa della progettazione del prompt, il comportamento risultante sarà diverso per ognuno.
Passiamo ad alcune conclusioni e osservazioni generali.
Conclusioni e osservazioni
La tecnica di simulazione del programma autoconfigurante non strutturato mette in mostra potenti capacità derivanti da un semplice suggerimento che fornisce un obiettivo chiaro e conciso ma per il resto conferisce al modello un’ampia discrezionalità.
Come potrebbe essere utile? Beh, forse non sai come definire le funzioni che vuoi che la simulazione del tuo programma esegua. Oppure hai definito alcune funzioni ma non sei sicuro che ce ne siano altre che potrebbero essere utili. Questo approccio è ottimo per la prototipazione e la sperimentazione e, infine, per ideare un prompt di “Simulazione di programma strutturato preconfigurato”.
Dato che la simulazione del programma integra naturalmente elementi di tecniche come Catena di pensiero, Basata su istruzioni, Passo dopo passo e Gioco di ruolo, è una categoria di tecniche molto potente che dovresti provare a tenere a portata di mano poiché si allinea con un’ampia sezione trasversale di casi d’uso per i modelli di chat.
Oltre i modelli di chat generativa e verso un sistema operativo generativo
Mentre continuo ad approfondire l’approccio alla simulazione del programma, ho sicuramente una migliore comprensione del motivo per cui Sam Altman di OpenAI ha affermato che l’importanza del prompt engineering potrebbe svanire nel tempo. I modelli generativi possono evolversi a tal punto da andare ben oltre la generazione di testo e immagini e sapere istintivamente come eseguire una determinata serie di compiti per raggiungere il risultato desiderato. La mia ultima esplorazione mi fa pensare che siamo più vicini a questa realtà di quanto pensassimo.
Consideriamo dove potrebbe essere diretta l’IA generativa e, per farlo, penso che sia utile pensare ai modelli generativi in termini umani. Utilizzando questa mentalità, consideriamo come le persone raggiungono la competenza in una determinata area di competenza o dominio di conoscenza.
- La persona viene formata (autodidatta o esternamente) utilizzando conoscenze e tecniche specifiche del dominio sia in contesti supervisionati che non supervisionati.
- Vengono testate le capacità della persona rispetto all’area di competenza in questione. Se necessario, vengono forniti perfezionamenti e formazione aggiuntiva.
- Alla persona viene chiesto (o si chiede) di svolgere un compito o raggiungere un obiettivo.
Sembra molto simile a ciò che viene fatto per addestrare modelli generativi. Una distinzione fondamentale emerge tuttavia nella fase di esecuzione o “ask”. In genere, gli individui competenti non hanno bisogno di direttive dettagliate.
Credo che in futuro, quando si interagirà con modelli generativi, la meccanica della “domanda” assomiglierà sempre di più alla nostra interazione con esseri umani esperti. Per ogni dato compito, i modelli mostreranno una profonda capacità di comprendere o dedurre il risultato oggettivo e desiderato. Data questa traiettoria, non dovrebbe sorprendere vedere l’emergere di capacità multimodali, come l’integrazione di DALL·E 3 con ChatGPT e le capacità recentemente annunciate di ChatGPT di vedere, pensare e ascoltare. Alla fine potremmo vedere l’emergere di un meta-agente che alimenta essenzialmente i sistemi operativi dei nostri gadget, siano essi telefoni, computer, robot o qualsiasi altro dispositivo intelligente. Alcuni potrebbero sollevare preoccupazioni circa l’inefficienza e l’impatto ambientale di ciò che equivarrebbe a enormi quantità di elaborazione onnipresente. Ma, se la storia funge da indicatore e questi approcci producono strumenti e soluzioni che le persone desiderano, i meccanismi dell’innovazione entreranno in azione e il mercato fornirà risultati di conseguenza.
Grazie per aver letto e spero che troverai la simulazione del programma un approccio utile nelle tue avventure immediate! Sono nel bel mezzo di ulteriori esplorazioni, quindi assicurati di seguirmi e di ricevere una notifica quando vengono pubblicati nuovi articoli.
Se non diversamente specificato, tutte le immagini presenti in questo articolo sono dell’autore.
Fonte: towardsdatascience.com