Capire

Retrieval-Augmented Generation (RAG): come funziona davvero, passo dopo passo

Comprendere la RAG oltre le definizioni superficiali: selettività, chunking, embedding e orchestrazione agentica

Pubblicato il 23 dicembre 20258 minuti di lettura
Retrieval-Augmented Generation (RAG): come funziona davvero, passo dopo passo
RAGLLMRetrievalChunkingEmbeddingAgentiVector DatabasePrompt Engineering
Questo tema nel libroParte I - Capire4 capitoli: apri la sintesi e leggi come iniziano

Questa parte ricostruisce da dove viene l’IA, come impara una macchina, come nascono i modelli di linguaggio e che cosa sta intorno al modello: fine-tuning, RAG, finestra di contesto, harness.

I capitoli di questa parte

  • Capitolo 1 · pagina 25Da dove viene l’IA che usi ogni giornoLa nascita dell’IA · Dove siamo oggi

    La chat che usi tutti i giorni nasce da una storia lunga settant’anni. Siamo nel 1950, l’epoca in cui i primi calcolatori entrano nei laboratori. Alan Turing, matematico inglese, si domandò se quelle macchine fossero in grado di pensare. Cercando la risposta si rese conto che il concetto stesso di “pensare” era difficile, se non impossibile, da definire. Cambiò allora prospettiva e concluse che il modo migliore per stabilire se una macchina pensa fosse una prova: se una persona, conversando con un calcolatore, non riesce a capire che sta parlando con una macchina, allora quella macchina ha superato il test. Sei anni dopo, a Dartmouth, John McCarthy diede un nome a quella che stava diventando una disciplina: “intelligenza artificiale, la scienza e l’ingegneria di creare macchine intelligenti”. Molti studiosi si dedicarono a quell’obiettivo, e in poco tempo si consolidarono due approcci diversi. Il primo diceva: scriviamo noi le regole, una per una, e la macchina le applica, come fa un programma tradizionale. Il secondo diceva: diamo alla macchina molti esempi e lasciamo che le regole se le ricavi da sola, con algoritmi ispirati ai neuroni del cervello. La prima strada diede presto risultati tangibili e sembrò la migliore, e lo rimase fino alla fine degli anni Ottanta. Poi, con il crescere della potenza di calcolo, con l’arrivo dei cosiddetti big data e grazie ad algoritmi sempre più raffinati, la seconda strada, quella delle reti neurali artificiali, ebbe la meglio. Nel 2012 una rete neurale profonda (deep neural network) vinse una gara di riconoscimento di immagini con un distacco che nessuno si aspettava. Negli anni seguenti arrivarono i modelli di linguaggio (i large language model), e il 30 novembre 2022 ChatGPT li mise a disposizione del grande pubblico, con una velocità di diffusione da record: oltre cento milioni di persone nei primi due mesi. Il capitolo racconta questa storia e si chiude con una panoramica di quello che l’IA sa fare oggi, dalle proteine alle auto senza conducente. Una cosa da tenere a mente per tutto il libro è la differenza fra le due strade: un programma tradizionale segue istruzioni scritte da qualcuno e dà sempre la stessa risposta; una rete neurale impara dai dati e risponde con la cosa probabilmente più giusta.

    Perché leggerlo: senza questa storia ogni annuncio sembra il primo, e non hai modo di pesarlo. È breve e si legge per intero in mezz’ora; per seguire il resto basta portarsi dietro la distinzione fra regole scritte a mano e regole ricavate dagli esempi, che torna in ogni capitolo.

  • Capitolo 2 · pagina 31Come impara una macchinaIA simbolica: i sistemi esperti · Machine learning: l’apprendimento dai dati · Machine learning tradizionale: la cassetta degli attrezzi · Deep learning: il salto di qualità · Reti neurali artificiali: architetture di base · Reti neurali artificiali: architetture avanzate

    Questo capitolo apre la macchina e racconta, un pezzo alla volta, come fa a imparare. La storia comincia dai sistemi esperti degli anni Sessanta e Settanta. Un esperto umano scriveva le regole, per esempio “se febbre e tosse, allora possibile influenza”, e un programma le applicava una dopo l’altra. Il metodo funzionava finché le regole erano poche; al primo caso che nessuno aveva previsto si rompeva. Il machine learning (l’apprendimento automatico) rovesciò il metodo: invece di scrivere le regole, si raccolgono molti esempi già risolti e si lascia che il programma trovi da solo le regolarità. Un albero decisionale, per esempio, impara da centinaia di pazienti quale domanda fare per prima per capire se un caso è urgente. Queste tecniche, insieme alle regressioni e alle foreste di alberi, decidono ancora oggi se concedere un prestito o come smistare la posta. Hanno però un limite: lavorano su caratteristiche dei dati che qualcuno ha già scelto per loro. Il deep learning fa il passo in più, perché la rete trova da sola che cosa guardare, ed è proprio quello che serve con le immagini, le frasi e i suoni. Per spiegare come, il capitolo parte dal neurone artificiale, il mattone di base delle reti: una somma pesata dei dati in ingresso, seguita da una piccola curva che si chiama funzione di attivazione. Mettendo insieme qualche neurone si ottiene una rete neurale, e con una rete di questo tipo il capitolo mostra come prevedere se uno studente supererà un esame a partire dai risultati di altri studenti prima di lui. Poi quella rete viene addestrata davvero: si parte con pesi scelti a caso, si misura l’errore e si correggono tutti i pesi insieme, un poco alla volta, per migliaia di giri, finché l’errore è il più piccolo possibile. Questo meccanismo, la discesa del gradiente con la backpropagation, è lo stesso che addestra i modelli da miliardi di parametri. Il capitolo si chiude con le quattro architetture che hanno reso possibile l’IA generativa: la diffusione, che impara a togliere il rumore da un’immagine; l’autoencoder, che comprime e ricostruisce; le GAN, due reti che si sfidano; e il Transformer, che con il meccanismo dell’attenzione legge tutte le parole di una frase insieme e decide quali contano per ciascuna.

    Perché leggerlo: è la parte che rende possibile tutto il resto. Senza sapere che cosa sono i pesi e come si addestrano, non è possibile capire davvero perché le risposte dei modelli possono essere sbagliate. Serve leggerlo tutto? No. Per seguire il libro bastano le sezioni sui sistemi esperti e sul machine learning tradizionale, più la sottosezione sul Transformer, in coda alla seconda sezione sulle reti neurali; il resto delle due sezioni sulle reti neurali, con i conti della rete a tre neuroni, si può saltare al primo giro e riprendere quando vorrai vedere come si arriva a quei numeri. Chi salta deve però almeno portarsi dietro tre parole e il loro significato: pesi, addestramento, attenzione.

  • Capitolo 3 · pagina 69I large language modelCome si addestra un modello di linguaggio · Grande non è sempre meglio: i modelli efficienti · Nuove tecniche per migliorare le capacità degli LLM · Chi fa gli LLM, e come li rilascia · Le architetture, in ordine di tempo

    I modelli di linguaggio, i large language model o LLM, sono l’intelligenza artificiale con cui hai a che fare tutti i giorni, e questo capitolo racconta come nascono e chi li costruisce. Un LLM è una rete neurale addestrata a fare una cosa sola: leggere un pezzo di testo e indovinare la parola che viene dopo. Sembra un compito modesto, ma per farlo bene la rete deve assorbire la grammatica, i fatti e i ragionamenti che stanno dietro le parole, ed è così che impara a rispondere, riassumere e tradurre. Tre grandezze decidono quanto un modello è bravo a prevedere la parola successiva: quanti parametri ha, cioè quanti pesi aggiusta mentre impara; quanto testo ha visto; quanto calcolo è servito per addestrarlo. Nel 2020 ci si accorse che l’errore cala in modo regolare quando le tre grandezze crescono. Sono le cosiddette leggi di scala, e da quella scoperta è partita la corsa a costruire modelli sempre più grandi. Il costo di addestramento, però, sale in fretta, e il capitolo racconta le strade che si stanno percorrendo per contenerlo: modelli più piccoli ma addestrati molto più a lungo, oppure pesi scritti con pochi bit, cioè numeri con meno decimali. Presenta poi due tecniche che negli ultimi anni hanno migliorato i risultati a parità di dimensioni: far scrivere al modello un ragionamento prima della risposta, che è l’idea dei modelli di ragionamento, e organizzarlo dentro come una squadra di specialisti che si attivano solo quando servono, la Mixture of Experts. Il capitolo si chiude con chi costruisce questi modelli e come li rilascia: a pesi chiusi, che restano sui server di chi li ha prodotti, oppure a pesi aperti, scaricabili e modificabili; e con quello che ciascun laboratorio ha scelto di vendere.

    Perché leggerlo: qui impari a capire le caratteristiche di un modello nuovo da solo, e ne esce uno al mese. La prima sezione, l’addestramento e le leggi di scala, aiuta a capire come mai leggiamo sui giornali tutti i giorni della corsa alla costruzione di data center sempre più grandi. La sezione sui laboratori si può attraversare in fretta e riprendere quando ti serve un nome.

  • Capitolo 4 · pagina 83Che cosa sta intorno al modelloAdattare un modello al proprio materiale · La finestra di contesto · Capienza e attenzione · L’harness: l’impianto attorno al modello

    Lo stesso modello, dentro due prodotti diversi, può dare risultati lontanissimi. La differenza la fa quello che gli sta intorno, e questo capitolo lo descrive dall’interno verso l’esterno. Un modello appena addestrato ha una conoscenza generale molto ampia, che viene dal materiale su cui è stato addestrato, ma non sa niente di te e del tuo lavoro. Per portarlo sul tuo materiale ci sono due strade. La prima è riaddestrarlo un poco, il fine-tuning: gli si mostrano esempi curati tratti dai tuoi documenti e il modello cambia il modo in cui si comporta, il tono, il formato, il vocabolario di un mestiere. La seconda è collegarlo ai tuoi documenti, la RAG: il modello resta com’è, ma quando arriva una domanda va a cercare nei tuoi file i pezzi che servono e li legge prima di rispondere. La regola per scegliere è semplice: si addestra per insegnare una forma, si dà un documento per aggiungere un fatto. Tutto quello che il modello legge prima di rispondere sta in uno spazio che si chiama finestra di contesto: le istruzioni, la conversazione fino a quel punto, gli allegati, i risultati delle ricerche. La finestra viene riletta per intero a ogni scambio ed è, in pratica, quanto il modello riesce a tenere a mente mentre lo usi. In tre anni la capienza è cresciuta enormemente: i primi modelli tenevano a mente un documento di poche pagine, quelli di oggi lavorano su testi di centinaia di pagine. Restano però dei limiti nella capacità di tenere l’attenzione su tutto quel materiale, e conviene conoscerli. Il capitolo si chiude con l’impianto completo, l’harness: il contesto, gli strumenti che il modello può usare, la memoria, il ciclo con cui rilegge quello che ha fatto e le istruzioni permanenti. Nessuna di queste cinque cose è il modello, e alcune non si comprano: le costruisci tu. È per questo che due persone con lo stesso abbonamento possono avere esperienze molto diverse.

    Perché leggerlo: è il capitolo che presenta tutte le componenti della IA che usiamo tutti i giorni. Ed è proprio utilizzando al meglio queste componenti che è possibile trarre i migliori risultati dalla IA. I capitoli successivi entrano nel dettaglio: la finestra di contesto torna nel capitolo sull’uso della chat, l’harness in quello sugli agenti, la RAG in quello sulla scelta di una soluzione. Va letto per intero; è breve, e la sezione sulla finestra di contesto è la più utile del libro per chi usa una chat tutti i giorni.

