Large Language Models e allucinazioni: come il prompt engineering può risolverlo

I Large Language Models

 

I large language models (LLMs) sono una classe di modelli di intelligenza artificiale che, negli ultimi anni, ha rivoluzionato il campo del linguaggio naturale. Questi modelli sono progettati per comprendere e generare testo in modo molto simile a come lo farebbe una persona. Possono essere utilizzati in svariate applicazioni, come la traduzione automatica, la generazione di testi, la creazione di chatbot, l’analisi del sentimento, la scrittura di codice e molto altro. La chiave del loro successo risiede nella loro abilità di catturare informazioni da enormi quantità di testo e utilizzarle per compiere compiti linguistici complessi.

Origini e storia

Dal punto di vista storico, lo studio e l’implementazione di large language models ha radici nelle tecniche di elaborazione del linguaggio naturale (o Natural Language Processing NLP) tramite tecniche di Intelligenza Artificiale, o più precisamente, di Machine Learning, che risalgono agli anni '50 e '60. Tuttavia, è stato solo negli ultimi anni, grazie all'aumento delle capacità di calcolo e ai progressi nel campo del Deep Learning, che questi modelli sono diventati così potenti ed efficienti.

Uno dei primi modelli utilizzati è stato BERT (Bidirection Encoder Representation from Transformers) rilasciato da Google nel 2018. Tra i vari approcci, questo è stato sicuramente uno di quello ad attirare maggiormente l’interesse della comunità scientifica, sia per le sue performance che per l’utilizzo delle principali tecnologie che poi hanno reso i LLMs illustri anche tra i non tecnici. Da li sono stati implementati tantissimi modelli che hanno portato poi alla nascita del Generative Pre-trained Transformer (GPT) sviluppato da OpenAI. La versione originale, GPT-1, è stata introdotta nel 2018, ma il modello è stato ulteriormente migliorato con versioni successive come GPT-2, GPT-3 e oltre. Questi modelli sono noti per la loro capacità di apprendere da enormi quantità di testo tratto da internet, consentendo loro di generare testi che possono essere sorprendentemente coerenti e convincenti.

Caratteristiche tecniche

Dal punto di vista tecnico, i LLMs si basano su Deep Neural Networks, in particolare su un'architettura chiamata Transformer, basata sul cosiddetto Meccanismo di Attenzione. In generale, quest’architettura prevede che la creazione dei LLMs avvenga in due macro-fasi. Una prima fase in cui i testi vengono codificati in maniera opportuna, ed una seconda fase in cui l’informazione codificata viene decodificata per produrre l’output desiderato.

Sia la fase di codifica che quella di decodifica fanno uso del meccanismo di Attenzione, che serve per produrre una rappresentazione delle parole che tenga in considerazione l'importanza relativa di ogni parola nella sequenza rispetto a una parola di interesse. Per esempio, se la parola di interesse è "gatto," il meccanismo di attenzione calcola quanto ogni altra parola nella frase è rilevante per comprendere il significato della parola "gatto." Utilizzando questo meccanismo, il Transformer viene esposto a grandi quantità di testo non annotato da internet.

Durante la fase di addestramento, il modello impara a catturare strutture linguistiche, come parole, frasi, relazioni e contesti tra parole. Questo processo aiuta il modello a sviluppare una rappresentazione del linguaggio che può essere utilizzata in una varietà di compiti. Una volta addestrato, il modello viene raffinato per svolgere compiti specifici. Questa fase viene normalmente indicata come fase di "finetuning" e coinvolge l'addestramento del modello su dataset annotati per specifici compiti, come traduzione, generazione di testi o analisi del sentiment. Questo aiuta il modello a specializzarsi per eseguire quei compiti specifici.

Infine, il modello può essere utilizzato per generare testo o rispondere a domande. Quando gli viene presentato un input, il modello restituisce un output basato sulle conoscenze e le strutture linguistiche apprese durante le fasi di training e finetuning.

