Retrieval-Augmented Generation (RAG)
La Retrieval-Augmented Generation è un pattern che ancora l'output di un modello linguistico a documenti recuperati al momento della query da un archivio di conoscenza esterno, invece di affidarsi solo alla memoria parametrica del modello. I passaggi recuperati vengono inseriti nel prompt come contesto, così le risposte possono citare dati aggiornati, privati o di dominio che il modello non ha mai visto in addestramento. La RAG riduce le allucinazioni e permette di aggiornare la conoscenza modificando l'indice anziché ri-addestrare il modello.
Embedding
Un embedding è un vettore di numeri in virgola mobile a lunghezza fissa che rappresenta il significato di un testo (o altro dato) in uno spazio continuo, dove input semanticamente simili si mappano in vettori vicini. I sistemi di retrieval embeddano documenti e query con lo stesso modello, così la similarità si misura come distanza. Le dimensionalità comuni vanno da 384 (all-MiniLM-L6-v2) a 1536 o 3072 (OpenAI text-embedding-3).
Vector Database
Un vector database memorizza gli embedding insieme ai metadati di origine e supporta la ricerca per vicini più prossimi approssimati (ANN) su vettori ad alta dimensionalità. Alimenta lo step di retrieval della RAG restituendo i chunk i cui embedding sono più vicini a quello della query. Esempi sono pgvector, Pinecone, Weaviate, Qdrant, Milvus e Redis con RediSearch.
Chunk
Un chunk è un passaggio autosufficiente di testo sorgente, prodotto suddividendo un documento in modo che ogni pezzo entri nel contesto del modello di embedding e rappresenti una singola idea coerente. Dimensione e sovrapposizione (overlap) dei chunk sono parametri di tuning fondamentali: troppo grandi diluiscono la rilevanza, troppo piccoli perdono contesto. Ogni chunk viene embeddato e memorizzato come singola unità recuperabile.
Chunking
Il chunking è il processo di segmentazione dei documenti in passaggi recuperabili prima dell'embedding. Le strategie vanno da finestre di token a dimensione fissa con overlap a una suddivisione consapevole della struttura su titoli, frasi o confini semantici. Un buon chunking tiene insieme i contenuti correlati ed evita tagli a metà di un'idea, migliorando direttamente la qualità del retrieval.
Ricerca Semantica
La ricerca semantica recupera i documenti per significato anziché per corrispondenza esatta di parole chiave, usando la similarità vettoriale tra l'embedding della query e quello dei documenti. Trova risultati rilevanti anche quando la formulazione differisce dalla query, a differenza della ricerca lessicale. È la metà a retrieval denso (dense) di gran parte dei sistemi RAG ibridi.
Ricerca Lessicale
La ricerca lessicale (o keyword/sparse) ordina i documenti per sovrapposizione esatta e pesata dei termini con la query, usando algoritmi come BM25 o TF-IDF. Eccelle con identificatori esatti, codici e termini rari che gli embedding possono sfumare. I sistemi RAG la combinano spesso con la ricerca semantica per ottenere sia corrispondenze precise sia per significato.
Ricerca Ibrida
La ricerca ibrida fonde retrieval lessicale (stile BM25) e semantico (vettoriale), poi unisce le due liste ordinate in una sola. La Reciprocal Rank Fusion (RRF) è un modo comune e senza punteggi per combinarle. La ricerca ibrida supera tipicamente ciascun metodo da solo perché ognuno compensa i punti ciechi dell'altro.
Reciprocal Rank Fusion (RRF)
La Reciprocal Rank Fusion è un metodo per combinare più liste ordinate in un unico ranking usando solo la posizione di rango di ciascun documento, con punteggio dato dalla somma di 1/(k + rango) su tutte le liste. Poiché ignora i punteggi grezzi, fonde risultati lessicali e vettoriali su scale diverse senza normalizzazione. Una costante k tipica è 60.
Approximate Nearest Neighbour (ANN)
La ricerca Approximate Nearest Neighbour trova vettori vicini a quello della query senza scansionare ogni vettore, sacrificando un po' di recall per un grande guadagno di velocità. Strutture come HNSW e IVF rendono pratica la ricerca sub-lineare su milioni di vettori. Il compromesso accuratezza/latenza si regola con parametri dell'indice come ef_search o nprobe.
HNSW
Hierarchical Navigable Small World è un indice ANN basato su grafi che organizza i vettori in grafi di prossimità a livelli e naviga avidamente dal livello grossolano a quello fine per trovare i vicini più prossimi. Offre recall elevato a bassa latenza ed è l'indice di default in pgvector, Qdrant, Weaviate e RediSearch. Costo di costruzione e memoria sono superiori a IVF, e i parametri chiave sono m, ef_construction ed ef_search.
Cosine Similarity
La similarità del coseno misura l'angolo tra due vettori, ignorandone la magnitudine, con 1.0 che indica direzione identica e 0 che indica ortogonalità. È la metrica di similarità più comune per gli embedding di testo perché la direzione relativa cattura il significato meglio della distanza grezza. Molti vector store la espongono come distanza coseno, definita come 1 meno la similarità del coseno.
Re-ranking
Il re-ranking è uno step di scoring di seconda fase che riordina un insieme iniziale di candidati con un modello più costoso e accurato, prima di passare i migliori risultati al generatore. Un re-ranker cross-encoder legge query e passaggio insieme, catturando interazioni che un singolo embedding non coglie. Migliora nettamente la precisione in cima alla lista al costo di latenza aggiuntiva.
Cross-Encoder
Un cross-encoder è un modello che riceve query e passaggio candidato insieme come un unico input e produce un singolo punteggio di rilevanza, invece di embeddarli separatamente. Poiché presta attenzione a entrambi i testi, è molto più accurato del bi-encoder usato per il retrieval di prima fase, ma troppo lento per scorere l'intero corpus. Viene quindi usato per il re-ranking di un piccolo insieme di candidati.
Bi-Encoder
Un bi-encoder embedda query e ciascun documento separatamente nello stesso spazio vettoriale, così i vettori dei documenti possono essere pre-calcolati e indicizzati per una rapida ricerca dei vicini al momento della query. Scala a milioni di documenti ma è meno preciso di un cross-encoder perché i due testi non interagiscono mai durante l'encoding. È il retriever standard di prima fase nella RAG.
Top-k
Top-k è il numero di chunk con punteggio più alto che un retriever restituisce per una query, che formano poi la finestra di contesto per il generatore. Un k maggiore aumenta il recall ma aggiunge rumore, costo e rischio di sforare il budget di contesto; un k minore è preciso ma può perdere prove di supporto. È uno dei parametri più influenti ed economici da regolare.
Finestra di Contesto
La finestra di contesto è il numero massimo di token che un modello può considerare in una singola richiesta, includendo system prompt, contesto recuperato, cronologia della conversazione e l'output del modello. La RAG deve far entrare i passaggi recuperati in questo budget insieme alle istruzioni. Superarlo forza troncamento o riassunto e può scartare prove in modo silenzioso.
Grounding
Il grounding è la pratica di vincolare la risposta di un modello alle informazioni presenti nel contesto fornito, così che le affermazioni siano tracciabili alle fonti recuperate. Un prompt con grounding istruisce il modello a rispondere solo dal contesto e a dichiararlo quando il contesto è insufficiente. Il grounding è ciò che rende la RAG citabile e si misura con la faithfulness.
Allucinazione
Un'allucinazione è un output del modello fluente e sicuro ma fattualmente errato o non supportato da alcuna fonte. Nella RAG le allucinazioni nascono quando il modello ignora o contraddice il contesto recuperato, o quando nessun contesto rilevante è stato recuperato. Le mitigazioni includono prompt di grounding rigorosi, valutazione della faithfulness e un percorso esplicito di "non lo so".
Faithfulness
La faithfulness misura quanto una risposta generata sia supportata dal contesto recuperato, indipendentemente dal fatto che sia anche corretta. Una risposta faithful non fa alcuna affermazione che il contesto non implichi. È una metrica RAG fondamentale (ad esempio in RAGAS) ed è la prima difesa contro le allucinazioni nei sistemi con grounding.
Answer Relevancy
L'answer relevancy misura quanto una risposta generata affronti davvero la domanda dell'utente, penalizzando risposte incomplete, evasive o gonfiate di dettagli irrilevanti. Si valuta separatamente dalla faithfulness, perché una risposta può essere faithful al contesto e tuttavia non rispondere alla domanda. RAGAS la stima generando domande dalla risposta e confrontandole con quella originale.
Context Precision
La context precision misura quanta parte del contesto recuperato sia effettivamente rilevante per la domanda, premiando i retriever che pongono i passaggi utili sopra il rumore. Una bassa precision costringe il generatore a separare il segnale dal disturbo, aumentando costo e rischio di allucinazione. È una metrica di qualità del retrieval complementare al context recall.
Context Recall
Il context recall misura se il contesto recuperato contenga tutte le informazioni necessarie a produrre la risposta di riferimento. Un recall basso significa che i passaggi giusti non sono mai stati recuperati, quindi nemmeno un generatore perfetto può rispondere correttamente. Isola i fallimenti del retrieval da quelli della generazione.
RAGAS
RAGAS (Retrieval-Augmented Generation Assessment) è un framework open source per valutare pipeline RAG con metriche come faithfulness, answer relevancy, context precision e context recall, spesso calcolate con un LLM come giudice. Lavora a partire da un dataset di domande, risposte, contesti e ground truth opzionali. È ampiamente usato per presidiare la qualità RAG in CI.
LLM-as-Judge
L'LLM-as-judge è una tecnica di valutazione che usa un modello linguistico per assegnare punteggi o confrontare output rispetto a criteri come faithfulness, rilevanza o correttezza, sostituendo una valutazione umana lenta o non disponibile. Scala la valutazione ma introduce bias propri (di posizione, di verbosità, di auto-preferenza), quindi i giudici vanno calibrati e idealmente diversi dal modello sotto test. Sta alla base di gran parte delle metriche RAG automatiche.
Prompt Template
Un prompt template è una struttura testuale parametrizzata che combina istruzioni fisse con slot per la query dell'utente e il contesto recuperato, producendo il prompt finale inviato al modello. Tenerlo in un unico punto rende coerenti e testabili regole di grounding, formattazione ed esempi few-shot. Librerie di templating e strumenti di prompt management li versionano insieme al codice.
System Prompt
Un system prompt è l'istruzione di livello superiore che definisce ruolo, ambito, formato di output e guardrail di un modello per l'intera conversazione, separata dai singoli turni utente. Nella RAG impone tipicamente il grounding ("rispondi solo dal contesto") e il comportamento di citazione. È la leva principale per controllare il comportamento dell'assistente senza fine-tuning.
Retriever
Il retriever è il componente che, data una query, restituisce i chunk più rilevanti dall'archivio di conoscenza, di solito embeddando la query ed eseguendo ricerca ANN, eventualmente con scoring ibrido e re-ranking. La sua qualità fissa il tetto dell'intera pipeline: il generatore non può usare prove che il retriever non ha mai fatto emergere. È il punto in cui la qualità RAG si vince o si perde più spesso.
Generatore
Il generatore è il modello linguistico che produce la risposta finale a partire dalla query dell'utente più il contesto recuperato e le istruzioni del prompt. Il suo compito è sintetizzare e citare, non ricordare fatti dall'addestramento. Il comportamento del generatore è plasmato dal system prompt, dalla qualità del contesto e dai parametri di decoding come la temperatura.
Pipeline di Indicizzazione
La pipeline di indicizzazione (ingestion) è il processo offline che carica i documenti sorgente, li pulisce e li suddivide in chunk, calcola gli embedding e scrive chunk, vettori e metadati nello store. Gira prima del momento della query e viene rieseguita quando le fonti cambiano. Un'indicizzazione idempotente e incrementale mantiene lo store aggiornato senza ricostruzioni complete.
Query Expansion
La query expansion riscrive o arricchisce la query dell'utente per migliorare il retrieval, ad esempio aggiungendo sinonimi, generando sotto-domande o producendo più parafrasi i cui risultati vengono uniti. Multi-query retrieval e HyDE sono varianti comuni. Aumenta il recall per query brevi o ambigue al costo di chiamate di retrieval aggiuntive.
HyDE
HyDE (Hypothetical Document Embeddings) è una tecnica di query expansion in cui il modello prima abbozza una risposta ipotetica alla domanda, poi embedda quella bozza e recupera documenti reali simili ad essa. La risposta sintetica spesso si colloca nello spazio vettoriale più vicino ai passaggi rilevanti rispetto alla query originale stringata. Può migliorare il recall per domande poco specificate.
Maximal Marginal Relevance (MMR)
La Maximal Marginal Relevance è una strategia di selezione che sceglie risultati bilanciando rilevanza rispetto alla query e novità rispetto ai risultati già selezionati, riducendo la ridondanza nell'insieme restituito. È utile quando i migliori hit vettoriali sono quasi-duplicati che sprecano la finestra di contesto. Un parametro lambda bilancia rilevanza e diversità.
Filtraggio per Metadati
Il filtraggio per metadati limita la ricerca vettoriale ai chunk che corrispondono ad attributi strutturati come fonte, lingua, data, tenant o livello di accesso, applicato prima o insieme alla ricerca per similarità. Impone correttezza e sicurezza (ad esempio l'isolamento dei tenant) e restringe lo spazio di ricerca. Combinare filtri e ANN è talvolta detto ricerca filtrata o hybrid-metadata.
Multi-Tenancy
La multi-tenancy è la progettazione di un sistema RAG per servire più clienti isolati da un'infrastruttura condivisa garantendo che un tenant non possa mai recuperare i documenti di un altro. Si impone di solito con un filtro tenant obbligatorio su ogni query più namespace o partizioni per tenant. Sbagliare l'isolamento è una classe di bug da fuga di dati.
Agentic RAG
L'agentic RAG avvolge il retrieval in un loop di agente in cui il modello può decidere se recuperare, riformulare la query, recuperare di nuovo o invocare altri tool, anziché recuperare una sola volta. Gestisce domande multi-hop e query ambigue dove la RAG a colpo singolo fallisce. Il costo è maggiore latenza, complessità e la necessità di limitare il loop.
Multi-Hop Retrieval
Il multi-hop retrieval risponde a domande che richiedono di concatenare prove da più documenti, recuperando in modo iterativo dove le scoperte di ogni passo informano la query successiva. Il retrieval a singolo passaggio spesso manca i fatti-ponte di cui tali domande hanno bisogno. Loop agentici e decomposizione della query sono implementazioni tipiche.
Contextual Retrieval
Il contextual retrieval è una tecnica che antepone a ogni chunk un breve riassunto specifico del chunk relativo al documento circostante prima dell'embedding, così che passaggi isolati conservino il contesto che altrimenti perderebbero. Introdotto da Anthropic, riduce in modo misurabile i fallimenti di retrieval. Scambia un costo LLM aggiuntivo in fase di ingestion per un recall migliore.
GraphRAG
Il GraphRAG arricchisce il retrieval con un grafo di conoscenza di entità e relazioni estratte dal corpus, abilitando query che richiedono struttura globale o ragionamento multi-entità anziché passaggi isolati. Può rispondere a domande su "temi nell'intero corpus" che la ricerca vettoriale piatta gestisce male. Aggiunge costo e complessità di costruzione del grafo.
Prompt Injection
La prompt injection è un attacco in cui istruzioni malevole inserite in contenuto recuperato o fornito dall'utente dirottano il modello facendogli ignorare il suo system prompt o compiere azioni indesiderate. Nella RAG è acuta perché documenti non fidati entrano nel prompt come contesto. Le difese includono filtraggio di input/output, separazione dei privilegi e trattare il testo recuperato come dati, non come istruzioni.
Token
Un token è l'unità che un modello linguistico legge e genera, tipicamente un frammento sub-parola; il testo inglese conta in media circa quattro caratteri per token. Il conteggio dei token determina sia il costo sia il budget della finestra di contesto in cui la RAG deve far entrare il proprio contesto. La tokenizzazione differisce per modello, quindi lo stesso testo costa un numero diverso di token tra provider.
Temperatura
La temperatura è un parametro di decoding che controlla la casualità dell'output di un modello: valori più bassi lo rendono più deterministico e focalizzato, valori più alti più vario e creativo. Le risposte RAG con grounding usano di solito una temperatura bassa (vicina a 0) per restare faithful e riproducibili. Non influisce sul retrieval, solo sulla generazione.
Caching
Nella RAG il caching memorizza artefatti riutilizzabili per ridurre costo e latenza: le cache di embedding evitano di ri-embeddare testo invariato, le cache di retrieval riutilizzano risultati per query ripetute e il prompt/KV caching riusa un prefisso di prompt stabile tra le chiamate. Ogni cache richiede una strategia di invalidazione legata alla freschezza della fonte. Il prompt caching è particolarmente efficace quando si riusa un ampio contesto di grounding.
Ground Truth
La ground truth è la risposta di riferimento verificata da un umano (ed eventualmente il contesto di riferimento) per una domanda di valutazione, rispetto a cui si valuta l'output di un sistema. Àncora metriche come context recall e correttezza della risposta che necessitano di un target noto-corretto. Costruire un piccolo insieme di ground truth di alta qualità è la base di una valutazione RAG affidabile.