Che cos'è la Retrieval-Augmented Generation (RAG)?

Alan Zeichick | Tech Content Strategist | 19 settembre 2023

L'intelligenza artificiale generativa (AI) eccelle nella creazione di risposte di testo basate su modelli linguistici di grandi dimensioni (LLM, large language model) dove l'AI viene addestrata attraverso un numero enorme di datapoint. La buona notizia è che il testo generato è spesso facile da leggere e fornisce risposte dettagliate che sono ampiamente applicabili alle domande poste dal software, spesso definite come prompt.

La brutta notizia è che le informazioni utilizzate per generare la risposta sono limitate alle informazioni usate per addestrare l'intelligenza artificiale, spesso un LLM generalizzato. I dati del LLM potrebbero non essere stati aggiornati da settimane, mesi o anni e nel caso di un chatbot aziendale AI potrebbero non includere informazioni specifiche sui prodotti o servizi dell'organizzazione. Ciò può portare a risposte errate che erodono la fiducia che clienti e dipendenti ripongono nella tecnologia.

Che cos'è la Retrieval-Augmented Generation (RAG)?

È qui che entra in gioco la retrieval-augmented generation (RAG). La RAG fornisce un modo per ottimizzare la produzione di un LLM con informazioni mirate senza modificare il modello alla sua base; quelle informazioni mirate possono essere più aggiornate rispetto al LLM, ma anche più precise nel caso di organizzazioni e settori specifici. Ciò significa che il sistema di intelligenza artificiale generativa può fornire risposte più appropriate ai prompt, e basare tali risposte su dati estremamente attuali.

La RAG si è fatta notare dagli sviluppatori di AI generativa dopo la pubblicazione di "Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks", un articolo del 2020 pubblicato da Patrick Lewis e un team di Facebook AI Research. Il concetto di RAG è stato accettato da molti ricercatori accademici e del settore, i quali lo vedono come un modo per migliorare significativamente il valore dei sistemi di intelligenza artificiale generativa.

Definizione di Retrieval-Augmented Generation

Imagina un campionato sportivo che vuole che i fan e i media siano in grado di utilizzare la chat per accedere ai suoi dati e rispondere a domande su giocatori, squadre, storia e regole dello sport, statistiche e classifiche attuali. Un LLM generalizzato potrebbe rispondere a domande sulla storia e sulle regole o forse descrivere lo stadio di una squadra specifica. Non sarebbe in grado di parlare della partita della sera precedente o di fornire informazioni aggiornate su un particolare infortunio di un atleta perché non avrebbe tali informazioni, e poiché i LLM richiedono una significativa potenza di calcolo per riaddestrarsi, non è possibile aggiornare continuativamente i modelli.

Oltre al grande, statico LLM, il campionato sportivo possiede o può accedere a molte altre fonti di informazioni, tra cui database, data warehouse, documenti contenenti informazioni sui giocatori e feed di notizie in cui si parla nel dettaglio di ogni partita. La RAG consente all'AI generativa di acquisire queste informazioni. La chat può fornire informazioni più aggiornate, più appropriate dal punto di vista contestuale e più accurate.

In poche parole, la RAG aiuta i LLM a dare risposte migliori.

Concetti chiave

  • La RAG è una tecnica di AI relativamente recente che può migliorare la qualità dell'intelligenza artificiale generativa consentendo a modelli linguistici di grandi dimensioni (LLM) di sfruttare risorse di dati aggiuntive senza bisogno di retraining.
  • I modelli RAG creano repository di conoscenze in base ai dati dell'organizzazione, e i repository possono essere costantemente aggiornati per aiutare l'intelligenza artificiale generativa a fornire risposte aggiornate e contestuali.
  • Chatbot e altri sistemi conversazionali che utilizzano l'elaborazione del linguaggio naturale possono trarre grandi vantaggi dalla RAG e dall'intelligenza artificiale generativa.
  • L'implementazione della RAG richiede tecnologie come i database vettoriali, i quali consentono la rapida codifica di nuovi dati, e ricerche sui dati da immettere nel LLM.

