RAG: cos’è la Retrieval-Augmented Generation e come funziona

RAG
Vuoi capire come l'AI può attingere direttamente ai documenti, alle knowledge base e ai software della tua azienda? In questo articolo esploriamo cos'è il RAG (Retrieval-Augmented Generation), l'architettura che unisce il recupero di informazioni esterne alla potenza dei modelli linguistici (LLM).

Un modello di intelligenza artificiale generativa può produrre risposte articolate e comprendere grandi quantità di testo. Ma questo non significa che conosca le informazioni interne di un’azienda, che possa accedere automaticamente ai suoi documenti o che disponga sempre dei dati più aggiornati. 

È qui che entra in gioco il RAG, acronimo di Retrieval-Augmented Generation. 

Il RAG è un’architettura che permette a un sistema AI di recuperare informazioni pertinenti da fonti esterne e utilizzarle come contesto prima di generare una risposta. 

Le fonti possono essere documenti, knowledge base, manuali, siti web, database e, attraverso opportune integrazioni, informazioni provenienti da CRM, ERP e altri software aziendali. 

In questo modo, l’AI non deve necessariamente affidarsi soltanto alle conoscenze apprese durante il training: può cercare le informazioni necessarie quando riceve una richiesta e utilizzarle per elaborare una risposta più contestualizzata.

Cos’è il RAG? 

Il RAG è un’architettura di intelligenza artificiale che combina il recupero di informazioni da fonti esterne con la generazione di una risposta da parte di un modello linguistico. 

Il termine descrive tre elementi: 

  • Retrieval: recupero delle informazioni pertinenti; 
  • Augmented: arricchimento del contesto disponibile al modello; 
  • Generation: generazione della risposta. 

Immaginiamo, per esempio, di chiedere a un assistente AI: “Qual è la procedura aziendale per gestire questo tipo di richiesta?” 

Un modello generico potrebbe non conoscere la procedura interna. Un sistema RAG può invece cercare la risposta all’interno di manuali, procedure o knowledge base aziendali, recuperare le informazioni pertinenti e fornirle al modello come contesto. 

Il modello può quindi utilizzare quei contenuti per formulare la risposta. 

RAG e LLM: qual è la differenza?

Un LLM (Large Language Model) è il modello linguistico che genera la risposta. 

Il RAG è invece un’architettura che permette al sistema di recuperare informazioni esterne e fornirle al modello. 

In forma semplificata:
LLM: Domanda → modello → risposta 

RAG + LLM: Domanda → recupero delle informazioni → contesto → modello → risposta 

Il RAG, quindi, non è un nuovo modello di intelligenza artificiale, ma un’architettura che può utilizzare un LLM per generare risposte sulla base di informazioni recuperate da fonti esterne. 

Come funziona il RAG? 

Il funzionamento di un sistema RAG può essere rappresentato attraverso questa sequenza: 

Fonti → elaborazione → indicizzazione → retrieval → contesto → LLM → risposta 

Vediamo i passaggi principali. 

1. Raccolta delle fonti 

Il primo elemento sono le informazioni che il sistema dovrà poter consultare. 

Possono essere: 

  • PDF e documenti; 
  • Manuali; 
  • FAQ; 
  • Knowledge base; 
  • Cataloghi; 
  • Documentazione tecnica; 
  • Procedure interne; 
  • Database; 
  • Siti web; 
  • CRM; 
  • ERP; 
  • Altre applicazioni aziendali. 

Non è necessario che tutte le informazioni siano raccolte in un unico archivio. 

In un progetto aziendale, il RAG può lavorare con fonti differenti, purché vengano definite modalità corrette di acquisizione, aggiornamento e accesso. 

2. Suddivisione e preparazione dei contenuti 

Prima di poter essere ricercati, i contenuti devono essere elaborati. Un documento molto lungo, per esempio, può essere suddiviso in porzioni più piccole chiamate chunk. Il processo prende il nome di chunking. 

L’obiettivo non è semplicemente dividere il testo, ma conservare il significato e il contesto delle informazioni. 

Una suddivisione troppo ampia può rendere il recupero meno preciso; una troppo frammentata può far perdere informazioni importanti. 

3. Embeddings e indicizzazione 

I contenuti possono essere trasformati in embeddings, rappresentazioni numeriche che permettono di confrontare semanticamente informazioni differenti. 