Il libro costruisce le basi in modo progressivo; gli articoli approfondiscono e aggiornano i singoli temi man mano che cambiano.

Quando si parla di Retrieval-Augmented Generation (RAG), la definizione più diffusa è apparentemente semplice: un modello linguistico viene affiancato a una base documentale esterna, dalla quale recupera le informazioni rilevanti al momento della domanda. In questo modo il modello non risponde solo in base a ciò che ha appreso durante l'addestramento, ma utilizza documenti specifici, aggiornabili e verificabili.

Questa descrizione, però, rischia di essere fuorviante se presa alla lettera. Una RAG non è un sistema che "legge tutti i documenti" prima di rispondere, né un meccanismo che rende il modello onnisciente. Al contrario, il suo funzionamento si basa su una scelta radicale e controintuitiva: per ogni domanda, il sistema seleziona pochissimi frammenti di testo e ignora deliberatamente tutto il resto.

Capire perché questa scelta funziona, e quali condizioni devono essere soddisfatte perché produca buoni risultati, è essenziale per usare la RAG in modo consapevole.

Il principio chiave: selezionare, non accumulare

Il cuore della RAG è la selettività. Anche quando la base documentale è composta da migliaia di file, il sistema non cerca di tenerne conto nel loro insieme. Per ogni domanda recupera in genere un numero molto limitato di frammenti testuali, tipicamente tra cinque e dieci chunk. Questo numero non cresce con la dimensione dell'archivio, perché la domanda resta sempre locale: riguarda un aspetto specifico, che nella maggior parte dei casi è trattato in poche sezioni ben precise.

