Che cos'è l'architettura RAG? Una definizione completa con esempi pratici dettagliati

L'architettura RAG è l'insieme di componenti che archivia, recupera e fornisce informazioni esterne a un LLM; questa guida illustra 10 tipi, dalla RAG di base e ibrida alla RAG agentica e a GraphRAG, con due esempi passo passo.

Diagram of the types of RAG architecture branching from a central hub: basic, hybrid, adaptive, corrective (CRAG), self-RAG, multimodal, agentic, GraphRAG, HyDE, and branched.

La RAG, acronimo di retrieval augmented generation (generazione aumentata dal recupero), è un processo in cui gli LLM usano informazioni esterne per ampliare e migliorare i propri output. L'architettura RAG è l'insieme di componenti e connessioni che rende possibile la RAG.

Esistono diverse categorie di RAG e ognuna si basa su un'architettura specifica. In sostanza, l'architettura di un sistema RAG determina il modo specifico in cui le informazioni vengono archiviate, recuperate e fornite a un LLM.

Che cos'è l'architettura RAG?

L'architettura RAG è la configurazione sottostante di componenti (e delle relative funzionalità) che alimenta un determinato sistema RAG. Tutte queste architetture si basano su un modello di partenza, spesso definito RAG “semplice” o “naive”.

Ecco una panoramica generale dell'architettura RAG di base:

  • Fonte di informazioni: è il luogo in cui sono archiviate le informazioni esterne. Può trattarsi di un indice di ricerca, di un database vettoriale che rappresenta grandi quantità di informazioni o di un archivio di documenti grezzi.
  • Componente di recupero: è il meccanismo con cui viene interrogata la fonte di informazioni. Un sistema RAG può, ad esempio, usare una semplice ricerca per parole chiave per trovare frammenti di testo pertinenti, oppure query vettoriali più complesse per eseguire una ricerca per similarità.
  • Componente di orchestrazione: questo livello è la parte dell'applicazione basata su LLM che avvia la pipeline RAG per un prompt dell'utente, in collaborazione con l'LLM o in modo indipendente. Si occupa inoltre di integrare le informazioni recuperate in un prompt ampliato.

I componenti dell'architettura RAG sono in genere organizzati in due percorsi. Il percorso di acquisizione prende i dati e li organizza in una fonte di informazioni ricercabile. I database vettoriali, in cui grandi quantità di testo vengono convertite in un archivio ricercabile di embedding vettoriali, sono una delle applicazioni più diffuse.

Il percorso di recupero prende il prompt dell'utente e genera una query con cui interrogare la fonte di informazioni. L'orchestratore aggiunge quindi le informazioni recuperate all'input di contesto dell'LLM. Nelle architetture RAG agentiche e ibride possono esserci più percorsi di recupero.

Tipi di architettura RAG

È fuorviante pensare alla RAG in termini di architetture completamente distinte. La maggior parte degli ingegneri adotta un approccio modulare, implementando componenti separati per adattarsi a casi d'uso specifici. Sebbene sia possibile tracciare confini approssimativi, è importante notare che esiste una sovrapposizione significativa tra i modelli architetturali.

1. RAG di base

La RAG di base, detta anche RAG “naive” o “semplice”, è il modello architetturale degli altri tipi di RAG.