Questo consente di effettuare ricerche basate sul significato e non soltanto sulla corrispondenza esatta delle parole. Gli embeddings possono essere utilizzati con sistemi di vector search e database vettoriali. 

È però importante ricordare che un vector database non è il RAG: è soltanto una possibile componente dell’architettura utilizzata per recuperare informazioni. 

4. Retrieval: recuperare le informazioni pertinenti 

Quando l’utente pone una domanda, il sistema deve individuare i contenuti più utili per rispondere. Questa fase prende il nome di retrieval. 

In forma semplificata: Domanda → ricerca → contenuti pertinenti → contesto 

A seconda del progetto, la ricerca può utilizzare strategie differenti, comprese ricerca semantica, keyword search o approcci ibridi. 

In alcuni sistemi è inoltre presente una fase di reranking, che permette di riordinare i risultati recuperati sulla base della loro rilevanza. 

Questo passaggio è fondamentale: se il sistema recupera informazioni sbagliate o insufficienti, anche il modello AI lavorerà su un contesto inadeguato. 

5. Generazione della risposta 

Le informazioni recuperate vengono quindi fornite al modello linguistico come contesto. 

Il modello riceve: domanda dell’utente + informazioni recuperate → risposta 

Può quindi utilizzare i contenuti disponibili per rispondere, sintetizzare informazioni o spiegare una procedura. In base all’implementazione, il sistema può anche indicare le fonti utilizzate per costruire la risposta. 

6. Aggiornamento delle informazioni 

Uno dei vantaggi del RAG riguarda la possibilità di aggiornare le fonti senza dover necessariamente riaddestrare il modello linguistico. 

Se cambia un manuale, un catalogo o una procedura, il sistema può essere progettato per acquisire la nuova versione e aggiornare gli indici utilizzati dal retrieval. Questo non significa che l’aggiornamento sia sempre automatico: dipende dall’architettura e dalle modalità di gestione delle fonti. 

Il principio è però importante: aggiornare la conoscenza disponibile al RAG non equivale necessariamente a riaddestrare il modello AI. 

RAG vs Fine-Tuning: qual è la differenza? 

RAG e fine-tuning vengono spesso messi a confronto, ma intervengono su aspetti differenti. 

RAGFine-Tuning
Obiettivo Fornire informazioni esterne al modello Adattare il comportamento del modello
Come funziona Recupera informazioni al momento della richiesta Utilizza un ulteriore processo di training
Utile per Conoscenza proprietaria e aggiornata Stile, comportamento e task specifici
Aggiornamento Può avvenire aggiornando le fonti Può richiedere un nuovo processo di adattamento
Domanda principale
Domanda principale

“Quali informazioni deve utilizzare?”

“Come deve comportarsi?”

In sintesi il RAG interviene principalmente sul contesto; il fine-tuning interviene principalmente sul comportamento del modello. 

Non sono necessariamente alternative. In determinati progetti possono essere utilizzati insieme. 

Quali dati può utilizzare un sistema RAG?

Una delle caratteristiche più interessanti del RAG è la possibilità di lavorare con fonti informative differenti. 

Documenti e knowledge base 

PDF, manuali, procedure, FAQ, cataloghi e documentazione tecnica possono diventare fonti per il sistema. È particolarmente utile quando l’azienda possiede già molte informazioni, ma gli utenti fanno fatica a trovarle. 

Database e dati strutturati 

Un sistema AI può avere bisogno anche di informazioni strutturate. 

In questo caso è importante distinguere tra ricerca semantica nei documenti e interrogazione di dati strutturati. Non tutte le domande devono essere risolte attraverso una ricerca vettoriale: a seconda del caso d’uso possono essere necessarie query, API o altre modalità di accesso ai dati. 

Siti web e contenuti digitali 

Anche contenuti pubblicati online possono essere utilizzati come fonti, purché vengano acquisiti, elaborati e aggiornati secondo una logica coerente. 

CRM, ERP e software aziendali

In progetti più evoluti, il sistema può utilizzare informazioni provenienti da CRM, ERP e altri software.
Un CRM può contenere informazioni commerciali, mentre un ERP può gestire prodotti, ordini o processi. 

