Vai al paragrafo

Cos'è la retrieval-augmented generation?

Copia URL

La retrieval-augmented generation (RAG) è una tecnica che consente di ottenere risposte più accurate dalle applicazioni di IA generativa collegando un modello linguistico di grandi dimensioni (LLM) con risorse esterne aggiuntive. 

Scopri le soluzioni di intelligenza artificiale di Red Hat

La RAG è un metodo che integra i dati presenti all'interno di un modello linguistico di grandi dimensioni con sorgenti di dati esterne selezionate, ad esempio uno specifico repository, raccolte di determinati testi e documentazione preesistente. Tali risorse vengono quindi segmentate, indicizzate in un database vettoriale e quindi utilizzate come materiale di riferimento per offrire risposte più accurate.

La RAG è una risorsa molto utile perché permette all'LLM di sfruttare informazioni specifiche in tempo reale, attingendo a una o più fonti attendibili. Consente un risparmio notevole perché offre un'esperienza ottimale senza la necessità di addestrare i modelli o eseguire il fine tuning. Inoltre, utilizza meno risorse perché, dopo aver inviato la query all'LLM, fornisce solo le informazioni più pertinenti, anziché restituire lunghi documenti poco mirati.

Scopri di più sull'IA generativa 

Gli LLM si avvalgono di tecniche di apprendimento automatico e di elaborazione del linguaggio naturale (NLP) per comprendere e generare un linguaggio che emula quello umano. Sebbene gli LLM siano estremamente utili per la comunicazione e l'elaborazione dei dati, presentano anche alcuni svantaggi:

  • Vengono addestrati con dati generici, che non includono informazioni specifiche relative all'argomento che si desidera trattare, ad esempio un determinato insieme di dati interni di un'organizzazione.
  • La loro è una conoscenza con una scadenza a breve termine, ossia, le informazioni con cui sono stati addestrati non vengono aggiornate, pertanto il materiale sorgente può diventare obsoleto e non più pertinente.
  • Tendono a fornire la risposta che si aspettano l'utente desideri ricevere, fornendo talvolta informazioni errate o non più attuali, fenomeno noto con il termine "allucinazione".

L'implementazione di un'architettura RAG all'interno di un sistema di question answering basato su modelli LLM consente di stabilire un filo diretto tra l'LLM e le basi di conoscenza aggiuntive selezionate. L'LLM riesce a fare riferimenti incrociati e ad aggiungere informazioni supplementari a quelle di cui già dispone, per fornire un output più affidabile e accurato all'utente che ha sottoposto la domanda.

Scopri di più sui modelli linguistici di grandi dimensioni 

Il meccanismo di recupero delle informazioni integrato nell'architettura RAG consente di aggiungere sorgenti di dati supplementari a quelle generiche utilizzate per addestrare gli LLM. L'integrazione tramite RAG di dati esterni e verificabili ai materiali utilizzati dall'LLM offre svariati vantaggi:

Accuratezza
RAG fornisce all'LLM una serie di fonti citabili che l'utente può verificare. L'architettura RAG può anche essere progettata perché dichiari di non saper rispondere a domande che esulano l'ambito della sua base di conoscenza. In sostanza, la RAG riduce le possibilità che un LLM condivida output errati o fuorvianti e rafforza la fiducia degli utenti.

Convenienza
Riaddestrare ed eseguire il fine tuning degli LLM richiede l'allocazione di un budget importante nonché tempo, così come creare un modello fondativo (ad esempio realizzare un sistema conversazionale simile a un chatbot) da zero, con informazioni specifiche. RAG consente agli utenti di introdurre nuovi dati in un LLM esistente, ma anche di eliminare o aggiornare le fonti di informazioni semplicemente caricando un documento o un file.

Una RAG riduce anche i costi necessari per l'inferenza. Le query per gli LLM comportano costi notevoli: esercitano un certo peso sull'hardware utilizzato se si esegue un modello locale, oppure ricadono sulla fatturazione a consumo se utilizzi un servizio esterno tramite API. Anziché inviare un intero documento di riferimento a un LLM, la RAG può fornire solo gli estratti più pertinenti, riducendo così le dimensioni della query e migliorando l'efficienza.

