Prompt engineering

Le ultime innovazioni nel campo dell’ingegneria dei prompt: una guida completa

mm

L’ingegneria dei prompt, l’arte e la scienza di creare prompt che producono risposte desiderate dai modelli linguistici di grandi dimensioni (LLM), è diventata un’area cruciale di ricerca e sviluppo.

Dall’ampliamento delle capacità di ragionamento all’abilità di integrarsi senza problemi con strumenti e programmi esterni, le ultime innovazioni nell’ingegneria dei prompt stanno aprendo nuove frontiere nell’intelligenza artificiale. Di seguito discutiamo delle tecniche e delle strategie all’avanguardia che stanno plasmando il futuro dell’ingegneria dei prompt.

Ingegneria dei prompt

Ingegneria dei prompt

Strategie di prompt avanzate per la risoluzione di problemi complessi

Mentre il prompting CoT ha dimostrato di essere efficace per molti compiti di ragionamento, i ricercatori hanno esplorato strategie di prompt più avanzate per affrontare problemi ancora più complessi. Un approccio è il prompting Least-to-Most, che divide un problema complesso in sottoproblemi più piccoli e gestibili, che vengono risolti in modo indipendente e poi combinati per raggiungere la soluzione finale.

Un’altra tecnica innovativa è il prompting Tree of Thoughts (ToT), che consente al modello di generare più linee di ragionamento o “pensieri” in parallelo, valutare il proprio progresso verso la soluzione e tornare indietro o esplorare percorsi alternativi se necessario. Questo approccio utilizza algoritmi di ricerca come la ricerca in ampiezza o la ricerca in profondità, consentendo al modello di eseguire una ricerca anticipata e un ritorno durante il processo di risoluzione del problema.

Integrazione dei modelli linguistici di grandi dimensioni con strumenti e programmi esterni

Mentre i modelli linguistici di grandi dimensioni sono incredibilmente potenti, hanno limitazioni intrinseche, come l’incapacità di accedere a informazioni aggiornate o di eseguire ragionamenti matematici precisi. Per affrontare questi svantaggi, i ricercatori hanno sviluppato tecniche che consentono ai modelli linguistici di grandi dimensioni di integrarsi senza problemi con strumenti e programmi esterni.

Un esempio notevole è Toolformer, che insegna ai modelli linguistici di grandi dimensioni a identificare scenari che richiedono l’uso di strumenti esterni, specificare quale strumento utilizzare, fornire input rilevanti e incorporare l’output dello strumento nella risposta finale. Questo approccio comporta la creazione di un set di dati di addestramento sintetico che dimostra l’uso corretto di vari API di testo-testo.

Un altro framework innovativo, Chameleon, utilizza un approccio “plug-and-play”, che consente a un controllore centrale basato su modelli linguistici di grandi dimensioni di generare programmi in linguaggio naturale che compongono ed eseguono una vasta gamma di strumenti, tra cui modelli linguistici di grandi dimensioni, modelli di visione, motori di ricerca web e funzioni Python. Questo approccio modulare consente a Chameleon di affrontare compiti di ragionamento complessi e multimodali sfruttando i punti di forza di diversi strumenti e modelli.

Strategie di prompt fondamentali

Prompting Zero-Shot

Il prompting zero-shot consiste nel descrivere il compito nel prompt e chiedere al modello di risolverlo senza esempi. Ad esempio, per tradurre “formaggio” in francese, un prompt zero-shot potrebbe essere:

Traduci la seguente parola inglese in francese: formaggio.

Questo approccio è semplice, ma può essere limitato dall’ambiguità delle descrizioni dei compiti.

Prompting Few-Shot

Il prompting few-shot migliora il prompting zero-shot includendo diversi esempi del compito. Ad esempio:

Traduci le seguenti parole inglesi in francese:
1. mela => mela
2. casa => casa
3. formaggio => formaggio

Questo metodo riduce l’ambiguità e fornisce una guida più chiara per il modello, sfruttando le capacità di apprendimento in contesto dei modelli linguistici di grandi dimensioni.

Prompting Istruttivo

