Cos'è Retrieval-Augmented Generation (RAG)?

Retrieval-Augmented Generation (RAG) is an AI architecture that combines a large language model with an external knowledge retrieval step, so the model can look up relevant documents before producing an answer. This grounding in retrieved, up-to-date sources helps reduce hallucinations and lets the system answer questions about information it was not explicitly trained on.

La Retrieval-Augmented Generation (RAG) è una tecnica per costruire sistemi di IA che consente a un modello linguistico di consultare documenti esterni prima di rispondere a una domanda. Invece di affidarsi solo a ciò che è stato appreso durante l'addestramento, una pipeline RAG cerca prima in una base di conoscenza i passaggi rilevanti per la query dell'utente, poi fornisce quei passaggi al modello come contesto. Il risultato è una risposta generata ancorata a fonti specifiche e citabili, anziché puramente ai pesi interni del modello.

Come funziona la Retrieval-Augmented Generation

Un sistema RAG tipico ha due componenti principali: un retriever e un generator. Il retriever è di solito un indice di ricerca vettoriale costruito a partire da un corpus di documenti. Quando ogni documento viene aggiunto all'indice, un modello di embedding converte i suoi chunk in vettori numerici; lo stesso modello crea l'embedding della query in arrivo dell'utente, e una ricerca per similarità (comunemente una lookup nearest-neighbor che usa la distanza coseno o prodotto scalare) restituisce i chunk i cui vettori sono più vicini alla query. I chunk con il punteggio più alto vengono quindi inseriti nel prompt inviato al grande modello linguistico, spesso insieme a istruzioni come "rispondi usando solo il contesto fornito".

Ad esempio, se un utente chiede a un assistente aziendale interno "Qual è la nostra politica di congedo parentale?", il retriever trova la sezione rilevante del manuale del dipendente, e il modello linguistico usa quei passaggi per comporre una risposta precisa che cita la politica. Questo pattern, introdotto nel paper del 2020 di Lewis et al. presso Facebook AI Research, separa la conoscenza (memorizzata nell'indice) dal ragionamento (eseguito dal modello), ed è per questo che l'approccio scala bene quando il materiale sorgente cambia.

Perché è importante

La RAG affronta tre problemi persistenti dei modelli linguistici standalone. Primo, riduce le allucinazioni perché il modello è ancorato al testo recuperato anziché improvvisare. Secondo, consente a un sistema di riflettere informazioni che non esistevano, o che sono cambiate, dal cutoff di addestramento del modello, semplicemente aggiornando l'indice. Terzo, rende le risposte del modello più verificabili: sviluppatori e utenti possono ispezionare i chunk recuperati, citarli e ricondurre qualsiasi affermazione a un documento sorgente.

Queste proprietà rendono la RAG il pattern predefinito per il question answering aziendale, i copiloti per il customer support, la ricerca legale e di compliance, e gli assistenti IA che devono operare su dati privati o proprietari senza dover riaddestrare il modello sottostante.

Tipi e pattern chiave

  • Naive (o "Retrieve-and-Read") RAG: una singola fase di retrieval inserisce direttamente i top-k chunk nel prompt del generator.
  • Advanced RAG: aggiunge riscrittura delle query, re-ranking e filtraggio a livello di chunk prima della generazione, per migliorare la precisione.
  • Modular RAG: compone la pipeline a partire da componenti intercambiabili come web search, lookup SQL o chiamate API, e può iterare tra retrieval e generazione.
  • Graph RAG: costruisce un knowledge graph a partire dal corpus e recupera subgraph di entità correlate, il che può produrre risposte più contestuali su dati connessi.
  • Agentic RAG: lascia che sia il modello linguistico a decidere quando e cosa recuperare, spesso attraverso più strumenti, prima di produrre una risposta finale.

Disaccoppiando l'archiviazione della conoscenza dal motore di ragionamento, la RAG è diventata un building block fondamentale per le applicazioni IA in produzione che devono essere accurate, aggiornate e verificabili. La ricerca originale è descritta in Lewis et al., "Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks" (2020), e le best practice attuali sono documentate in framework come LlamaIndex e LangChain.

Frequently Asked Questions

How is RAG different from fine-tuning a language model?
Fine-tuning bakes new knowledge and behavior into a model's weights by continuing training on example data, which is expensive and must be repeated whenever the source material changes. RAG leaves the model unchanged and instead supplies relevant documents at inference time, so knowledge can be updated by simply editing the search index. The two approaches are complementary and are often combined in production systems.
What is a vector database and why does RAG need one?
A vector database stores documents (or chunks of them) as numerical embeddings produced by an embedding model. RAG needs it because retrieving by meaning, rather than exact keywords, requires comparing the query's embedding to every candidate's embedding and returning the nearest matches. Specialized vector stores such as FAISS, Pinecone, Weaviate, and pgvector make this nearest-neighbor search fast at scale.
Does RAG eliminate hallucinations?
No system fully eliminates hallucinations, but RAG significantly reduces them by forcing the model to answer from supplied context. Errors can still occur if the retriever returns irrelevant or low-quality chunks, if the source documents themselves are wrong, or if the model misinterprets the retrieved text. Best-practice pipelines add re-ranking, citation checks, and guardrails to catch these cases.
What kind of data can a RAG system search over?
Almost any text-based corpus: PDFs, wikis, help-center articles, code repositories, product catalogs, legal contracts, internal chat logs, and web pages. After appropriate parsing and chunking, the content is embedded and indexed, and the same RAG pipeline can serve many domains. Multimodal RAG extensions can also retrieve images, tables, and audio.