Le Voci dell’AI – Episodio 55: Retrieval Augmented Generation – Usare Large Language Models come Motori di Ricerca

Ciao a tutti, sono Vincenzo Lomonaco ricercatore all’Università di Pisa.

Nella puntata di oggi discuteremo di Retrieval Augmented GenerationRAG.

In breve, un’intera branca di ricerca nel mondo dell’intelligenza artificiale per il recupero e la manipolazione generativa di contenuti, a partire da una collezione di documenti multimediali.

Quali sono le metodologie che ce lo consentono e a cosa possono servirci a livello applicativo? Scopriamolo insieme in questa puntata di Le Voci dell’AI.

La Retrieval Augmented Generation è una metodologia che combina due approcci distinti: il recupero di informazioni – retrieval e la generazione di testo – generation.

In pratica, un sistema RAG utilizza una componente di recupero per cercare documenti rilevanti da un grande corpus di dati, basandosi su una query o una richiesta iniziale dell’utente.

Una volta recuperati questi documenti rilevanti, salienti, un modello di generazione tipicamente basato su architetture di deep learning, come i transformers, utilizza queste informazioni per produrre una risposta coerente e contestualizzata rispetto alla nostra domanda.

Questa combinazione migliora significativamente le capacità del modello rispetto ai metodi tradizionali che si basano esclusivamente sulla generazione di testo, come ChatGPT, per capirci.

il recupero di informazioni rilevanti fornisce al modello un contesto più ricco e dettagliato, riducendo le possibilità di generare risposte inesatte o fuori tema.

Questo approccio è particolarmente utile in applicazioni come assistenti virtuali, motori di ricerca e sistemi di risposta automatica, dove la precisione e la pertinenza delle risposte sono cruciali.

RAG, quindi, rappresenta un passo in avanti significativo nel rendere i modelli di linguaggio, i Large Language Models, più utili e affidabili, sfruttando al meglio l’enorme quantità di dati disponibili per migliorare la qualità delle risposte generate.

Ecco, ma qual è la metodologia allo stato dell’arte che lo rende possibile?

Innanzitutto si basa spesso su tre componenti chiave: una collezione di documenti chiamato corpusUn input da parte dell’utente può essere banalmente una frase che specifica la richiesta, una misura di similarità tra l’input e i documenti presenti nel corpus.

In questa immagine vediamo invece i cinque passi che sequenzialmente avvengono ogni volta che vogliamo utilizzare un sistema allo stato dell’arte di RAG.

Il primo step consiste nell’input dell’utente, che può essere una domanda in linguaggio naturale, un’immagine o un documento multimediale.

Questo documento viene poi utilizzato dal punto due per poter recuperare quelli che sono tutti i documenti, gli artefatti di interesse della nostra collezione tramite una nozione di similarità semantica. Infatti, non è detto che tutti i documenti abbiano la stessa importanza. E molti sistemi RAG riescono a estrarre sottoporzioni di interesse in funzione del bisogno informativo.

Per esempio, in un contesto medico, alla domanda circa le implicazioni di una specifica patologia, si andranno a recuperare solo quei documenti che parlano di quella patologia ignorando il resto.

Una volta isolati i documenti di interesse al punto tre, al punto quattro queste porzioni di dati significativi vengono unite alla domanda per creare una sorta di mega prompt, ossia un input da fornire a un classico Large Language Model come ChatGPT, per generare una risposta aumentata da queste informazioni salienti.

Di qui il nome Retrieval Augmented Generation.

Nel caso medico accennato in precedenza, è chiaro che alcune informazioni, come la cartella elettronica dei pazienti, non può essere presente nel web, ma deve essere recuperata da collezioni di dati locali su cui il Large Language Model non può avere esperienza, non può aver immagazzinato nei suoi parametri informazioni salienti.

Abbiamo comunque numerose evidenze empiriche di come utilizzare anche per informazioni su cui il modello è stato addestrato.

Risulta molto più efficace nella generazione di testo pertinente e senza allucinazioni, ossia generazione di elementi fattuali falsi.

Al punto cinque, quindi, il modello genera il suo output testuale o multimediale, che viene infine ripresentato all’utente.

Una delle parti più importanti di RAG è quindi il concetto di misura di similarità.

Le misure di similarità sono fondamentali per l’efficacia dei sistemi di RAG, poiché determinano quali documenti vengono recuperati in risposta a una query.

Esistono diverse tecniche, come immaginerete, per misurare la similarità tra il testo della query e i documenti del corpus.

Una delle più comune la cosine similarity, che calcola l’angolo tra due vettori nello spazio multidimensionale rappresentato dalla query e ciascuno dei documenti del corpus.