Il prompting istruttivo descrive esplicitamente l’output desiderato, che è particolarmente efficace con modelli addestrati a seguire istruzioni. Ad esempio:

Traduci la parola "formaggio" in francese. La traduzione corretta è "formaggio."

Modelli come GPT-4 sono stati specificamente ottimizzati per seguire tali istruzioni con precisione.

Tecniche di prompt avanzate

Miglioramento delle capacità di ragionamento con il prompting Chain-of-Thought

Una delle scoperte più significative nell’ingegneria dei prompt è stata lo sviluppo del prompting Chain-of-Thought (CoT). Questa tecnica mira a far emergere e migliorare le capacità di ragionamento dei modelli linguistici di grandi dimensioni, incoraggiandoli a generare un processo di ragionamento passo dopo passo o una catena di pensieri prima di fornire la risposta finale.

Sinistra: metodi tradizionali di prompting dei modelli linguistici di grandi dimensioni si basano su input generici (0-shot CoT) o richiedono esempi etichettati (few-shot CoT). Destra: l'approccio innovativo fa sì che i modelli linguistici di grandi dimensioni creino autonomamente esempi rilevanti prima di risolvere il problema, eliminando la necessità di etichettare mentre personalizza gli esempi per ogni problema unico

Sinistra: metodi tradizionali di prompting dei modelli linguistici di grandi dimensioni si basano su input generici (0-shot CoT) o richiedono esempi etichettati (few-shot CoT). Destra: l’approccio innovativo fa sì che i modelli linguistici di grandi dimensioni creino autonomamente esempi rilevanti prima di risolvere il problema, eliminando la necessità di etichettare mentre personalizza gli esempi per ogni problema unico

Il prompting CoT funziona presentando al modello esempi che includono non solo l’input e l’output, ma anche i passaggi intermedi di ragionamento o la “catena di pensieri” che porta alla soluzione. Imparando da questi esempi, il modello può poi generare la propria catena di pensieri quando gli vengono presentati nuovi problemi, migliorando la sua capacità di affrontare compiti di ragionamento complessi.

Esempio:

Input: Natalie ha 3 mele e vuole dividerle equamente con i suoi 2 amici. Quante mele avrà ogni persona? Catena di pensieri: Okay, analizziamo passo dopo passo:

  1. Natalie ha 3 mele
  2. Vuole dividerle equamente con 2 amici
  3. Ci sono quindi 3 persone in totale (Natalie e i suoi 2 amici)
  4. Per dividere le mele equamente, dividiamo il numero totale di mele (3) per il numero di persone (3)
  5. 3 diviso 3 è 1
  6. Quindi ogni persona avrà 1 mela. Output: Ogni persona avrà 1 mela.

Generando esplicitamente il processo di ragionamento, modelli come GPT-3 e Codex hanno dimostrato miglioramenti significativi nei compiti di ragionamento aritmetico, di senso comune e simbolico.

Coerenza interna

La coerenza interna migliora l’affidabilità del prompting CoT generando più catene di pensieri e prendendo una decisione di maggioranza sulla risposta finale. Questo metodo mitiga l’impatto di qualsiasi singolo percorso di ragionamento errato.

Prompting Least-to-Most

Il prompting least-to-most divide i problemi complessi in sottoproblemi più semplici, risolvendoli uno dopo l’altro e utilizzando il contesto delle soluzioni precedenti per informare i passaggi successivi. Questo approccio è benefico per i compiti di ragionamento a più passaggi.

Recenti progressi nell’ingegneria dei prompt

L’ingegneria dei prompt sta evolvendo rapidamente e sono emerse diverse tecniche innovative per migliorare le prestazioni dei modelli linguistici di grandi dimensioni (LLM). Esaminiamo alcune di queste metodologie all’avanguardia nel dettaglio:

Auto-CoT (Prompting Chain-of-Thought Automatico)

Cosa è: Auto-CoT è un metodo che automatizza la generazione di catene di ragionamento per i modelli linguistici di grandi dimensioni, eliminando la necessità di esempi creati manualmente. Questa tecnica utilizza il prompting CoT zero-shot, in cui il modello viene guidato a pensare passo dopo passo per generare le proprie catene di ragionamento.

