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.
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.
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.
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.
Affrontare il problema delle allucinazioni nei LLM è una sfida complessa, ma esistono alcune strategie per mitigarlo:
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.
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:
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.
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:
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.
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!