La qualità della RAG non dipende quindi dalla sua capacità di "vedere tutto", ma dalla sua capacità di decidere cosa non vedere. Tutto ciò che non è rilevante per quella domanda viene escluso dal contesto fornito al modello, riducendo rumore, ambiguità e rischio di risposte inventate.

Dalla base documentale al testo utilizzabile

Il funzionamento della RAG inizia molto prima della prima domanda dell'utente. La fase iniziale è spesso la più sottovalutata, ma anche una delle più determinanti.

I documenti di partenza possono essere eterogenei: PDF nativi, PDF scansionati, file Word, presentazioni, pagine HTML, email, allegati tecnici. Prima di qualsiasi operazione semantica, questi contenuti devono essere trasformati in testo. Questo passaggio include, quando necessario, il riconoscimento ottico dei caratteri, l'estrazione delle tabelle, la gestione delle immagini contenenti testo.

Una volta estratto il testo, è necessaria una fase di pulizia. In questa fase si eliminano o si normalizzano elementi che disturbano la comprensione e la ricerca semantica: intestazioni ripetute su ogni pagina, numeri di pagina, note marginali, riferimenti incrociati spezzati, spaziature anomale. Quando possibile, si preserva invece la struttura logica del documento, mantenendo titoli, sottotitoli, paragrafi e sezioni. Questa struttura sarà preziosa nelle fasi successive.