Come funziona la Retrieval-Augmented Generation?

Considera tutte le informazioni di cui dispone un'organizzazione: i database strutturati, i PDF e altri documenti non strutturati, i blog, i feed delle notizie e le trascrizioni di chat delle sessioni di customer service passate. Nella RAG, questa vasta quantità di dati dinamici viene tradotta in un formato comune e memorizzata in una libreria di conoscenze accessibile dal sistema di intelligenza artificiale generativa.

I dati in quella knowledge library vengono quindi elaborati in rappresentazioni numeriche utilizzando un tipo speciale di algoritmo chiamato modello linguistico incorporato e poi memorizzati in un database vettoriale, il quale può essere rapidamente setacciato e utilizzato per recuperare le informazioni contestuali corrette.

RAG e modelli linguistici di grandi dimensioni (LLM, large language models)

Mettiamo il caso che un utente finale invii al sistema di intelligenza artificiale generativa un prompt specifico, ad esempio: "Dove si giocherà la partita di stasera, quale sarà la formazione iniziale e cosa dicono i giornalisti sull'incontro?" La query viene trasformata in un vettore e utilizzata per eseguire query sul database vettoriale, il quale recupera informazioni rilevanti per il contesto della domanda. Tali informazioni contestuali più il prompt originale vengono quindi inserite nel LLM, che genera una risposta testuale basata sia sulla sua conoscenza generalizzata non aggiornata sia sulle informazioni contestuali estremamente attuali.

È interessante notare che, mentre il processo di formazione del LLM generalizzato è lungo e costoso, gli aggiornamenti al modello RAG sono l'opposto. I nuovi dati possono essere caricati nel modello linguistico incorporato e tradotti in vettori su base continua e incrementale. Infatti, le risposte dell'intero sistema di AI generativa possono essere reinserite nel modello RAG, migliorandone così le performance e la precisione, perché, di base, sa come ha risposto in precedenza a una domanda simile.

Un ulteriore vantaggio della RAG deriva dal fatto che, utilizzando il database vettoriale, l'AI generativa può fornire la fonte specifica dei dati che cita nella sua risposta, cosa che i LLM non possono fare. Pertanto, se c'è un'inesattezza nell'output dell'AI generativa, il documento che contiene informazioni errate può essere rapidamente identificato e corretto, e le informazioni giuste possono poi essere inserite nel database vettoriale.

In breve, la RAG fornisce tempestività, contesto e precisione basati su prove all'AI generativa, andando oltre ciò che lo stesso LLM può fornire.

Differenze tra retrieval-augmented generation e ricerca semantica

La RAG non è l'unica tecnica utilizzata per migliorare la precisione dell'AI generativa basata su LLM. Un'altra tecnica è la ricerca semantica, la quale aiuta il sistema AI a restringere il significato di una query tentando una comprensione approfondita delle parole e delle locuzioni specifiche del prompt.

La ricerca tradizionale si basa sulle parole chiave. Ad esempio, una query elementare sulle specie arboree originarie della Francia potrebbe setacciare il database del sistema AI utilizzando "alberi" e "Francia" come parole chiave e trovare dati che contengono entrambe, ma il sistema potrebbe non comprendere veramente il significato di "alberi in Francia" e quindi recuperare troppe informazioni, troppo poche o anche informazioni sbagliate. Questa ricerca basata su parole chiave potrebbe anche non recuperare informazioni perché troppo letterale: gli alberi nativi della Normandia potrebbero non essere presi in considerazione, sebbene crescano in Francia, perché quella parola chiave mancava.

La ricerca semantica va oltre la ricerca per parola chiave determinando il significato delle domande e dei documenti di origine e utilizzando tale significato per recuperare risultati più accurati. La ricerca semantica è parte integrante della RAG.

Utilizzare la RAG nelle applicazioni di chat

Se una persona vuole una risposta immediata a una domanda, è difficile battere l'immediatezza e l'usabilità di un chatbot. La maggior parte dei bot viene addestrata su un numero finito di intenti, ovvero le attività o i risultati desiderati dal cliente, e risponde a questi. Le funzionalità RAG possono migliorare i bot attuali consentendo al sistema AI di fornire risposte in linguaggio naturale alle domande che non sono nell'elenco degli intenti.