Come funziona:

  1. Prompting CoT zero-shot: Il modello riceve un prompt semplice come “Pensiamo passo dopo passo” per incoraggiare un ragionamento dettagliato.
  2. Diversità nelle dimostrazioni: Auto-CoT seleziona domande diverse e genera catene di ragionamento per queste domande, garantendo una varietà di tipi di problemi e pattern di ragionamento.

Vantaggi:

  • Automatizzazione: Riduce lo sforzo manuale necessario per creare dimostrazioni di ragionamento.
  • Prestazioni: Su vari compiti di ragionamento di benchmark, Auto-CoT ha eguagliato o superato le prestazioni del prompting CoT manuale.

Prompting basato sulla complessità

Cosa è: Questa tecnica seleziona esempi con la complessità più alta (cioè, il maggior numero di passaggi di ragionamento) da includere nel prompt. Si concentra sul miglioramento delle prestazioni del modello nei compiti che richiedono più passaggi di ragionamento.

Come funziona:

  1. Selezione degli esempi: I prompt vengono scelti in base al numero di passaggi di ragionamento che contengono.
  2. Coerenza basata sulla complessità: Durante la decodifica, vengono campionati più percorsi di ragionamento e si prende il voto di maggioranza dalle catene più complesse.

Vantaggi:

  • Miglioramento delle prestazioni: Accuratezza sostanzialmente migliore nei compiti di ragionamento a più passaggi.
  • Robustezza: Effettivo anche con diverse distribuzioni di prompt e dati rumorosi.

Progressive-Hint Prompting (PHP)

Cosa è: PHP raffina iterativamente le risposte del modello utilizzando le razionali generate in precedenza come suggerimenti. Questo metodo sfrutta le risposte precedenti del modello per guidarlo verso la risposta corretta attraverso più iterazioni.

Come funziona:

  1. Risposta iniziale: Il modello genera una risposta di base utilizzando un prompt standard.
  2. Suggerimenti e raffinamenti: Questa risposta di base viene poi utilizzata come suggerimento in prompt successivi per raffinare la risposta.
  3. Processo iterativo: Questo processo continua fino a quando la risposta non si stabilizza su iterazioni consecutive.

Vantaggi:

  • Accuratezza: Miglioramenti significativi nell’accuratezza del ragionamento.
  • Efficienza: Riduce il numero di percorsi di campionamento necessari, migliorando l’efficienza computazionale.

Decomposed Prompting (DecomP)

Cosa è: DecomP divide i compiti complessi in sottocompiti più semplici, ognuno gestito da un prompt o modello specifico. Questo approccio modulare consente una gestione più efficace dei problemi intricati.

Come funziona:

  1. Decomposizione del compito: Il problema principale viene diviso in sottocompiti più semplici.
  2. Handler dei sottocompiti: Ogni sottocompito viene gestito da un modello o prompt dedicato.
  3. Integrazione modulare: Questi handler possono essere ottimizzati, sostituiti o combinati come necessario per risolvere il compito complesso.

Vantaggi:

  • Flessibilità: Facile da debuggere e migliorare specifici sottocompiti.
  • Scalabilità: Gestisce compiti con contesti lunghi e sottocompiti complessi in modo efficace.

Hypotheses-to-Theories (HtT) Prompting

Cosa è: HtT utilizza un processo di scoperta scientifica in cui il modello genera e verifica ipotesi per risolvere problemi complessi. Questo metodo prevede la creazione di una libreria di regole da ipotesi verificate, che il modello utilizza per il ragionamento.

Come funziona:

  1. Fase di induzione: Il modello genera regole potenziali e le verifica contro esempi di addestramento.
  2. Creazione della libreria di regole: Le regole verificate vengono raccolte per formare una libreria di regole.
  3. Fase di deduzione: Il modello applica queste regole a nuovi problemi, utilizzando la libreria di regole per guidare il suo ragionamento.