Il Problema delle allucinazioni

Se da una parte possiamo affermare con certezza che i LLMs rappresentano oggi una delle tecnologie più dirompenti nel panorama dell’AI, dall’altra è necessario evidenziare che queste tecnologie non sono completamente prive di limitazioni o punti critici. Conoscere questi punti di attenzione è fondamentale per poter governare correttamente questi strumenti e utilizzarli per generare valore.

  • Una delle problematiche principali dei LLMs è il cosiddetto problema delle allucinazioni. Il problema delle allucinazioni si riferisce al fatto che questi modelli possono generare testo che sembra coerente e informato, ma che in realtà è inventato o inaccurato. Questo comportamento è spesso dovuto alla natura statistica e probabilistica dell'apprendimento automatico utilizzato in questi modelli. Esistono diverse cause che possono portare questi modelli a soffrire del problema delle allucinazioni. Tra le principali:
  • Apprendimento statistico: I LLM apprendono dal testo presente nei loro dataset di addestramento. Non hanno comprensione reale, cognizione o consapevolezza. Ciò significa che possono generare testo che sembra informato basandosi solo sulle probabilità statistiche delle parole nel testo di addestramento, anche se le informazioni generate sono errate o completamente inventate.
  • Mancanza di verifica delle fonti: I LLM non hanno la capacità di verificare le informazioni o di accedere a fonti esterne per confermare ciò che generano. Pertanto, possono generare affermazioni senza fonte o informazioni non verificabili, portando a errori o allucinazioni.
  • Bias nei dati di addestramento: Se i dati di addestramento contengono bias, stereotipi o informazioni inesatte, i modelli possono perpetuarli. Questo può portare a generare informazioni distorte o discriminazione nei risultati.
  • Input ambigui: Dal momento che i LLMs cercano di generare testo coerente, qualora gli vengano forniti input ambigui o poco chiari, possono riempire le lacune con informazioni immaginate.

Affrontare il problema delle allucinazioni nei LLM è una sfida complessa, ma esistono alcune strategie per mitigarlo:

  • Diversificazione dei dati di addestramento: Ridurre i bias e migliorare la qualità dei dati di addestramento può contribuire a limitare le allucinazioni. Includere una varietà di fonti e punti di vista può aiutare a mitigare il rischio di errore.
  • Prompting: Durante la fase di finetuning dei modelli, è possibile introdurre restrizioni o dati specifici per guidare il comportamento del modello tramite opportune tecniche di prompting. Ad esempio, è possibile guidare il modello a evitare affermazioni non verificabili o a seguire linee guida etiche specifiche.
  • Feedback umano: Gli operatori umani possono supervisionare e moderare le risposte del modello. Questo richiede la revisione e il miglioramento costante delle uscite del modello.
  • Trasparenza e interpretabilità: Sviluppare modelli più trasparenti e interpretabili può aiutare a comprendere come il modello prende decisioni e quale sia la fonte delle sue risposte. Questo può facilitare la correzione e l'identificazione delle allucinazioni.

La maggior parte delle tecniche elencate per mitigare il problema delle allucinazioni richiede una quantità di lavoro non indifferente. Diversificare i dati di addestramento del modello, utilizzando nuovi dati per correggere il training, infatti, è un’operazione molto complessa che non solo richiede parecchie conoscenze e competenze sulla materia, ma anche un set di dati di addestramento sufficiente ampio, nonché pulito e adeguato al task, cosa assolutamente non banale (il rischio di utilizzare dati sporchi o non adeguati è molto alto e potrebbe portare a un peggioramento delle performance del modello), così come un’infrastruttura adatta ad eseguire il riaddestramento e ad ospitare il nuovo modello, con i costi che ne conseguono. Anche effettuare una validazione dei risultati in maniera manuale, tramite un feedback umano, è un’operazione molto lunga, costosa e complessa, della quale non si può, tra l’altro, garantire la correttezza.

