RAG (Retrieval Augmented Generation): una guida brillante con esempi pratici
Se vuoi diventare un vero esperto di RAG (Retrieval Augmented Generation) — e costruire sistemi che non solo funzionano, ma ti fanno anche sentire un piccolo mago dell’intelligenza artificiale — il primo passo è metterti comodo e capire bene le basi. Perché sì, la RAG può sembrare una parolona da conferenza tech, ma dietro c’è un concetto sorprendentemente semplice (e geniale).
Come per ogni architettura un po’ seria — che non si costruisce certo buttando giù due righe di codice a caso — serve un progetto chiaro che ti guidi. In questo viaggio (questa serie di articoli dedicati alla RAG) vedremo insieme le componenti principali della RAG (quelle che fanno davvero il lavoro sporco), come stanno in piedi l’una con l’altra senza litigare e come puoi cominciare a usare le librerie giuste senza perderti nel mare delle API.
Insomma: questo articolo ti offre una panoramica per partire con il piede giusto e mettere le basi per diventare uno che la RAG la conosce e la sa usare nel proprio lavoro e nella propria azienda (mica solo per far colpo alle conferenze con i colleghi).
Che cos’è la RAG e perché usarla
Cominciamo dal principio (che è sempre un buon posto da cui partire): cos’è sta RAG e perché ti dovrebbe interessare?
La RAG è come un superpotere che puoi aggiungere a qualsiasi large language model (LLM) come chatGPT, Claude, Gemini, Deepseek… Un LLM da solo è già un cosa sorprendente: scrive, riassume, risponde, fa pure battute se glielo chiedi. Ma a volte, diciamolo, gli manca quel qualcosa in più: un accesso a informazioni fresche, affidabili e specifiche.
Essenzialmente la più grande limitazione (forse) di un LLM è che non sa di non sapere quello che non sa!
E qui entra in scena la RAG: un’architettura che collega il tuo modello preferito di LLM (chetGPT?) a una knowledge base (una base di conoscenza che può contenere ad esempio le FAQ del tuo sito, l’intero catalogo aggiornato dei prodotti della tua azienda, o i tuoi piani segreti per conquistare il mondo). Il risultato? L’LLM non improvvisa, non “allucina”, non risponde in maniera superficiale o insufficente o incompleta… ma risponde con dati aggiornati e sensati. E tu che la mostri ai tuoi clienti fai bella figura.
L’architettura della RAG
Ora, niente paura: l’architettura della RAG non è un labirinto. Immagina un LLM affiancato da un retriever, che è un po’ il segugio della situazione: tu fai la domanda, e lui corre nella knowledge base a cercare le informazioni migliori. Quelle buone davvero, mica la prima cosa che trova su un blog del 2009.
Il retriever (attraverso un processo di similarità semantica) pesca i dati giusti, li mette nel prompt e l’LLM, arricchieto con un contesto fresco e rilevante, ti sforna la risposta giusta al momento giusto. Voilà, la magia della RAG.
Applicazioni pratiche e confronto con altri approcci
La RAG non è solo un bel concetto da raccontare agli amici al bar (se frequentate bar pieni di persone sbagliate). È una tecnologia che trova applicazione in un sacco di contesti concreti: chatbot aziendali che riescono finalmente a rispondere alle domande dei clienti senza incoraggiare il desiderio di morire, assistenti virtuali che non vi lasciano a metà di una configurazione, strumenti di ricerca che non si perdono tra risultati inutili… insomma, roba seria.
Nel nostro percorso, ci capiterà di vedere sistemi RAG già in azione e ci potremo pure sorprendere di quanto possa essere semplice iniziare a immaginare come integrarla anche nei nostri progetti.
Ma se stai pensando: “Non basta fare il fine-tuning del modello? O dargli un contesto più lungo?” La risposta è (come sempre del resto): dipende.
La RAG è più flessibile, più aggiornata e ti evita di dover riaddestrare tutto ogni volta che cambia una virgola nei dati. Ma, come tutte le cose belle, richiede un minimo di progettazione attenta per dare il meglio di sé.
Perché la RAG? Il bisogno di un’informazione più ampia
L’obiettivo della RAG è migliorare le prestazioni dei large language models.
Gli LLM sono già dei piccoli prodigi: rispondono, scrivono, riassumono, rappano, fanno persino le battute (a volte meglio degli umani). Ma ogni tanto gli manca il colpo di scena finale: quel dato aggiornato, quella procedura nuova, quell’informazione che non avevano al momento dell’addestramento.
La RAG è proprio l’asso nella manica: un modo per fare in modo che il tuo LLM non resti intrappolato nel passato del suo training. Gli dai accesso a una knowledge base fresca e affidabile e… zac! Ti sforna una risposta che non solo suona bene, ma è pure aggiornata.
Esempi pratici che fanno capire il perché
Per comprendere meglio questo concetto, vediamo ora alcuni esempi pratici che mostrano quando e perché la RAG può fare la differenza.
- Assistenza clienti
Il chatbot (della tua azienda ad esempio) non si limita più a darti la risposta standard che ti fa venire voglia di lanciare il telefono. Con la RAG può consultare la knowledge base aggiornata e ti risponde come si deve. - Supporto tecnico
Serve la procedura dell’ultimo aggiornamento? Quel dato manuale tecnico, articolo o risorsa di approfondimento che si può trovare solo tra gli archivi segreti della proprio organizzazione? La RAG la recupera al volo queste informazioni ufficiali e risponde in maniera significativa e puntuale sulla base di queste. - Ricerca legale o scientifica
Possiamo utilizzare la RAG per attingere a banche dati normative o a pubblicazioni accademiche. In questo modo il chatbot (o la risposta del LLM) non ti rifila la prima cosa trovata su un blog del 2010: pesca dalle fonti giuste, aggiornate, affidabili (quelle che gli diamo in pasto noi). - Report personalizzati
Integrando dati aziendali o finanziari in tempo reale, un sistema RAG può creare report dettagliati e pertinenti per le tue esigenze specifiche. Dati reali, in tempo reale. Così il report sembra fatto apposta per te (perché infatti abbiamo fatto in modo che lo sia).
Casi specifici
Proviamo a fare degli esempi di casi specifici:
- E-commerce di articoli sportivi
Cliente: «Avete scarpe da trekking impermeabili, leggere e adatte a un clima caldo?»
Risposta del chatbot con la RAG: «Certo! Le XYZ Trail Pro fanno proprio al caso tuo: leggere, impermeabili e super traspiranti. Le trovi qui [link].» - Helpdesk di un’azienda IT
Utente: «Come configuro questa nuova funzione?»
Assistente: recupera la procedura aggiornata e ti guida passo passo.
La RAG permette di recuperare le istruzioni della libreria di manuali aggiornati o anche dalle FAQ ufficiali. Pubbliche o private. Volendo anche dalle conversazioni (in forma anonima e ripulita da elementi “identificanti”) coi clienti avvenute su WhatsApp. - Consulenza legale automatizzata
Una persona chiede: «Quali sono i requisiti aggiornati per aprire una partita IVA come libero professionista?» Il sistema RAG consulta direttamente fonti ufficiali (ad esempio il sito dell’Agenzia delle Entrate) e fornisce una risposta aggiornata e precisa (non quella del 2019).
Nota sul caso della consulenza legale aggiornata
A questo punto qualche sapientone potrebbe chiedersi:
«Ma non potresti semplicemente fare una domanda del genere direttamente a ChatGPT o a un altro LLM?»
La risposta è: certamente sì, ma ci sono alcune differenze importanti da considerare quando si utilizza un LLM da solo rispetto a un sistema RAG:
- La knowledge base di un LLM come ChatGPT è limitata al momento del suo ultimo addestramento. Questo significa che le informazioni contenute nel modello si fermano a una certa data e non includono aggiornamenti successivi, che in alcuni campi possono essere cruciali. In altre parole: chatGPT è ottimo per le ricette della nonna, meno per l’analisi di un caso specifico che avrebbe bisogno di un’applicazione intelligente di una ultima normativa fiscale.
- Le risposte di un LLM attingono a un insieme ampio e variegato di fonti. Il modello può basarsi non solo su testi ufficiali, ma anche su articoli, discussioni su forum, blog e altre risorse del web, che possono avere gradi diversi di attendibilità e accuratezza. Sicuramente non vogliamo prendere decisioni delicate sulla base delle ultime chiacchierate avvenute in qualche bar digitale dell’Universo di Internet.
- Gli LLM sono soggetti al fenomeno delle “allucinazioni”: in assenza di dati sufficienti o chiari, il modello può generare risposte plausibili ma inesatte o inventate. Questo rischio si riduce in modo significativo con la RAG, che fornisce al modello informazioni aggiornate e affidabili al momento della generazione della risposta.
La RAG, quindi, rappresenta un approccio più solido quando servono risposte precise, aggiornate e basate su fonti verificabili.
Il limite delle informazioni disponibili agli LLM
Gli esempi qua sopra mostrano il potenziale della RAG, ma è importante anche chiarire perché non sempre un LLM da solo può bastare. Il tuo LLM di fiducia è bravo, ma non è onnisciente. Ci sono un sacco di informazioni che semplicemente non conosce: database aziendali riservati, dati nascosti, aggiornamenti freschi di giornata… e tutto quello che succede nel mondo dopo la sua data di addestramento.
E come ci siamo detti sopra, gli LLM hanno anche il grosso difetto che non sanno di non sapere quello che non sanno! (lo so, è un po’ un rompicapo, ma contempla un po’ questo concetto perché è importante!)
E quindi? Come si fa?
La soluzione è la RAG: colleghi il tuo modello a una knowledge base dinamica, gli dai le informazioni giuste al momento giusto e ottieni risposte che sembrano davvero scritte da uno che ne sa.
Come funziona la RAG?
La risposta breve alla domanda «Come possiamo fare in modo che l’LLM abbia accesso a informazioni utili?» è sorprendentemente semplice: basta inserirle nel prompt.
La magia è semplice: arricchisci il prompt con le informazioni giuste prima di mandarlo al modello. Niente stregonerie, solo un po’ di ingegno. Il retriever fa il lavoro duro: pesca i dati buoni dalla knowledge base e li infila nel prompt. L’LLM li usa per darti una risposta che non ti farà storcere il naso.
Questo approccio trasforma il modo in cui interagiamo con l’LLM: non ci affidiamo più soltanto alla conoscenza statica del modello, ma lo dotiamo, di volta in volta, del contesto aggiornato e rilevante di cui ha bisogno per rispondere in modo più preciso, corretto e utile.
Il retriever: il cuore della RAG
Naturalmente, queste informazioni che arricchiscono il prompt devono essere recuperate da qualche parte. Ed è qui che entra in gioco uno dei componenti fondamentali della RAG: il retriever.
Il retriever si occupa di gestire una knowledge base composta da informazioni attendibili, rilevanti e, in molti casi, anche private (come database aziendali interni o documentazione tecnica riservata). Quando il sistema RAG riceve un prompt, il retriever ha il compito di cercare e selezionare i dati più pertinenti da questa base di conoscenza e di passarli al modello linguistico. L’LLM utilizzerà quindi queste informazioni recuperate come parte del contesto per generare la risposta.
Ecco perché il nome Retrieval Augmented Generation, sebbene un po’ articolato, ora dovrebbe risultare più chiaro: tutto ciò che fa la RAG è migliorare (augment) la generazione di testo di un LLM recuperando in modo mirato le informazioni più utili da una knowledge base.
In poche parole,
- il retriever è quello che si sporca le mani: setaccia la knowledge base, tira fuori le informazioni davvero utili e scarta le scemenze…
che in realtà non dovrebbero essere state incluse nella tua knowledge base fin dal principio, ma si sa:
Errare humanum est, hallucinare autem intelligentiae artificialis est.
- Poi le passa al modello, e il resto è la risposta che viene elaborata in linguaggio naturale.
Conclusione
La RAG è un super alleato per far brillare il tuo LLM. Ti aiuta a superare i limiti del modello e a ottenere risposte precise, aggiornate e su misura.
Se ti stai chiedendo come portare questa tecnologia nella tua azienda o nei tuoi progetti, parliamone!
Comprendere l’architettura generale e il ruolo strategico del retriever e della knowledge base è un primo passo essenziale per avvicinarsi a questa tecnologia. Se vuoi approfondire come la RAG o altre soluzioni basate sull’intelligenza artificiale possono essere applicate alla tua attività professionale, al tuo business o ai tuoi progetti, contattami: come freelance offro consulenze personalizzate per aiutare aziende e professionisti a integrare queste tecnologie in modo efficace e su misura.
Scrivimi per una chiacchierata senza impegno: vediamo insieme cosa possiamo fare!