Il processo sottostante è relativamente semplice: l'utente inserisce un prompt, l'orchestratore determina se sono necessarie informazioni esterne (in modo indipendente o in collaborazione con l'LLM), quindi formula e invia di conseguenza una query di recupero.

La fonte di informazioni esterna è in genere un database vettoriale, ma può anche essere un database SQL, un'API web, un grafo della conoscenza o persino un archivio di documenti “grezzi”. Queste informazioni aggiuntive vengono poi inserite nel contesto di input dell'LLM.

Oltre alle query SQL e alle API, esistono due grandi tipologie di metodi di recupero:

  • Ricerca lessicale (ricerca per parole chiave): è una forma semplice di RAG in cui le parole chiave vengono estratte dalla query dell'utente e confrontate con passaggi di testo che le contengono. Nelle pipeline moderne, per farlo l'orchestratore può eseguire una cosiddetta query su vettori sparsi, che non cattura il significato.
  • Ricerca su vettori densi (ricerca semantica): gli embedding vettoriali densi catturano il significato. Un orchestratore può interrogare un database di vettori densi in modo da cogliere il significato sia del prompt dell'utente sia delle informazioni di origine.

Anche l'uso della memoria è una parte importante dell'architettura RAG. Si riferisce al modo in cui un LLM usa il contesto delle chat precedenti per costruire una query di recupero, ancorandola così al contesto più ampio di una conversazione (o di più conversazioni). La RAG conversazionale è la norma per la maggior parte dei chatbot, anche se alcuni casi d'uso, come le risposte ai ticket di assistenza, potrebbero usare la RAG a domanda singola.

2. RAG ibrida

La RAG ibrida combina due diversi tipi di recupero, di solito quello per parole chiave e quello semantico. La ricerca per parole chiave trova i termini corrispondenti, mentre la ricerca vettoriale trova passaggi con un significato correlato.

Possono essere usate anche altre forme di recupero, come l'attraversamento di grafi della conoscenza o le query su database SQL. Il processo è spesso guidato da una logica di instradamento, sotto forma di regole programmate o di una classificazione della domanda da parte di un modello (anche se più pipeline possono essere eseguite contemporaneamente).

L'orchestratore unisce i risultati e può applicare un reranking prima di passarli all'LLM. Il reranking è il processo di assegnazione di punteggi di pertinenza ai frammenti recuperati, in modo che l'LLM dia priorità alle informazioni più rilevanti.

3. RAG adattiva

Nella RAG adattiva, un componente di instradamento seleziona una strategia di recupero in base ai requisiti del prompt dell'utente, e l'orchestratore esegue quindi il flusso di lavoro selezionato.

Nel framework originale (Adaptive-RAG), un modello più piccolo fungeva da classificatore e sceglieva tra nessun recupero, recupero in un singolo passaggio o recupero in più passaggi. Oggi alcune architetture usano invece modelli generativi o euristiche basate su regole.

È un'architettura molto diffusa perché assegna la potenza di elaborazione in base alla complessità e ai requisiti di un prompt, riducendo i passaggi di recupero superflui per i prompt più semplici. È comune negli assistenti che gestiscono più tipi di domande.

4. RAG correttiva (CRAG)

La RAG correttiva valuta le informazioni recuperate prima di aggiungerle all'input di contesto dell'LLM. Un valutatore del recupero verifica se le informazioni recuperate sono pertinenti e utili. La caratteristica architetturale distintiva è la fase esplicita di valutazione e correzione che precede la generazione della risposta.

Se le informazioni risultano incomplete o non pertinenti al prompt, vengono attivate richieste aggiuntive. Queste possono prevedere metodi di recupero diversi da quelli usati per la richiesta originale, come la ricerca web o l'attraversamento di grafi della conoscenza.

La RAG correttiva è comune nei settori in cui l'accuratezza è importante, come la medicina e il diritto. Richiede però una fonte di informazioni aggiuntiva in grado di integrare i passaggi recuperati inizialmente.

5. Self-RAG

Nella Self-RAG, il modello può avviare richieste dopo aver ricevuto l'input di contesto iniziale. Le risposte generate vengono valutate rispetto alle evidenze recuperate tramite token di riflessione, e ulteriori richieste vengono inviate tramite l'orchestratore secondo necessità. Al contrario, l'LLM può anche decidere che non sia necessario alcun recupero.

Si differenzia dalla RAG correttiva perché l'LLM giudica i propri output, determina se il recupero è necessario e se il testo recuperato è utile, e monitora le proprie risposte, modificandole secondo necessità. La RAG correttiva, invece, valuta la qualità delle informazioni recuperate prima della generazione.

Questa architettura è particolarmente utile per prompt complessi, in stile ricerca approfondita. Poiché integra le valutazioni di pertinenza (delle informazioni recuperate) nella generazione delle risposte, è una buona opzione per i prompt che richiedono risposte basate su evidenze.

6. RAG agentica

Per RAG agentica si intende qualsiasi forma di RAG eseguita nel contesto di una piattaforma agentica. Il modello usa le proprie capacità di ragionamento per determinare il tipo di informazioni necessarie e sceglie tra le opzioni di recupero disponibili.

Il recupero può essere attivato più volte, secondo necessità, e il modello ha la possibilità di assegnare agenti alle query più complesse. Ad esempio, un LLM potrebbe richiedere la consultazione di un database per identificare un fornitore, avviare una ricerca nei documenti per trovare i contratti pertinenti e concludere con una ricerca web per verificare i recapiti tramite fonti pubbliche.

La RAG agentica è la principale implementazione architetturale nei chatbot più diffusi, come Perplexity, ChatGPT, Claude e così via. Poiché queste piattaforme forniscono al modello principale l'accesso a più strumenti e pipeline RAG, il modello può selezionare la forma di recupero più adatta a un prompt.

7. RAG multimodale

La RAG multimodale recupera il contesto da diversi tipi di contenuti multimediali. È una forma importante di RAG perché rende disponibili agli LLM informazioni che altrimenti sarebbero inaccessibili, come grafici e registrazioni audio.

L'architettura sottostante è la stessa di qualsiasi altro sistema. Ad esempio, una pipeline di indicizzazione potrebbe preparare le immagini per la ricerca convertendole in embedding diretti. Un sistema RAG agentico potrebbe quindi recuperare queste immagini insieme a testo semanticamente pertinente e fornirle a un modello visione-linguaggio per un'elaborazione congiunta.

8. GraphRAG

GraphRAG usa i grafi della conoscenza insieme alla ricerca vettoriale per recuperare informazioni sulle entità. In genere, l'orchestratore individua le entità di partenza pertinenti, chiamate anche nodi, tramite l'estrazione di parole chiave o, talvolta, una ricerca vettoriale preliminare. Un retriever a grafo attraversa poi un grafo della conoscenza per costruire un contesto più ampio.

Ad esempio, in risposta alla richiesta di un'analisi dettagliata di una categoria di prodotti, un LLM può avviare una ricerca vettoriale per identificare entità specifiche (prodotti). L'orchestratore avvierà quindi una ricerca nel grafo della conoscenza per trovare entità correlate, come fornitori, punti vendita, recensioni e così via.

9. RAG ramificata

Mentre un'architettura RAG ibrida è in grado di usare diversi metodi di recupero, la RAG ramificata indica il processo di esecuzione simultanea di più query, chiamate rami. Ogni ramo può interrogare una fonte di informazioni separata, oppure più rami possono interrogare in parallelo la stessa fonte con query o filtri diversi. L'architettura RAG agentica usa spesso la RAG ramificata.

10. HyDE (Hypothetical Document Embeddings)

HyDE è una forma innovativa di RAG in cui un LLM crea un documento di testo ipotetico che rappresenta come potrebbe essere una risposta ottimale. Questo “documento ipotetico” viene poi usato per creare una query che consenta un recupero più accurato. Anche se le conoscenze pertinenti non sono rappresentate nei parametri dell'LLM, il ragionamento alla base è che un passaggio simile a una risposta possa corrispondere ai documenti pertinenti meglio di una domanda breve o di un prompt ambiguo.

Esempio di architettura RAG semplice: database vettoriale

La RAG di base funge da fondamento per tipi di architettura più complessi. Nel caso di un sistema RAG semplice che usa un database vettoriale, la documentazione di origine viene suddivisa in parti più piccole (chunk) e convertita in embedding densi. Quando un utente inserisce un prompt, l'orchestratore genera una query, la codifica e interroga il database per trovare i passaggi pertinenti.

Ecco una descrizione passo passo del processo:

  1. Grandi quantità di testo vengono convertite in vettori tramite una pipeline di acquisizione automatizzata e un modello di embedding come BERT.
  2. L'applicazione di database organizza, indicizza e archivia i vettori per consentire una ricerca rapida.
  3. L'utente inserisce un prompt in un chatbot (come Perplexity).
  4. L'orchestratore dell'applicazione codifica il prompt (tramite un modello di embedding) per recuperare informazioni pertinenti dal database vettoriale.
  5. Il database vettoriale restituisce i frammenti pertinenti, che l'orchestratore aggiunge al contesto di input (il “prompt esteso”) prima di fornirlo all'LLM.
  6. L'LLM usa il contesto aggiuntivo per generare una risposta sfruttando le proprie conoscenze interne (memorizzate nei suoi pesi parametrici).

Esempio di architettura RAG avanzata: RAG agentica

Per RAG agentica si intende l'architettura sottostante dei sistemi RAG all'interno di una piattaforma agentica. I flussi di RAG agentica tendono a essere complessi perché gli agenti IA possono richiamare strumenti e pipeline diversi a seconda della natura di un prompt, impiegando più agenti se necessario.

Ecco un esempio pratico del processo:

  1. Un utente inserisce una domanda complessa che richiede una ricerca approfondita su un argomento. In questo esempio, supponiamo che il prompt sia “Fornisci una previsione degli utili aziendali per i prossimi sei mesi alla luce dei principali sviluppi geopolitici”.
  2. L'LLM deduce che sarà necessaria una combinazione di query RAG su diversi tipi di contenuti.
  3. Vengono impiegati tre agenti diversi per (a) la ricerca vettoriale, (b) il grounding sul web e (c) la ricerca di immagini (multimodale).
  4. Gli agenti cercano informazioni pertinenti, come notizie e dati finanziari interni, tramite l'orchestratore, usando gli strumenti di recupero disponibili.
  5. L'LLM confronta i risultati recuperati con la domanda di ricerca di ciascun agente e li classifica in base alla pertinenza.
  6. L'LLM valuta le informazioni e, dove mancano dati, avvia ulteriori ricerche tramite i singoli agenti.
  7. Una volta recuperate informazioni sufficienti, l'LLM genera previsioni per diversi scenari sulla base dei dati finanziari esistenti (recuperati dalla documentazione interna) e richiama uno strumento di calcolo per stimare gli utili di ciascuno.
  8. L'LLM genera una risposta finale usando le informazioni recuperate e i calcoli, citando le fonti dove necessario.

Quale futuro per la RAG?

Le innovazioni attuali si concentrano sul rendere più approfondite e veloci le architetture RAG esistenti, sul migliorare l'accuratezza del recupero di contenuti multimediali e sul creare sistemi progettati per gestire informazioni costantemente aggiornate.

Ecco tre tendenze che stanno attualmente orientando la ricerca:

  • Ricerca approfondita su più fonti: si tratta di un'architettura RAG in grado di pianificare le ricerche, eseguire più rami su fonti eterogenee, valutare le evidenze recuperate e ottimizzare autonomamente le risposte generate. La RAG agentica in grado di svolgere tutte queste attività sta diventando sempre più veloce ed economica.
  • Applicazioni multimodali: le pipeline di recupero stanno migliorando nella gestione di immagini e video. Sono sempre più in grado di individuare con precisione tipi specifici di informazioni all'interno di dati multimodali complessi, come video di lunga durata e diagrammi avanzati.
  • Risposte basate su informazioni in continuo cambiamento: le applicazioni basate su LLM possono attingere a fonti di informazioni in tempo reale (come feed video e sensori) per fornire il contesto di input. I sistemi possono anche generare reti di informazioni articolate, come nel caso di GraphRAG, per interpretare questi dati.

La RAG è fondamentale per il funzionamento delle applicazioni basate su LLM. Consente a un'ampia gamma di utenti, dai consumatori comuni alle aziende che operano in settori specializzati, di superare i problemi legati alle allucinazioni, ai dati di addestramento incompleti e alla mancanza di accesso a conoscenze interne specializzate.

Ecco perché i sistemi RAG e la loro architettura sottostante rappresentano uno degli ambiti più dinamici ed entusiasmanti della ricerca sull'IA.