La Retrieval-Augmented Generation (RAG) è un framework di Intelligenza Artificiale (IA) che consente di recuperare dati da una base di conoscenza esterna al fine di creare Modelli di Linguaggio di Grandi Dimensioni (LLMs) sulle informazioni più accurate e aggiornate, offrendo agli utenti una visione del processo generativo degli LLMs.
In altre parole, la RAG è un modello di generazione aumentata tramite delle attività di retrieval.
La RAG funziona in due fasi: recupero e generazione di contenuti.
Nella fase di recupero, il sistema esegue una ricerca nei suoi indici per trovare i documenti più pertinenti.
Questo può essere fatto attraverso tecniche di Information Retrieval (IR), dove ogni documento è indicizzato in base al suo contenuto.
Utilizzando algoritmi di matching e ranking, il sistema stima quali parti dei documenti (paragrafi, sezioni, ecc.) sono più rilevanti per la domanda.
Nella fase di generazione, il sistema LLM utilizza i pezzi pertinenti recuperati come contesto per generare una risposta informata.
Questo processo permette di gestire in modo efficiente grandi quantità di dati, perché solo i segmenti di testo ritenuti utili per rispondere a una specifica domanda vengono passati all’LLM per la generazione del testo.
La RAG migliora la qualità delle risposte generate dagli LLM ancorando il modello a fonti esterne di conoscenza per integrare la rappresentazione interna delle informazioni detenuta dal modello.
Implementando la RAG in un sistema di risposta a domande basato su LLM, si ottengono due benefici principali: assicura che il modello abbia accesso ai fatti più recenti e affidabili e che gli utenti abbiano accesso alle fonti del modello, garantendo che le sue affermazioni possano essere verificate per accuratezza e, in definitiva, fidatezza.
Per esaminare il diagramma in modo più dettagliato, possiamo analizzare le seguenti fasi:
Dati di origine: si tratta della posizione in cui i dati sono presenti, come ad esempio un file o una cartella nel computer, un file nell’archiviazione cloud, un asset di dati di Azure Machine Learning, un repository Git o un database SQL.
Suddivisione in blocchi di dati: i dati nell’origine devono essere convertiti in testo normale. Ad esempio, i documenti di Word o i PDF devono essere aperti e convertiti in testo. Il testo viene quindi suddiviso in parti più piccole.
Conversione del testo in vettori: i vettori, denominati incorporamenti, sono rappresentazioni numeriche dei concetti convertiti in sequenze numeriche. Questi semplificano la comprensione delle relazioni tra tali concetti da parte dei computer.
Collegamenti tra i dati di origine e gli incorporamenti: queste informazioni vengono archiviate come metadati nei blocchi creati. Questi blocchi vengono quindi usati per facilitare le VM nella generazione di citazioni durante la generazione di risposte.
Vi portiamo un esempio pratico per capire meglio l'utilità di questo framework:
supponiamo che tu voglia sapere chi ha inventato il primo computer.
Il sistema RAG eseguirà una ricerca nei suoi indici per trovare i documenti più pertinenti. Utilizzando algoritmi di matching e ranking, il sistema stimerà quali parti dei documenti (paragrafi, sezioni, ecc.) sono più rilevanti per la domanda.
Una volta recuperati i pezzi pertinenti, il sistema LLM li utilizzerà come contesto per generare una risposta informata. In questo caso, il sistema potrebbe recuperare informazioni su Charles Babbage, Ada Lovelace, Alan Turing e altri pionieri dell’informatica.
Utilizzando queste informazioni come contesto, il sistema LLM genererà una risposta informata alla tua domanda.
QUALI SONO LE APPLICAZIONI DELLA RAG?
La Retrieval-Augmented Generation (RAG) ha diverse applicazioni.
Nei sistemi di domanda-risposta, il modello basato sul recupero delle informazioni può trovare passaggi o documenti pertinenti contenenti la risposta, mentre il modello generativo può generare una risposta concisa e coerente basata su tali informazioni.
Inoltre, la RAG può essere utilizzata per migliorare la qualità delle risposte generate dagli LLM ancorando il modello a fonti esterne di conoscenza per integrare la rappresentazione interna delle informazioni detenuta dal modello.
Potremo quindi applicare la Retrieval-Augmented Generation per:
Sistemi di domande e risposte: la RAG può essere utilizzata per migliorare la qualità delle risposte generate dai modelli di domande e risposte, fornendo contesto aggiuntivo per la generazione di risposte più accurate e complete.
Chatbot: la RAG può essere utilizzata per migliorare l’efficacia dei chatbot, fornendo loro accesso a fonti esterne di conoscenza per rispondere alle domande degli utenti in modo più preciso e completo.
Generazione di testo: la RAG può essere utilizzata per generare testo in modo più accurato e coerente, fornendo contesto aggiuntivo per la generazione di testo