Il paradigma "poni una domanda, ottieni una risposta" rende i chatbot un caso d'uso perfetto per l'AI generativa per molte ragioni. Le domande spesso richiedono un contesto specifico per generare una risposta accurata e, dato che le aspettative degli utenti dei chatbot sulla pertinenza e sull'accuratezza sono spesso elevate, è chiaro come si applicano le tecniche RAG. In effetti, per molte organizzazioni, i chatbot possono effettivamente essere il punto di partenza per l'uso di RAG e AI generativa.

Le domande spesso hanno bisogno di un contesto specifico per fornire una risposta accurata. Le query dei clienti su un prodotto appena introdotto, ad esempio, non sono utili se i dati riguardano il modello precedente e potrebbero risultare fuorvianti. E un escursionista che vuole sapere se un parco è aperto questa domenica si aspetta informazioni aggiornate e accurate su quel parco specifico in quella data specifica.

Vantaggi della Retrieval-Augmented Generation

Le tecniche RAG possono essere utilizzate per migliorare la qualità delle risposte di un sistema di intelligenza artificiale generativa ai prompt, qualcosa che va oltre ciò che un LLM da solo può fornire. Tra i vantaggi ci sono i seguenti:

  • La RAG ha accesso a informazioni che potrebbero essere più aggiornate dei dati utilizzati per addestrare il LLM.
  • I dati contenuti nel repository di informazioni RAG possono essere continuamente aggiornati senza incorrere in costi significativi.
  • Il repository di conoscenze della RAG può contenere dati più contestuali di quelli in un LLM generalizzato.
  • È possibile identificare la fonte delle informazioni nel database vettoriale della RAG. Inoltre, poiché le origini dei dati sono note, è possibile correggere o eliminare informazioni errate nella RAG.

Sfide della Retrieval-Augmented Generation

Poiché la RAG è una tecnologia relativamente nuova, proposta per la prima volta nel 2020, gli sviluppatori di AI stanno ancora imparando a implementare al meglio i suoi meccanismi di recupero delle informazioni nell'AI generativa. Fra le sfide principali ci sono

  • Migliorare la conoscenza organizzativa e la comprensione della nuova tecnologia che è la RAG
  • I costi in crescita; sebbene l'AI generativa con la RAG sia più costosa da implementare rispetto a un LLM, questo percorso è comunque meno caro rispetto alla riqualificazione frequente dello stesso LLM
  • Capire come modellare al meglio i dati strutturati e non strutturati all'interno del database vettoriale
  • Sviluppare i requisiti per un processo di inserimento incrementale dei dati nel sistema RAG
  • Mettere in atto processi per gestire report di inesattezze e correggere o eliminare tali fonti di informazioni nel sistema RAG

Esempi di Retrieval-Augmented Generation

Ci sono molti possibili esempi di AI generativa potenziata dalla RAG.

Cohere, leader nel campo dell'AI generativa e della RAG, ha scritto di un chatbot in grado di fornire informazioni contestuali su una casa vacanze nelle Isole Canarie, tra cui risposte basate sui fatti su accessibilità della spiaggia, bagnini nelle spiagge vicine e disponibilità di campi da pallavolo nei pressi del luogo.

Oracle ha descritto altri casi d'uso per la RAG, come l'analisi di report finanziari, l'aiutare con la scoperta di gas e petrolio, il rivedere le trascrizioni delle conversazioni dei clienti con i call center e il cercare documenti di ricerca pertinenti nei database medici.

Il futuro della Retrieval-Augmented Generation

Oggi, nelle prime fasi di vita della RAG, la tecnologia viene utilizzata per fornire risposte aggiornate, accurate e contestuali alle query. Questi casi d'uso sono appropriati per chatbot, e-mail, messaggi di testo e altre applicazioni conversazionali.