Vantaggi:

  • Accuratezza: Riduce la probabilità di errori affidandosi a un set di regole verificate.
  • Trasferibilità: Le regole apprese possono essere trasferite tra diversi modelli e forme di problemi.

Tecniche di prompt avanzate basate su strumenti

Toolformer

Toolformer integra i modelli linguistici di grandi dimensioni con strumenti esterni tramite API di testo-testo, consentendo al modello di utilizzare questi strumenti per risolvere problemi che altrimenti non avrebbe potuto affrontare. Ad esempio, un modello linguistico di grandi dimensioni potrebbe chiamare un’API di calcolo per eseguire operazioni aritmetiche.

Chameleon

Chameleon utilizza un controllore centrale basato su modelli linguistici di grandi dimensioni per generare un programma che combina una vasta gamma di strumenti per risolvere compiti di ragionamento complessi. Questo approccio sfrutta un insieme ampio di strumenti, tra cui modelli di visione e motori di ricerca web, per migliorare le capacità di risoluzione dei problemi.

GPT4Tools

GPT4Tools ottimizza modelli linguistici di grandi dimensioni open-source per utilizzare strumenti multimodali tramite un approccio di auto-istruzione, dimostrando che anche modelli non proprietari possono sfruttare efficacemente strumenti esterni per migliorare le prestazioni.

Gorilla e HuggingGPT

Sia Gorilla che HuggingGPT integrano modelli linguistici di grandi dimensioni con modelli di apprendimento profondo specializzati disponibili online. Questi sistemi utilizzano un processo di ottimizzazione della ricerca e un approccio di pianificazione e coordinamento, rispettivamente, per risolvere compiti complessi che coinvolgono più modelli.

Modelli linguistici assistiti da programmi (PAL) e programmi di pensieri (PoT)

Oltre all’integrazione con strumenti esterni, i ricercatori hanno esplorato modi per migliorare le capacità di risoluzione dei problemi dei modelli linguistici di grandi dimensioni combinando il linguaggio naturale con costrutti di programmazione. I modelli linguistici assistiti da programmi (PAL) e i programmi di pensieri (PoT) sono due approcci che utilizzano il codice per aumentare il processo di ragionamento del modello linguistico di grandi dimensioni.

PAL fa sì che il modello linguistico di grandi dimensioni generi una razionalizzazione che alterna linguaggio naturale e codice (ad esempio, Python), che può poi essere eseguito per produrre la soluzione finale. Questo approccio affronta un caso di fallimento comune in cui i modelli linguistici di grandi dimensioni generano un ragionamento corretto ma producono una risposta finale errata.

Allo stesso modo, PoT utilizza una libreria di matematica simbolica come SymPy, consentendo al modello linguistico di grandi dimensioni di definire simboli e espressioni matematiche che possono essere combinate e valutate utilizzando la funzione di risoluzione di SymPy. Delegando calcoli complessi a un interprete di codice, queste tecniche separano il ragionamento dal calcolo, abilitando i modelli linguistici di grandi dimensioni a gestire problemi più intricati in modo efficace.

Comprendere e sfruttare le finestre di contesto

Le prestazioni dei modelli linguistici di grandi dimensioni dipendono fortemente dalla loro capacità di elaborare e sfruttare il contesto fornito nel prompt. I ricercatori hanno investigato come i modelli linguistici di grandi dimensioni gestiscono contesti lunghi e l’impatto di informazioni irrilevanti o distraenti sui loro output.

Il fenomeno “Perduti nel mezzo” evidenzia come i modelli linguistici di grandi dimensioni tendano a prestare più attenzione alle informazioni all’inizio e alla fine del loro contesto, mentre le informazioni nel mezzo sono spesso trascurate o “perse”. Questa consapevolezza ha implicazioni per l’ingegneria dei prompt, poiché la posizione accurata di informazioni rilevanti all’interno del contesto può avere un impatto significativo sulle prestazioni.