Questi dati possono diventare parte del contesto utilizzato dall’AI, ma richiedono un’architettura adeguata per gestire: 

  • Accessi; 
  • Autorizzazioni; 
  • Sicurezza; 
  • Aggiornamenti; 
  • Sincronizzazione; 
  • Qualità dei dati. 

Il RAG, quindi, non sostituisce le integrazioni tra sistemi. Può diventare uno dei componenti di un’architettura AI che utilizza API, connettori e middleware per rendere disponibili determinate informazioni. 

Quando i dati sono distribuiti tra più software, il problema non è soltanto quale AI utilizzare, ma come permettere ai sistemi di comunicare correttamente. 

Per approfondire questo aspetto, leggi “Perché i software aziendali non comunicano tra loro? Cause, problemi e soluzioni” 

Quali sono i vantaggi del RAG per un’azienda? 

Il valore del RAG non sta semplicemente nel generare testo. Sta nella possibilità di rendere interrogabile la conoscenza aziendale attraverso l’AI. 

Risposte contestualizzate 

Il sistema può fornire al modello informazioni provenienti da fonti specifiche dell’organizzazione, riducendo la distanza tra una risposta generica e una risposta basata sulla documentazione disponibile. 

Accesso più rapido alla conoscenza 

Invece di cercare manualmente tra decine di documenti, un utente può formulare una domanda e lasciare che il sistema recuperi i contenuti pertinenti. 

Aggiornamento delle fonti 

Quando cambiano procedure, prodotti o documenti, è possibile aggiornare le fonti utilizzate dal sistema senza necessariamente intervenire sul modello linguistico. 

Utilizzo della conoscenza proprietaria 

Manuali, procedure, documentazione commerciale, knowledge base e altri contenuti interni possono diventare parte del contesto utilizzabile dall’AI. 

Maggiore verificabilità 

Un sistema RAG può essere progettato per mostrare le fonti utilizzate nella risposta, rendendo più semplice verificare da dove provengono le informazioni. 

Governance dei dati e AI Act 

Nei progetti di AI aziendale, il RAG può contribuire anche a una gestione più controllata e tracciabile delle informazioni utilizzate dal sistema. 

È importante però fare una distinzione: il RAG non rende automaticamente un sistema AI conforme all’AI Act. Un’architettura RAG ben progettata può però controllare le fonti utilizzate, aggiornare la base di conoscenza, gestire gli accessi e rendere più verificabile il percorso che porta alla risposta. 

Per questo, il RAG può essere un componente utile di un’architettura AI progettata secondo principi di governance e compliance by design, ma la conformità riguarda l’intero sistema, non una singola tecnologia. 

Per approfondire il tema dell’AI Act e delle implicazioni per le aziende, leggi anche “AI Act e aziende: come adeguarsi ed evitare sanzioni”. 

Il RAG elimina le allucinazioni? 

No. 

Il RAG può ridurre il rischio di risposte non supportate dalle fonti, ma non garantisce automaticamente l’assenza di allucinazioni. 

La qualità dipende anche da: 

  • Qualità delle fonti; 
  • Precisione del retrieval; 
  • Qualità del contesto; 
  • Modello utilizzato; 
  • Progettazione complessiva del sistema. 

RAG e chatbot: sono la stessa cosa? 

No. Un chatbot è un’interfaccia conversazionale attraverso cui una persona interagisce con un software. 

Il RAG è invece un’architettura che permette a un sistema AI di recuperare informazioni esterne e utilizzarle per generare una risposta. 

Un chatbot può quindi utilizzare il RAG, ma non è obbligatorio. Allo stesso modo, un sistema RAG può essere integrato in strumenti diversi da una chat, come motori di ricerca interni o applicazioni aziendali. 

Quali sono i limiti del RAG?

Il RAG non risolve automaticamente tutti i problemi dell’AI generativa.  

La qualità dipende dalle fonti

Informazioni obsolete, incomplete o contraddittorie possono portare a risposte problematiche.  

Il retrieval può essere impreciso

Se il sistema recupera il documento sbagliato, anche un modello avanzato lavorerà su un contesto inadeguato.

I documenti complessi richiedono elaborazione   

Tabelle, immagini, scansioni e strutture particolari possono richiedere modalità specifiche di acquisizione e interpretazione. 

Sicurezza e autorizzazioni sono fondamentali 