Un’altra tecnica popolare è la Jaccard similarity, che misura l’intersezione divisa per l’unione degli insiemi di parole presenti nei testi.

Infine, classiche misure di distanze utilizzate sono quella di Manhattan e quella euclidea, altre due misure utilizzate per confrontare i vettori di caratteristiche testuali.

Più recentemente, modelli di deep learning come ChatGPT hanno introdotto metodi di embedding dove le parole e i documenti vengono dapprima trasformati in vettori densi in spazi ad alta dimensionalità, utilizzando modelli del linguaggio preaddestrati.

Qui la similarità può essere calcolata utilizzando il prodotto scalare o la cosine similarity, di cui abbiamo accennato prima, tra questi vettori densi, che sono molto più semantici.

Inoltre, le tecniche di apprendimento contrastivo come CLIP di OpenAI allenano modelli proprio per massimizzare la similarità di queste rappresentazioni compresse e minimizzare quella che sussiste tra rappresentazioni non correlate.

Utilizzando quindi queste misure più evolute, i sistemi di RAG possono recuperare documenti più semanticamente pertinenti, non soltanto vicini dal punto di vista della sintassi del lessico, somma di parole comuni e contestualmente quindi più appropriati, migliorando notevolmente la qualità delle risposte generate.

I sistemi di RAG a livello applicativo sono molto interessanti perché migliorano significativamente l’usabilità dei Large Language Models.

Infatti, è praticamente impossibile tenere costantemente aggiornati questi modelli nel tempo o renderli particolarmente capaci di rispondere a domande contenute in documenti personali non presenti sul web.

Va ricordato, infatti, che la grandezza del prompt in input è molto limitata al giorno d’oggi, quindi è impossibile fornire tutti i nostri documenti in input.

Quindi con un copy&paste insieme alla nostra query, ci sarà capitato, utilizzando questi tools, di raggiungere questo limite massimo di caratteri che per esempio per ChatGPT è di circa 4000 caratteri.

In questa immagine vediamo un esempio dell’uso di ChatGPT con e senza la ricerca sul web tramite RAG.

In particolare ho chiesto “Ciao, cosa ne pensi della serie Le Voci dell’AI di 01net.it. Non usare il browser.”

ChatGPT mi risponde: la serie Le Voci dell’AI è una risorsa interessante bla bla bla.

Questa serie di articoli pubblicata su un sito web italiano, noto per le sue analisi tecnologiche mira a esplorare vari aspetti dell’AI, dalla sue applicazioni pratiche alle implicazioni etiche e sociali.

Una risposta tendenzialmente corretta.

Ora, se chiediamo di usare il web e magari chiediamo delle domande più specifiche, tipo chi è l’autore degli ultimi episodi, vediamo che ChatGPT effettua una prima ricerca tramite RAG isolando alcuni documenti salienti.

In particolare in questo caso abbiamo quattro pagine web, il sito web, Le Voci dell’AI di 01net.it, così come alcuni specifici contenuti di pagine web che sono state selezionate tra tutto il web in realtà come documenti rilevanti per rispondere appropriatamente a questa domanda.

La risposta in questo caso è parzialmente corretta.

Infatti viene riportato che gli ultimi episodi della serie Le Voci dell’AI sono scritti e presentati da Alessandro Perilli, che ne ha creati un numero significativo.

Ecco, vediamo che nel momento in cui, a fronte di una nuova domanda più specializzate, sei sicuro? Guarda l’ultimo episodio in ordine cronologico e ti riesce a risolvere correttamente il quesito, suggerendo che gli ultimi episodi della serie Le voci sono scritti da Vincenzo Lomonaco, che ha corretto e ci riporta, come vedete, anche i link relativi alle pagine web.

I documenti che sono stati selezionati mediante RAG e che gli hanno consentito di rispondere correttamente a questa domanda.

Bene, in questa puntata abbiamo parlato di Retrieval Augmented Generation – RAG, una tecnica fondamentale per rendere utili a grandi modelli di linguaggio naturali e utilizzarli essenzialmente come interfaccia di ricerca in linguaggio naturale per corpus di conoscenza più ampi o più specifici sostituiranno i search engine nel futuro? Nessuno può saperlo, ma in parte lo stanno già facendo.

Ciao! Alla prossima puntata di Le Voci dell’AI.

Se questo articolo ti è piaciuto e vuoi rimanere sempre informato sulle novità tecnologiche

LASCIA UN COMMENTO

Inserisci il tuo commento
Inserisci il tuo nome