Retrieval Augmented Generation (RAG)
La generazione aumentata dal recupero (RAG) recupera passaggi pertinenti da una base di conoscenza esterna e li aggiunge al prompt di un LLM, così le risposte si basano su fonti aggiornate, private e citabili.
La generazione aumentata dal recupero (RAG) è una tecnica in cui un modello linguistico di grandi dimensioni (LLM) risponde a una domanda usando brani recuperati al momento della query da una fonte di conoscenza esterna e inseriti nel prompt insieme alla domanda. I dati di addestramento di un LLM si fermano a una data limite e non hanno mai incluso i documenti interni di un'azienda; senza retrieval, quindi, il modello non dispone dei fatti oppure ne inventa di plausibili, un errore noto come allucinazione. Il termine deriva dal paper del 2020 Generazione aumentata dal recupero per attività NLP a elevato contenuto di conoscenza di Patrick Lewis e colleghi di Facebook AI Research, che abbinava un generatore BART preaddestrato a un retriever neurale su un indice vettoriale denso di Wikipedia e stabiliva lo stato dell'arte in tre attività di question answering open-domain. Oggi il termine indica qualsiasi sistema che prima recupera informazioni e poi genera una risposta.
Come funziona una pipeline RAG#
RAG si articola in due fasi. L'indicizzazione avviene in anticipo: i documenti vengono suddivisi in brani, ad esempio con il chunking semantico; ogni brano viene convertito in un embedding e i vettori vengono archiviati in un database vettoriale. Al momento della query, la domanda viene convertita in embedding usando lo stesso modello, la ricerca vettoriale restituisce i brani più vicini e il sistema crea un prompt con istruzioni, quei brani e la domanda. L'LLM scrive quindi una risposta fondata sul testo fornito e può citare il brano a supporto di ogni affermazione.
I sistemi di produzione aggiungono passaggi attorno a questo nucleo. La ricerca ibrida combina la similarità vettoriale con la corrispondenza delle parole chiave, così da non trascurare termini esatti come i numeri di parte; un reranker riordina i candidati principali con un modello più preciso, mentre il recupero contestuale fa anteporre a un LLM una breve nota a ogni blocco, collocandolo nel contesto del documento prima dell'indicizzazione. Framework come LangChain e LlamaIndex integrano questi componenti.
I passaggi di recupero e arricchimento si implementano con poche righe di Python usando la libreria Sentence Transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("sentence-transformers/all-MiniLM-L6-v2")
# Knowledge base: passages the LLM never saw during training
passages = [
"Badge access to Building C requires a safety briefing completed within the last 12 months.",
"The cafeteria in Building A serves breakfast from 7:00 to 9:30 on weekdays.",
"Forklift operators must renew their certification every three years.",
]
passage_embeddings = model.encode(passages)
# Retrieve: embed the question and keep the most similar passage
question = "How often do I need to redo forklift training?"
scores = model.similarity(model.encode(question), passage_embeddings)[0]
context = passages[int(scores.argmax())]
# Augment: put the retrieved passage in the prompt the LLM will answer from
prompt = f"Answer using only this context.\nContext: {context}\nQuestion: {question}"
print(prompt)Il codice stampa un prompt che contiene il brano sulla certificazione per la guida dei carrelli elevatori, che corrisponde alla domanda per significato: la domanda riguarda la ripetizione della formazione, mentre il brano parla del rinnovo della certificazione. Qualsiasi LLM può rispondere usando quel prompt e i brani possono cambiare ogni giorno senza riaddestrare il modello.
RAG, fine-tuning e contesto lungo a confronto#
- Fine-tuning: aggiorna i pesi del modello con nuovi esempi. Modifica bene il comportamento, lo stile e il formato dell'output, ma è un modo lento per aggiungere fatti che cambiano spesso e non lascia fonti da citare; perciò molti sistemi usano il fine-tuning per il formato e RAG per le conoscenze.
- Finestre di contesto lunghe: i modelli che accettano un milione di token possono leggere direttamente un ampio insieme di documenti, ma ogni query ha un costo per ogni token e la precisione diminuisce man mano che gli input si allungano, un effetto noto come degrado del contesto. RAG invia solo i passaggi pertinenti.
Diverse varianti estendono lo schema di base: GraphRAG recupera informazioni da un grafo della conoscenza, RAG agentico lascia che un agente decida quando e dove cercare e la RAG multimodale recupera anche immagini, video e audio, oltre al testo.
Dove si usa RAG#
- Chatbot aziendali: gli assistenti interni rispondono basandosi su policy, wiki e ticket di supporto precedenti e linkano il paragrafo da cui proviene ogni risposta.
- Assistenza clienti: prima di rispondere, gli assistenti recuperano il manuale relativo all'esatto modello del prodotto del cliente e la cronologia degli ordini di quel cliente.
- Assistenza sanitaria: gli assistenti clinici recuperano linee guida aggiornate e riferimenti ai farmaci, così le risposte rimandano a una fonte verificabile invece di basarsi sulla memoria del modello.
RAG risponde anche a domande sui video. Un LLM non può guardare ore di filmati per ogni domanda, quindi combinare RAG con la visione artificiale consente prima di trasformare i filmati in record consultabili. Ultralytics YOLO26 in modalità tracking riporta la classe, il riquadro e l'ID di tracking persistente di ogni oggetto in ogni fotogramma; una pipeline archivia questi dati in righe, così una domanda come «Quanti camion sono entrati al dock 3 stamattina?» recupera quelle righe anziché il video.
Perché le risposte RAG non sono corrette#
RAG può fallire in due punti. Un errore di retrieval si verifica quando il brano contenente la risposta non arriva mai al prompt, perché il chunking lo ha suddiviso, il modello di embedding non ha colto un sinonimo o il brano si è classificato appena sotto la soglia top-k; l'errore si misura con il recall a k su un insieme di domande di test. Un errore di generazione si verifica quando il brano corretto è arrivato, ma il modello lo ignora, lo interpreta male o lo contraddice. Le librerie di valutazione come Ragas misurano entrambi gli aspetti: il recall del contesto per il retriever e la fedeltà per il generatore, definita come la quota di affermazioni nella risposta supportate dal contesto recuperato.