Non tutti gli utenti devono necessariamente poter accedere alle stesse informazioni. 

Un sistema RAG aziendale deve quindi considerare ruoli, permessi e segregazione dei dati fin dalla fase di progettazione. 

Come progettare un sistema RAG aziendale?

La progettazione dovrebbe partire dal caso d’uso, non dalla tecnologia.  

1. Definire il problema 

Cosa deve fare il sistema? Chi lo utilizzerà? Quale processo deve migliorare? 

2. Mappare le fonti 

Dove si trovano le informazioni? Documenti, CRM, ERP, Database, knowledge base? E soprattutto: sono aggiornate e affidabili? 

3. Progettare il retrieval 

Come devono essere cercate le informazioni? Quale strategia di ricerca è più adatta? Quanti contenuti devono essere recuperati? 

4. Scegliere modello e architettura 

Il modello linguistico deve essere scelto in funzione del caso d’uso, del tipo di informazioni e dei requisiti del sistema. 

5. Gestire integrazione e sicurezza 

Quando sono coinvolti software aziendali, bisogna progettare API, connettori, autorizzazioni e modalità di aggiornamento dei dati. 

6. Testare le risposte

Il sistema deve essere verificato su domande reali e casi limite. Non basta che “risponda”: bisogna verificare se recupera le informazioni corrette e se le utilizza correttamente. 

7. Monitorare e aggiornare 

Fonti, documenti, sistemi e processi cambiano nel tempo. Un sistema RAG aziendale deve quindi essere monitorato e mantenuto. 

Stai valutando un sistema RAG per la tua azienda? MWD può aiutarti a progettare un’architettura AI connessa a CRM, ERP, database e software aziendali, costruita sulle esigenze reali del tuo business. Parliamo del tuo progetto AI! 

Fonti, documenti, sistemi e processi cambiano nel tempo. Un sistema RAG aziendale deve quindi essere monitorato e mantenuto. 

Stai valutando un sistema RAG per la tua azienda? MWD può aiutarti a progettare un’architettura AI connessa a CRM, ERP, database e software aziendali, costruita sulle esigenze reali del tuo business. Parliamo del tuo progetto AI! 

Quando ha davvero senso utilizzare il RAG? 

Il RAG può essere particolarmente interessante quando: 

  • Esiste una grande quantità di documentazione aziendale; 
  • Le informazioni cambiano frequentemente; 
  • Le persone perdono tempo nella ricerca; 
  • La conoscenza è distribuita tra più fonti; 
  • Esistono procedure che vengono consultate continuamente; 
  • L’azienda vuole rendere interrogabili informazioni proprietarie attraverso l’AI. 

In questi casi, il problema non è necessariamente creare nuova conoscenza. Può essere rendere accessibile quella che l’azienda possiede già. 

RAG: dalla tecnologia al progetto aziendale 

Il RAG non dovrebbe essere considerato semplicemente come “un chatbot che legge i PDF”. Il suo valore emerge quando viene progettato in relazione al contesto in cui deve operare. 

Per questo, prima di scegliere un modello o un database vettoriale, conviene chiedersi: quale conoscenza vogliamo rendere interrogabile e quale processo aziendale vogliamo migliorare? 

È da questa domanda che dovrebbe partire un progetto RAG. Stai valutando un sistema RAG per la tua azienda? MWD progetta soluzioni AI custom e integrazioni software partendo dal caso d’uso e dall’architettura necessaria. 

Vuoi capire se il RAG può essere applicato concretamente alla tua azienda? Parlane con MWD. 

FAQ

Domande utili
  • Innovation with human touch

Created with Fabric.js 5.3.0 Created with Fabric.js 5.3.0 Created with Fabric.js 5.3.0 Created with Fabric.js 5.3.0 Created with Fabric.js 5.3.0 Created with Fabric.js 5.3.0 Created with Fabric.js 5.3.0 Created with Fabric.js 5.3.0 Created with Fabric.js 5.3.0 Created with Fabric.js 5.3.0 Created with Fabric.js 5.3.0 Created with Fabric.js 5.3.0 Created with Fabric.js 5.3.0 Created with Fabric.js 5.3.0 Created with Fabric.js 5.3.0 Created with Fabric.js 5.3.0 Created with Fabric.js 5.3.0 Created with Fabric.js 5.3.0