In futuro, la tecnologia RAG potrebbe essere utilizzata per aiutare l'AI generativa a intraprendere azioni appropriate basate sulle informazioni contestuali e sui prompt degli utenti. Ad esempio, un sistema di intelligenza artificiale potenziato da RAG potrebbe identificare la casa vacanza sulla spiaggia più votata nelle Isole Canarie e poi iniziare a prenotare una cabina con due camere da letto a pochi passi dalla spiaggia durante un torneo di pallavolo.

La RAG potrebbe anche essere in grado di aiutare con le domande più sofisticate. Oggi, l'AI generativa potrebbe essere in grado di informare un dipendente circa la policy di rimborso delle rette scolastiche dell'azienda; la RAG potrebbe aggiungere ulteriori dati contestuali per dire al dipendente quali scuole vicine hanno corsi che si adattano a tale policy e forse consigliare programmi adatti al lavoro del dipendente e alla formazione ricevuta in precedenza, e magari anche aiutare a fare domanda per tali programmi e avviare una richiesta di rimborso.

AI generativa con Oracle

Oracle offre una vasta gamma di servizi AI avanzati basati su cloud, tra cui il servizio OCI Generative AI in esecuzione su Oracle Cloud Infrastructure (OCI). Le offerte Oracle includono modelli affidabili basati sui dati specifici e sulla conoscenza del settore della tua organizzazione. I dati dei clienti non vengono condivisi con i fornitori di LLM né vengono visti da altri clienti, e i modelli personalizzati addestrati sui dati del cliente possono essere utilizzati solo da tale cliente.

Inoltre, Oracle sta integrando l'AI generativa nella sua vasta gamma di applicazioni cloud, e le funzionalità di AI generativa sono disponibili per gli sviluppatori che utilizzano OCI e nel suo portfolio di database. Inoltre, i servizi AI di Oracle offrono performance e prezzi prevedibili utilizzando cluster AI single-tenant dedicati.

La potenza e le capacità dei LLM e dell'AI generativa sono ampiamente conosciute e comprese e sono state protagoniste di notizie incredibili nell'ultimo anno. La retrieval-augmented generation aumenta i vantaggi dei LLM rendendoli più aggiornati, accurati e contestuali. Per le applicazioni aziendali di AI generativa, la RAG è una tecnologia importante da guardare, studiare e provare.

Cosa rende Oracle l'azienda più adatta per l'AI generativa?

Oracle offre una piattaforma di dati moderna e un'infrastruttura AI a basso costo e ad alte prestazioni. Altri fattori, come modelli potenti e ad alte prestazioni, sicurezza dei dati ineguagliabile e servizi AI integrati, dimostrano perché l'offerta AI di Oracle è davvero progettata per le aziende.

Domande frequenti sulla Retrieval-Augmented Generation

RAG e AI generativa sono la stessa cosa?

No. La retrieval-augmented generation è una tecnica in grado di fornire risultati più accurati alle query rispetto a un modello linguistico generativo di grandi dimensioni, in quanto la RAG utilizza conoscenze esterne ai dati già contenuti nel LLM.

Che tipo di informazioni viene utilizzato nella RAG?

La RAG può incorporare dati provenienti da molte fonti, come database relazionali, repository di documenti non strutturati, flussi di dati Internet, feed di notizie dei media, trascrizioni audio e log delle transazioni.

In che modo l'AI generativa utilizza la RAG?

I dati aziendali vengono incorporati in un repository di conoscenze e poi convertiti in vettori, i quali vengono memorizzati in un database vettoriale. Quando un utente finale esegue una query, il database vettoriale recupera informazioni contestuali pertinenti. Queste informazioni contestuali, insieme alla query, vengono inviate al modello linguistico di grandi dimensioni, il quale utilizza il contesto per creare una risposta più aggiornata, accurata e contestuale.

Una RAG può fornire riferimenti per i documenti da cui ha recuperato i dati?

Sì. I database vettoriali e i repository di conoscenze utilizzati dalla RAG contengono informazioni specifiche sulle fonti di informazione. Ciò significa che le origini possono essere citate, e che se c'è un errore in una delle origini questo può essere rapidamente corretto o eliminato in modo che le query successive non recuperino quelle informazioni errate.