Maggiore controllo per gli sviluppatori
Rispetto ai metodi di fine tuning tradizionali, la RAG offre delle soluzioni più accessibili e semplici per ricevere feedback, risolvere i problemi e correggere le applicazioni. Il vantaggio principale dell'architettura RAG per gli sviluppatori è che dispongono di un flusso di informazioni specifiche per un dominio e aggiornate.

Sovranità dei dati e privacy
L'esperienza ci insegna che utilizzare informazioni riservate per eseguire il fine tuning di un LLM può essere rischioso, perché il modello potrebbe rivelare dati utilizzati per il suo addestramento. La RAG risolve questo problema di privacy conservando i dati sensibili on premise, anche quando vengono utilizzati come fonte per un LLM locale o per un LLM esterno verificato. L'architettura RAG può inoltre essere impostata in modo da limitare l'accesso alle informazioni sensibili in base a livelli di autorizzazione diversi, in modo che solo determinati utenti possano avere accesso a determinati dati in base all'autorizzazione di cui dispongono. 

L'architettura RAG recupera i dati da una fonte esterna, li inserisce nel contesto dell'LLM esistente e genera una risposta ottenuta dalla commistione dei due. Questa procedura prevede 3 fasi principali: preparazione dei dati, recupero e generazione.

Fase 1: Preparazione dei dati (in vista del successivo recupero)

  • Reperimento e caricamento della documentazione: vengono identificati i documenti che fungeranno da fonte per l'LLM, verificando che siano in un formato compatibile (in genere file di testo, tabelle di database o file PDF). Indipendentemente dal formato originale, ciascun documento, prima di essere incluso nel database vettoriale, dovrà essere convertito come file di testo. Questa procedura è caratterizzata dagli ulteriori passaggi di estrazione, trasformazione e caricamento, o fasi ETL (Extract, Transform and Load), che consentono di snellire e organizzare i dati non elaborati in modo che siano pronti per essere archiviati, analizzati e utilizzati per l'apprendimento automatico.
     
  • Trasformazione: il testo viene suddiviso in modo che sia più agile da recuperare. Le diverse sezioni dei documenti aggiornati vengono quindi analizzate e catalogate in base a una serie di caratteristiche distinte: se ad esempio un documento è formattato in paragrafi, il modello riuscirà a eseguire ricerche e recuperare dati al suo interno in modo più agile rispetto a quanto accade con un documento con molte tabelle e figure.

    La suddivisione dei documenti può avvenire in base a criteri semantici, sintattici, in base ai token, alla formattazione, ai caratteri HTML o al tipo di codice utilizzato. Per l'acquisizione dei documenti esistono numerosi framework open source, ad esempio LlamaIndexLangChain.
     

  • Integrazione: viene utilizzato un modello di machine learning specializzato (su base vettoriale) che converte i dati in vettori numerici, in modo che sia possibile applicare operazioni matematiche per stabilire similarità e differenze tra i dati. Grazie all'integrazione è possibile convertire testo (o immagini) in vettore che carpisca il significato essenziale dei contenuti, tralasciando i dettagli irrilevanti; a ogni sezione di dati viene assegnato un valore numerico (ad esempio 1,2, -0,9 o 0,3), in modo che possa essere indicizzata all'interno di un sistema di livello superiore denominato database vettoriale.

    Il valore numerico attribuito all'interno del database vettoriale consente all'architettura RAG di stabilire collegamenti tra le diverse parti di contenuto e di organizzarle perché possano essere recuperate in modo efficace. L'indicizzazione ha lo scopo di organizzare i vettori in modo che concetti simili vengano archiviati in coordinate adiacenti, ad esempio, "tè" e "caffè" si troveranno probabilmente in posizioni attigue, come anche "bevande calde". Elementi concettualmente lontani come "telefoni cellulari" e "televisori" saranno invece posizionati altrove. La distanza o la vicinanza tra due punti all'interno del database vettoriale consente al modello di decidere quali informazioni recuperare e utilizzare nell'output fornito in risposta alla query.
     

  • Archiviazione: i dati combinati provenienti da fonti diverse (ossia i documenti esterni selezionati e l'LLM) vengono salvati in un unico repository.
     

Fase 2: Recupero

  • Una volta catalogati i dati all'interno del database vettoriale, sta agli algoritmi ricercare e recuperare parti di informazioni attinenti al prompt e alla query dell'utente. Framework come LangChain supportano molti algoritmi di recupero diversi, ad esempio quelli basati su similarità a livello semantico, di metadati e documenti di livello superiore.

    In ambienti consumer a dominio aperto le informazioni vengono recuperate da documenti indicizzati disponibili su Internet, a cui si ha accesso tramite le API delle fonti di informazione, mentre in ambienti aziendali a dominio chiuso, dove le informazioni devono essere mantenute private e protette da accessi esterni, l'architettura RAG garantisce un recupero locale e sicuro.

    Solo al termine di questi processi i dati vengono inseriti nel prompt e inviati all'LLM affinché li elabori.
     

Fase 3: Generazione

  • Output: risposta presentata all'utente. Se la RAG ha funzionato correttamente, la risposta sarà fornita sulla base di conoscenze verificate e accurata.

Utilizza i framework di IA progettati da Red Hat Consulting 

Quando si crea un modello di apprendimento automatico è fondamentale trovare documenti sorgenti affidabili, poiché l'output dipende dai dati inseriti. I sistemi che producono risultati contenenti distorsioni o bias sono un problema grave per qualsiasi organizzazione utilizzi l'IA. È pertanto necessario fare attenzione che i documenti sorgenti non contengano informazioni pregiudiziose o non veritiere, ossia che privilegiano sistematicamente un gruppo rispetto a un altro, per evitare che questi stessi pregiudizi si riflettano nell'output.

Durante la selezione dei dati per l'architettura RAG, è inoltre fondamentale verificare che includano documenti sorgenti aggiornati e in cui vengono citate le fonti. Infine, l'apporto di esperti umani è ancora importante per valutare l'output prima che un pubblico più ampio utilizzi il modello e anche dopo che questo è stato distribuito per la produzione.

Analizzare i diversi metodi di addestramento basati su dati confrontandoli con un'architettura RAG può influire positivamente su scelte strategiche, ad esempio aiutando a determinare le risorse IA da utilizzare. È anche possibile che siano necessari più metodi alla volta. Di seguito vengono analizzati alcuni metodi e procedure comuni per l'elaborazione dei dati a confronto con la tecnica RAG.

Confronto fra RAG e ingegneria dei prompt
L'ingegneria dei prompt costituisce il metodo più semplice e meno tecnico per interagire con un LLM, in quanto consiste nella redazione di una serie di istruzioni che il modello deve seguire per generare un output adeguato in base a una query dell'utente. Rispetto alla RAG richiede meno dati (perché utilizza solo quelli impiegati per l'addestramento iniziale del modello) ed è meno costosa (perché si avvale solo di strumenti e modelli esistenti), ma non è in grado di generare output basati su informazioni aggiornate o soggette a obsolescenza o modifica. Inoltre, l'effettiva qualità dell'output dipende dal modo in cui viene formulato il prompt, quindi le risposte ottenute possono essere incoerenti.

L'ingegneria dei prompt deve essere preferita alla RAG se si cerca una soluzione intuitiva ed economica per estrarre informazioni su argomenti generici, che non richiedano molti dettagli.

Confronto fra RAG e ricerca semantica
La semantica indaga il significato delle parole. Una ricerca di questo tipo, dunque, analizza i dati dal punto di vista dello scopo e del contesto della query.

Si avvale di NLP e apprendimento automatico per decodificare la query e individuare i dati che potrebbero fornire risposte più rilevanti e accurate rispetto a quelle che fornirebbe una semplice ricerca per parole chiave. In sostanza, colma il divario fra la query digitata dall'utente e i dati impiegati per generare la risposta.

Ad esempio, digitando una query su una "vacanza da sogno", la ricerca semantica supporterà il modello nell'individuare informazioni specifiche che più si avvicinano al concetto di "vacanza ideale" dell'utente che ha sottoposto la richiesta. Piuttosto che offrire una risposta legata al sogno, quindi, fornirà una risposta più legata all'intento, ad esempio un pacchetto per una vacanza al mare.

La ricerca semantica fa parte della RAG, che a sua volta utilizza questo tipo di ricerca durante la fase di recupero delle informazioni dal database vettoriale per ottenere risultati che siano rilevanti per il contesto e aggiornati.

Confronto fra RAG e preaddestramento
Per preaddestramento si intende la fase iniziale dell'addestramento degli LLM che permette di acquisire una comprensione della lingua partendo da un ampio set di dati. Emulando il processo di apprendimento del cervello umano espletato con la creazione di collegamenti neurali, questo metodo realizza una rete neurale interna all'LLM che viene addestrata utilizzando i dati.

Rispetto alla RAG è più costoso, richiede inoltre più tempo oltre a un numero maggiore di risorse di elaborazione, nell'ordine di migliaia di GPU. Il preaddestramento è consigliabile qualora si abbia a disposizione un set di dati di dimensioni sostanziose (sufficiente per influenzare in modo significativo il modello) e si desideri fornire all'LLM una comprensione di base di alcuni argomenti o concetti.

Confronto fra RAG e fine tuning
Se l'architettura RAG definisce le informazioni necessarie per l'LLM, il fine tuning stabilisce il funzionamento del modello. Agisce su un LLM già addestrato e ne perfeziona la preparazione con un set di dati di dimensioni più ridotte e mirate; consente inoltre al modello di apprendere schemi comuni che non è necessario aggiornare nel tempo.

Sebbene a un primo sguardo RAG e fine tuning possano sembrare simili, presentano comunque delle differenze. Ad esempio, il secondo richiede molti dati e una notevole quantità di risorse di elaborazione per la creazione del modello, mentre alla RAG serve un solo documento e molte meno risorse per recuperare le informazioni. Inoltre, mentre è provato che la RAG riduca le allucinazioni, eseguire il fine tuning di un LLM per ottenere lo stesso risultato è un processo molto più complesso e dispendioso in termini di tempo.

Spesso è possibile utilizzare per un modello sia un'architettura RAG che il fine tuning. Quest'ultimo deve essere tuttavia preferito qualora si abbia accesso a una notevole quantità di dati e risorse, se si prevede che i dati presumibilmente non verranno aggiornati, oppure se si lavora su attività altamente specializzate che richiedono un'analisi più personalizzata rispetto a quella offerta dal formato question answering tipico della RAG. 

L'ambito di adozione dell'architettura RAG è molto ampio, di seguito alcuni dei più frequenti scenari di utilizzo.

  • Assistenza clienti: programmare un chatbot capace di rispondere alle query dei clienti con conoscenze specifiche su un preciso documento può ridurre i tempi necessari per la risoluzione dei problemi e consentire di ottenere un sistema di assistenza più efficace.

  • Generazione di informazioni: la RAG ti consente di estrapolare dati utili da documenti di cui già disponi. Un'architettura RAG può essere impiegata per implementare in un LLM report annuali, documenti di marketing, commenti sui social media, recensioni degli utenti, risultati di sondaggi, oppure altre tipologie di contenuti, in modo che elabori risposte utili a comprendere meglio il materiale a disposizione. Va ricordato che la RAG può collegarsi direttamente a fonti che vengono aggiornate spesso come feed dei social media, siti Web o altre risorse simili per ottenere risposte utili in tempo reale.

  • Informazioni mediche: l'architettura RAG consente di migliorare i sistemi che forniscono informazioni o consigli medici. Grazie alla capacità di verificare elementi come la storia clinica di un paziente, i servizi di prenotazione degli appuntamenti e le più recenti linee guida e ricerche mediche, la RAG mette in comunicazione i pazienti con l'assistenza e i servizi di cui hanno bisogno.

Red Hat® OpenShift® AI è una piattaforma per le operazioni di machine learning (MLOps) flessibile e scalabile, dotata di strumenti per creare, distribuire e gestire le applicazioni basate sull'intelligenza artificiale. Sviluppata grazie a tecnologie open source, offre ai team funzionalità affidabili e coerenti a livello operativo per mettere alla prova le proprie competenze, fornire modelli ed erogare applicazioni innovative.

Le organizzazioni possono utilizzare OpenShift AI per implementare un'architettura RAG all'interno dei processi large language model operations (LLMOps) esistenti, e ottenere un'infrastruttura alla base per i carichi di lavoro, ad esempio per accedere al database vettoriale, a un LLM capace di creare integrazioni e al meccanismo di recupero necessario per produrre output.

Red Hat Consulting ha sviluppato Red Hat OpenShift AI Pilot per aiutare i clienti a introdurre Red Hat OpenShift AI integrandolo con i servizi aziendali esistenti. Con una piattaforma centralizzata, i clienti possono accedere a librerie e strumenti standardizzati, a una maggiore disponibilità di elaborazione per tutti gli utenti e a migliori procedure di onboarding di data scientist e altri ruoli. Grazie a questo servizio, gli esperti Red Hat collaboreranno con il tuo team per valutare l'ambiente e l'approccio attuali e individuare i requisiti futuri. Offriranno supporto per la distribuzione e la gestione di Red Hat OpenShift AI e per la sua integrazione con altri strumenti di data science presenti nell'ambiente dei clienti, in modo da trarre il massimo beneficio dalla soluzione. Non serve disporre di modelli di ML già in uso: i consulenti Red Hat saranno al tuo fianco in qualsiasi fase del tuo percorso di data science.

Per le organizzazioni che, oltre ad acquisire pratica con i modelli, vogliono anche e soprattutto sviluppare strategie per il deployment in produzione, Red Hat Consulting offre anche un servizio di consulenza per le fasi successive. MLOps Foundation è un servizio che aiuta le aziende a migliorare le proprie capacità in termini di data science e di strategie di apprendimento automatico, a creare servizi di inferenza production ready con schemi riutilizzabili e ad automatizzare l'intero ciclo di vita dei modelli di ML tramite architetture e strumenti cloud native.

Scopri di più su MLOps Foundation 

Nuovo prodotto

InstructLab

InstructLab è un progetto open source che ha la finalità di migliorare i modelli linguistici di grandi dimensioni (LLM).

Approfondisci

Articolo

Cos'è l'IA generativa?

L'IA generativa crea nuovi contenuti usando i modelli di deep learning il cui training è stato eseguito su set di dati enormi.

Articolo

Cos'è il machine learning?

Il machine learning è una tecnica che permette di addestrare i computer a individuare schemi, a eseguire analisi predittive e a imparare dall'esperienza, senza alcuna programmazione esplicita.

Articolo

Cosa sono i modelli di base?

Un modello di base è una particolare tipologia di modello di machine learning (ML) che viene addestrato per eseguire una specifica gamma di attività. 

Maggiori informazioni su AI/ML

Prodotti

Nuovo

Una piattaforma per modelli fondativi concepita per sviluppare, testare ed eseguire, in modo semplice, i modelli linguistici di grandi dimensioni (LLM) della famiglia Granite per applicazioni aziendali.

Il portfolio di soluzioni incentrate sull'IA è una gamma di strumenti che permettono di addestrare, ottimizzare, impiegare, monitorare e gestire iniziative e modelli di AI/ML su Red Hat OpenShift.

Una piattaforma applicativa di livello enterprise che grazie a servizi verificati consente la distribuzione delle app su un'ampia gamma di infrastrutture. 

Red Hat Ansible Lightspeed with IBM watsonx Code Assistant è un servizio di IA generativa progettato da e per gli sviluppatori, gli operatori e gli autori dell'automazione Ansible. 

Risorse

ebook

Considerazioni essenziali per la creazione di un ambiente di AI/ML pronto per il passaggio in produzione

Resoconto analitico

The Total Economic Impact™ Of Red Hat Hybrid Cloud Platform For MLOps

Webinar

Getting the most out of AI with open source and Kubernetes