La pulizia non serve a "abbellire" i dati, ma a rendere il testo semanticamente coerente. Un sistema RAG non può compensare un input testuale confuso o rumoroso: se l'informazione è distorta a monte, anche il retrieval lo sarà.

Il chunking: spezzare senza distruggere il significato

Dopo la pulizia, i documenti vengono suddivisi in chunk, ovvero frammenti di testo di dimensione controllata. Questo passaggio è necessario perché né la ricerca semantica né il modello linguistico lavorano bene su documenti molto lunghi presi nel loro insieme.

Il chunking efficace non è una semplice divisione meccanica ogni N parole. L'obiettivo è creare frammenti che siano informativamente densi e autosufficienti, ciascuno dei quali rappresenti un'idea completa o un sotto-argomento coerente. In genere si lavora con dimensioni dell'ordine di alcune centinaia di parole, spesso con una leggera sovrapposizione tra chunk consecutivi per evitare di spezzare concetti a metà.

Un chunk ben progettato deve poter essere compreso anche se letto isolatamente. Se per capirlo è necessario leggere dieci pagine precedenti, quel chunk non funzionerà bene in un sistema RAG.

Embedding e indicizzazione: trasformare il testo in spazio semantico

Ogni chunk viene poi trasformato in un embedding, cioè in una rappresentazione numerica che cattura il significato del testo. Chunk semanticamente simili finiscono vicini in questo spazio, anche se utilizzano vocaboli diversi.

Gli embedding vengono memorizzati in un indice vettoriale insieme al testo originale e ai metadati: documento di provenienza, sezione, pagina, data, eventuale categoria. Questo indice è il vero motore di ricerca della RAG. Non serve a recuperare testi per parola chiave, ma a individuare frammenti concettualmente affini a una domanda.

A questo punto la base documentale è pronta. Nulla è ancora stato passato al modello, ma il sistema ha costruito una mappa semantica del corpus.

La domanda dell'utente e la riscrittura della query

Quando l'utente pone una domanda, il sistema non si limita sempre a usarla così com'è. Le domande reali sono spesso brevi, implicite o ambigue. Per migliorare la qualità del retrieval, una RAG matura utilizza una fase di riscrittura della query, in cui la domanda viene espansa e resa più esplicita.

Questa riscrittura non aggiunge conoscenza, ma chiarisce il contesto e gli elementi rilevanti, aumentando la probabilità che i chunk giusti emergano dalla ricerca semantica.

La query riscritta viene a sua volta trasformata in embedding e confrontata con tutti i chunk indicizzati.

Il retrieval: pochi chunk, scelti con cura

Il confronto tra embedding della query ed embedding dei chunk produce una lista di frammenti semanticamente vicini. Da questa lista vengono selezionati solo i migliori, in genere un numero limitato. Nella pratica operativa, valori compresi tra cinque e dieci chunk rappresentano uno standard molto diffuso.