Infine, seppure il tema della trasparenza e interpretabilità, sia un tema molto accattivante e all’attenzione della comunità scientifica, ad oggi non ci sono ancora delle tecniche consolidate e del tutto efficaci per validare l’output dei LLMs. Su questi temi, infatti, la ricerca sta muovendo i primi passi e anche se l’attenzione è tanta non si hanno ancora degli strumenti solidi.

Tra le tecniche evidenziate l’utilizzo di opportune tecniche di prompting è probabilmente una delle scelte migliori oggi, a tal punto da dare origine a un nuovo ramo di specializzazione della data science che viene chiamato prompt engineering. Questo non viene utilizzato solo per correggere il problema delle allucinazioni, ma più in generale, anche per guidare i LLMs nell'eseguire compiti specifici.

Una delle caratteristiche dei LLMs, infatti, è proprio quella di essere modelli general purpose, ossia addestrati per comprendere e interpretare il linguaggio naturale senza uno scopo preciso, ma con la peculiarità di poter essere specializzati ad eseguire un task specifico. È proprio grazie al prompting che questi modelli possono essere specializzati e utilizzati in una varietà sempre maggiori di compiti.

Cos’è il Prompt Engineering

Il Prompt Engineering è una tecnica utilizzata per guidare e controllare il comportamento dei LLMs durante la generazione di testo per compiti specifici. In pratica, consiste nel fornire al modello un prompt o una serie di istruzioni che specificano il contesto e la natura del compito da svolgere. Il Prompt Engineering è un'importante strategia per ottenere risultati coerenti e accurati nei task specifici, consentendo di personalizzare l'output del modello in base alle esigenze dell'utente. Ecco alcune delle principali tecniche di prompting:

  • Prompt a scaletta: Questa tecnica prevede l'utilizzo di prompt ben strutturati e dettagliati, nei quali si chiede al LLMs di spiegare il ragionamento fornendo anche un esempio su come farlo. Ad esempio, se, data una sequenza di numeri, volessimo calcolare la somma dei numeri dispari che compaiono nella sequenza, un prompt a scaletta potrebbe essere: "Data la sequenza 3, 4, 5, 6, 7, 8, i numeri dispari sono 3, 5 e 7 e la loro somma è 15. Data la sequenza 13, 128, 234, 654, 733, qual è la somma dei numeri dispari che compaiono nella sequenza? " Questo fornisce al modello un contesto chiaro e specifico su cosa deve fare.
  • Prompt condizionali: In questo caso, si utilizzano affermazioni condizionali per guidare il modello. Ad esempio, per un modello di generazione di testi, un prompt condizionale potrebbe iniziare con "Se scrivessi un articolo su..." o "Immagina di essere un esperto in..." Questo orienta il modello a produrre testo coerente con la situazione ipotetica specificata.
  • Prompt di domanda-risposta: Per generare risposte a domande specifiche, si può fornire al modello un prompt nel formato di una domanda. Ad esempio, per chiedere "Qual è la capitale dell'Italia?" il prompt potrebbe essere semplicemente "La capitale dell'Italia è..."
  • Prompt di esempio: Un prompt di esempio presenta al modello un esempio con il risultato desiderato. Ad esempio, per l'elaborazione del linguaggio naturale, si potrebbe fornire un esempio di come dovrebbe apparire l'output desiderato, come "Ecco un esempio di un'analisi del sentiment positivo: 'Questo prodotto è eccellente!'" Il modello cercherà quindi di generare un output simile.
  • Prompt multipli: Si possono utilizzare più prompt per fornire ulteriori contesti o suggerimenti al modello. Questo approccio può aiutare a restringere ulteriormente le risposte e a migliorare la coerenza.

