Riduzione delle allucinazioni dell’IA con la generazione potenziata dal recupero

AI hallucination reduction with enhanced generation through recovery

Nel mondo in rapida evoluzione dell’IA, i grandi modelli linguistici hanno fatto molta strada, vantando una conoscenza impressionante del mondo che ci circonda. Tuttavia, i LLM, per quanto intelligenti, spesso faticano a riconoscere i limiti della propria conoscenza, una carenza che li porta spesso a “allucinare” per colmare le lacune. Una nuova tecnica, nota come Retrieval Augmented Generation (RAG), promette di aumentare efficientemente la conoscenza di questi LLM e ridurre l’impatto delle allucinazioni consentendo di arricchire le richieste con dati proprietari.

I LLM sono modelli informatici capaci di comprendere e generare testi simili a quelli umani. Sono l’IA dietro il tuo assistente digitale, la funzione di autocorrezione e persino alcune delle tue email. La loro conoscenza del mondo è spesso immensa, ma non è perfetta. Proprio come gli esseri umani, i LLM possono raggiungere i limiti della loro conoscenza, ma invece di fermarsi, tendono a fare congetture educate o “allucinare” per completare il compito. Ciò può portare a risultati contenenti informazioni errate o fuorvianti.

In un mondo semplice, la soluzione sarebbe quella di fornire al modello le informazioni proprietarie rilevanti nel momento esatto in cui sono necessarie, proprio quando viene effettuata la query. Tuttavia, determinare quali informazioni siano “rilevanti” non è sempre semplice e richiede una comprensione di ciò che è stato chiesto al LLM di realizzare. Qui entra in gioco RAG.

I modelli di embedding nel mondo dell’IA agiscono come traduttori. Trasformano i documenti di testo in un lungo elenco di numeri attraverso un processo noto come “codifica del documento”. Questo elenco rappresenta la “comprensione” interna del LLM del significato del documento. Questa stringa di numeri è nota come vettore: una rappresentazione numerica degli attributi di un dato. Ogni punto dati è rappresentato come un vettore con molti valori numerici, in cui ogni valore corrisponde a una specifica caratteristica o attributo del dato.

Anche se una stringa di numeri potrebbe sembrare insignificante per la persona media, questi numeri fungono da coordinate in uno spazio ad alta dimensione. Allo stesso modo in cui la latitudine e la longitudine possono descrivere una posizione in uno spazio fisico, questa stringa di numeri descrive la posizione del testo originale in uno spazio semantico, ovvero lo spazio di tutti i possibili significati.

Trattare questi numeri come coordinate ci consente di misurare la similarità di significato tra due documenti. Questa misurazione è considerata come la distanza tra i rispettivi punti nello spazio semantico. Una distanza più piccola indica una maggiore similarità di significato, mentre una distanza maggiore suggerisce una disparità di contenuto. Di conseguenza, le informazioni rilevanti per una query possono essere scoperte cercando documenti “vicini” alla query nello spazio semantico. Questa è la magia della ricerca di similarità vettoriale.

L’idea alla base del Retrieval Augmented Generation

RAG è un’architettura di IA generativa che applica la similarità semantica per scoprire automaticamente informazioni rilevanti per una query.

In un sistema RAG, i tuoi documenti sono memorizzati in un database vettoriale (DB). Ogni documento viene indicizzato in base a un vettore semantico prodotto da un modello di embedding, in modo che la ricerca di documenti vicini a un dato vettore di query possa essere effettuata rapidamente. Questo significa essenzialmente che a ogni documento viene assegnata una rappresentazione numerica (il vettore) che ne indica il significato.

Quando arriva una query, lo stesso modello di embedding viene utilizzato per produrre un vettore semantico per la query.

Il modello recupera quindi documenti simili dal DB utilizzando la ricerca vettoriale, cercando documenti i cui vettori sono vicini a quello della query.

Una volta che i documenti rilevanti sono stati recuperati, la query, insieme a questi documenti, viene utilizzata per generare una risposta dal modello. In questo modo, il modello non deve fare affidamento esclusivamente sulla propria conoscenza interna, ma può accedere ai dati che fornisci nel momento giusto. Il modello è quindi meglio attrezzato per fornire risposte più accurate e adeguate al contesto incorporando dati proprietari memorizzati in un database che offre la ricerca vettoriale come funzionalità.

Esistono alcuni database vettoriali disponibili, tra cui DataStax Astra DB, per il quale la ricerca vettoriale è ora disponibile in generale. Il principale vantaggio di un database che consente la ricerca vettoriale è la velocità. I database tradizionali devono confrontare una query con ogni elemento del database. Al contrario, la ricerca vettoriale integrata consente una forma di indicizzazione e include algoritmi di ricerca che accelerano notevolmente il processo, rendendo possibile la ricerca di enormi quantità di dati in una frazione del tempo richiesto da un database standard.

È possibile applicare un affinamento alla codifica della query e al generatore di risultati per prestazioni ottimizzate. L’affinamento è un processo in cui i parametri del modello vengono leggermente regolati per adattarsi meglio al compito specifico in questione.

RAG rispetto al Fine-Tuning

Il Fine-Tuning offre molti vantaggi per ottimizzare i LLM. Tuttavia, presenta anche alcune limitazioni. Innanzitutto, non consente l’integrazione dinamica di dati nuovi o proprietari. La conoscenza del modello rimane statica dopo l’addestramento, portandolo a generare risposte errate quando gli vengono richiesti dati al di fuori del set di addestramento. RAG, d’altro canto, recupera e incorpora dinamicamente dati aggiornati e proprietari da un database esterno, mitigando il problema delle risposte errate e fornendo risposte più accurate in base al contesto. RAG ti dà il controllo in fase di interrogazione su quali informazioni vengono fornite al modello, consentendo di personalizzare le richieste per utenti specifici al momento esatto dell’interrogazione.

RAG è anche più efficiente dal punto di vista computazionale e flessibile rispetto al Fine-Tuning. Il Fine-Tuning richiede che l’intero modello venga riaddestrato per ogni aggiornamento del dataset, un compito che richiede tempo e risorse. Al contrario, RAG richiede solo l’aggiornamento dei vettori dei documenti, consentendo una gestione delle informazioni più facile ed efficiente. L’approccio modulare di RAG consente anche il fine-tuning del meccanismo di recupero separatamente, consentendo l’adattamento a diversi compiti o domini senza modificare il modello linguistico di base.

RAG potenzia la potenza e l’accuratezza dei grandi modelli linguistici, rendendolo una valida alternativa al Fine-Tuning. In pratica, le aziende tendono ad utilizzare più spesso RAG che il Fine-Tuning.

Cambiare il Ruolo dei LLMs con RAG

L’integrazione di RAG nei LLM non solo migliora l’accuratezza delle loro risposte, ma massimizza anche il loro potenziale. Il processo consente ai LLM di concentrarsi su ciò in cui eccellono, ovvero generare in modo intelligente contenuti da una richiesta. Il modello non è più l’unica fonte di informazioni perché RAG gli fornisce conoscenze proprietarie rilevanti quando richiesto, e il corpus di conoscenza accessibile al modello può essere ampliato e aggiornato senza costosi addestramenti del modello.

In sostanza, RAG agisce come un ponte, collegando il LLM a una riserva di conoscenze che va oltre le sue capacità interne. Di conseguenza, riduce drasticamente la tendenza del LLM a “hallucinare” e fornisce un modello più accurato ed efficiente per gli utenti.