Questo passaggio è spesso seguito da un'ulteriore selezione, detta reranking, che valuta più finemente la pertinenza dei chunk rispetto alla domanda. Il risultato finale è un insieme ristretto di frammenti che contengono, con buona probabilità, l'informazione cercata.

Tutto il resto dell'archivio viene ignorato. Non perché sia inutile in assoluto, ma perché non è rilevante per quella domanda specifica.

Dal retrieval alla generazione: il ruolo del prompt

I chunk selezionati vengono inseriti nel prompt insieme alla domanda dell'utente e a istruzioni precise su come il modello deve comportarsi. È in questa fase che si definisce il "contratto" operativo: rispondere solo usando le fonti fornite, segnalare esplicitamente l'assenza di informazioni, evitare deduzioni non supportate, citare le fonti quando richiesto.

Il modello non ha accesso diretto all'indice vettoriale né all'intera base documentale. Per lui esiste solo ciò che è presente nel prompt. La qualità della risposta dipende quindi direttamente dalla qualità del retrieval e dalla chiarezza delle istruzioni.

Perché la RAG funziona anche su archivi enormi

Il fatto che una RAG utilizzi solo pochi chunk non è una debolezza, ma una conseguenza della natura delle domande. Anche in archivi molto grandi, le informazioni operative, normative o tecniche sono concentrate in punti specifici. La RAG sfrutta questa concentrazione, isolando rapidamente le parti rilevanti.

Quando un sistema sembra aver bisogno di decine di chunk per rispondere, il problema raramente è il numero in sé. Più spesso è sintomo di chunking inefficace, pulizia insufficiente dei dati, query troppo vaghe o assenza di meccanismi di selezione più raffinati.

I limiti della RAG semplice e il caso dei documenti complessi

La RAG descritta fin qui è progettata per rispondere a una domanda. Se l'obiettivo è costruire un documento lungo e articolato, basato su molte fonti, questo approccio non è sufficiente.

In questi casi, la RAG va usata come un componente di un processo più ampio. Il documento viene prima scomposto concettualmente in sezioni. Ogni sezione diventa una domanda autonoma, per la quale la RAG recupera i chunk pertinenti e genera un testo locale coerente. Questi testi intermedi vengono poi integrati e armonizzati in un secondo momento.

In questo modo, la RAG continua a lavorare su contesti limitati e controllabili, mentre il documento finale emerge da una sequenza di passi ben orchestrati, non da un singolo prompt sovradimensionato.

RAG e agenti: quando il retrieval diventa uno strumento

Finora la RAG è stata descritta come un flusso relativamente lineare: una domanda, il recupero di alcuni chunk rilevanti, la generazione di una risposta. Questo schema è efficace per molte applicazioni, ma mostra i suoi limiti quando le richieste diventano più complesse, articolate o orientate alla produzione di documenti strutturati.

Nei sistemi agentici, la RAG non è più il sistema in sé, ma uno strumento a disposizione di un agente. L'agente — che può essere un LLM con capacità di pianificazione e uso di strumenti — decide quando e come invocare la RAG, in base allo stato del compito che sta svolgendo.

In un flusso agentico tipico, l'agente riceve un obiettivo complesso, lo scompone in sotto-problemi, e per ciascuno di essi decide se ha già le informazioni necessarie o se è opportuno effettuare una ricerca sulla base documentale. La RAG viene quindi invocata selettivamente, come si consulterebbe un archivio specifico solo quando serve.

Questo approccio combina la flessibilità del ragionamento agentico con la precisione del retrieval semantico, permettendo di affrontare compiti che nessuno dei due componenti potrebbe gestire da solo.

Conclusione

La RAG è una tecnologia potente, ma la sua efficacia dipende interamente dalla qualità di ogni fase del processo: dalla pulizia dei dati al chunking, dall'embedding al retrieval, fino alla costruzione del prompt. Non esiste una RAG "di default" che funziona bene su qualsiasi corpus e per qualsiasi tipo di domanda.

Comprendere come funziona davvero — e soprattutto capire il principio di selettività che ne è al cuore — è il primo passo per usarla in modo consapevole e per diagnosticare correttamente i problemi quando i risultati non sono quelli attesi.

Resta aggiornato

Un solo aggiornamento per articoli, eventi e nuove edizioni

Nuovi articoli sull'IA
Nuove edizioni del libro ed eventi