L'uso di tecniche di prompting è fondamentale per migliorare l'efficacia dei LLM in compiti specifici poiché garantisce risultati pertinenti e aiuta i LLMs a fornire risposte coerenti con le aspettative dell'utente. Non solo, come spiegato, aiuta a risolvere il problema delle allucinazioni, fornendo ai LLMs le istruzioni necessarie per eseguire un certo task. Tuttavia, il prompt design richiede una certa esperienza e sperimentazione per ottenere i migliori risultati, in quanto è necessario bilanciare la specificità delle istruzioni con la flessibilità del modello. Inoltre, quando si sviluppa un prompt è importante fare sempre delle considerazioni etiche, poiché il modo in cui vengono fornite le istruzioni può influenzare l'output del modello in termini di bias e conformità ai principi etici.

Il prompting è sufficiente per risolvere il problema delle allucinazioni?

Sebbene il prompting sia un utile strumento per guidare e controllare il comportamento dei LLMs e mitigare il problema delle allucinazioni, non è una soluzione completa o definitiva. Il prompting ha il potenziale per ridurre le allucinazioni nei risultati generati dai LLM, ma presenta alcune limitazioni:

  • Limiti di contesto: Il prompting funziona bene quando si ha un contesto chiaro e ben definito per il compito, ma potrebbe non essere altrettanto efficace in situazioni ambigue o complesse. Alcune richieste o compiti possono richiedere prompt molto specifici e dettagliati, il che potrebbe essere impraticabile o poco intuitivo per l'utente.
  • Sensibilità del modello: I LLM possono ancora produrre risposte indesiderate o errate anche con prompt accurati. Questo è particolarmente vero quando i modelli vengono sottoposti a input ambigui o richieste complesse.
  • Bias nei dati di addestramento: Anche con il prompting, i modelli possono perpetuare bias o stereotipi presenti nei dati di addestramento. I prompt possono mitigare questi problemi solo in parte.
  • Interazione umana: In alcuni casi, potrebbe essere necessario un controllo umano aggiuntivo per monitorare e moderare le risposte dei modelli, soprattutto in situazioni in cui i risultati potrebbero avere implicazioni gravi.

Pertanto, mentre il prompting è uno strumento utile per affrontare il problema delle allucinazioni ma è importante considerarlo come parte di un approccio più ampio che comprende anche la progettazione dei dati di addestramento, il controllo etico e la revisione umana delle risposte del modello. L'obiettivo è trovare un equilibrio tra l'automazione fornita dai modelli e il controllo umano per garantire risultati accurati, etici e coerenti con le esigenze dell'utente. Questo è un tema tutt’altro che banale e sul quale la comunità scientifica si sta interrogando a diversi livelli per fornire la soluzione migliore.

Conclusione

In conclusione, i Large Language Models rappresentano una pietra miliare nell'ambito dell'Intelligenza Artificiale, consentendo di generare testo coerente e informativo su una vasta gamma di compiti linguistici. Tuttavia, come abbiamo visto, presentano sfide significative, tra cui il problema delle allucinazioni. Le tecniche di prompt engineering si sono dimostrate strumenti potenti per guidare e controllare il comportamento di questi modelli, fornendo istruzioni chiare e specifiche per ottenere risultati desiderati. Va sottolineato tuttavia che queste tecniche, seppur efficaci, non sono sempre sufficienti per risolvere il problema.

Inoltre, è importante notare che l'evoluzione dei Large Language Models non si ferma qui. Gli sviluppi futuri potrebbero portare a modelli ancora più sofisticati e controllabili, con capacità di apprendimento continuo e maggiore comprensione del contesto. Dobbiamo anche rimanere vigili riguardo ai limiti etici e ai bias che possono emergere dall'uso di questi modelli, continuando a lavorare per garantire l'equità e la responsabilità nell'implementazione di queste tecnologie. È indubbio, tuttavia, che l'avanzamento nella ricerca sui Large Language Models promette di plasmare il futuro dell'elaborazione del linguaggio naturale e dell'interazione uomo-macchina in modi eccitanti e innovativi.

Ti è piaciuto l'articolo? L'ha scritto Giorgio Lazzarinetti, Data Scientist e PhD in Computer Science e docente del Generative AI HUB!