Un’altra linea di ricerca si concentra sul mitigare gli effetti dannosi di contesti irrilevanti, che possono degradare drasticamente le prestazioni dei modelli linguistici di grandi dimensioni. Tecniche come la coerenza interna, le istruzioni esplicite per ignorare informazioni irrilevanti e l’inclusione di esempi che dimostrano la risoluzione di problemi con contesti irrilevanti possono aiutare i modelli linguistici di grandi dimensioni a concentrarsi sulle informazioni più pertinenti.

Miglioramento delle capacità di scrittura con strategie di prompt

Mentre i modelli linguistici di grandi dimensioni eccellono nella generazione di testo simile a quello umano, le loro capacità di scrittura possono essere ulteriormente migliorate attraverso strategie di prompt specializzate. Una di queste tecniche è il prompting Skeleton-of-Thought (SoT), che mira a ridurre la latenza della decodifica sequenziale imitando il processo di scrittura umano.

Il prompting SoT prevede di far generare al modello linguistico di grandi dimensioni uno scheletro o un riassunto della sua risposta inizialmente, seguito da chiamate API parallele per riempire i dettagli di ogni elemento dell’outline. Questo approccio non solo migliora la latenza di inferenza, ma può anche migliorare la qualità della scrittura incoraggiando il modello a pianificare e strutturare meglio la sua output.

Un’altra strategia di prompt, il prompting Chain of Density (CoD), si concentra sul miglioramento della densità di informazione delle sommari generati dai modelli linguistici di grandi dimensioni. Aggiungendo iterativamente entità al riassunto mantenendo la lunghezza fissa, il prompting CoD consente agli utenti di esplorare il trade-off tra concisione e completezza, producendo infine riassunti più informativi e leggibili.

Direzioni emergenti e prospettive future

ChatGPT e ingegneria dei prompt avanzata

ChatGPT e ingegneria dei prompt avanzata

Il campo dell’ingegneria dei prompt sta evolvendo rapidamente, con ricercatori che continuano a esplorare nuove frontiere e a spingere i limiti di ciò che è possibile con i modelli linguistici di grandi dimensioni. Alcune delle direzioni emergenti includono:

  1. Prompting attivo: Tecniche che sfruttano i principi di apprendimento attivo basato sull’incertezza per identificare e annotare gli esempi più utili per la risoluzione di specifici problemi di ragionamento.
  2. Prompting multimodale: Estensione delle strategie di prompt per gestire input multimodali che combinano testo, immagini e altre modalità di dati.
  3. Generazione automatica di prompt: Sviluppo di tecniche di ottimizzazione per generare automaticamente prompt efficaci personalizzati per compiti o domini specifici.
  4. Interpretazione e spiegazione: Esplorazione di metodi di prompt che migliorano l’interpretazione e la spiegazione degli output dei modelli linguistici di grandi dimensioni, consentendo una maggiore trasparenza e fiducia nei processi decisionali.

Man mano che i modelli linguistici di grandi dimensioni continuano ad avanzare e trovano applicazioni in vari domini, l’ingegneria dei prompt giocherà un ruolo cruciale nell’unlockare il loro pieno potenziale. Sfruttando le tecniche e le strategie di prompt più recenti, ricercatori e pratici possono sviluppare soluzioni di intelligenza artificiale più potenti, affidabili e specifiche per il compito, spingendo i limiti di ciò che è possibile con l’elaborazione del linguaggio naturale.

Conclusione

Il campo dell’ingegneria dei prompt per i modelli linguistici di grandi dimensioni sta evolvendo rapidamente, con ricercatori che continuano a spingere i limiti di ciò che è possibile. Dall’ampliamento delle capacità di ragionamento con tecniche come il prompting Chain-of-Thought all’integrazione con strumenti e programmi esterni, le ultime innovazioni nell’ingegneria dei prompt stanno aprendo nuove frontiere nell’intelligenza artificiale.

Ho trascorso gli ultimi cinque anni immergendomi nel mondo affascinante del Machine Learning e del Deep Learning. La mia passione e la mia esperienza mi hanno portato a contribuire a oltre 50 progetti di ingegneria del software diversi, con un focus particolare su AI/ML. La mia curiosità in corso mi ha anche portato verso l'elaborazione del linguaggio naturale, un campo che sono ansioso di esplorare ulteriormente.