La Retrieval-Augmented Generation (RAG) è una tecnica di IA che recupera documenti pertinenti da una knowledge base prima di generare una risposta, ancorando le risposte a fonti reali anziché alla memoria del modello. Invece di basarsi sugli schemi incorporati nei pesi del modello, RAG recupera testo effettivo e lo usa come prova quando compone una risposta. Il risultato è un'IA in grado di rispondere a domande su documenti mai visti durante l'addestramento, con citazioni che può indicare.

Passaggio 1: chunking e indicizzazione, preparare la knowledge base.

Questo passaggio di pre-elaborazione avviene offline, prima che un utente ponga una domanda. Il risultato è un indice ricercabile in cui ogni blocco può essere recuperato per somiglianza semantica anziché per corrispondenza esatta di parole chiave. La qualità del chunking influenza direttamente la precisione del recupero; documenti divisi male producono blocchi che mescolano argomenti non correlati e restituiscono corrispondenze rumorose e irrilevanti al momento della query.

Quando un utente invia una query, il sistema converte quella query in un embedding vettoriale usando lo stesso modello di embedding applicato durante l'indicizzazione. Poi calcola i punteggi di somiglianza tra il vettore della query e ogni vettore di blocco nell'indice, restituendo i primi k blocchi semanticamente più simili da inoltrare.

Immaginalo come un bibliotecario che ascolta la tua domanda, entra tra gli scaffali e torna con i cinque libri più pertinenti anziché recitare a memoria l'intera collezione. Il passaggio di recupero non richiede sovrapposizione di parole chiave; associa il significato. Una query su «perché il rinnovo del mio contratto è stato rifiutato» può far emergere un passaggio sulle «clausole di risoluzione dell'accordo» anche senza una sola parola condivisa.

RAG recupera la conoscenza al momento della query; il fine-tuning la incorpora nei pesi del modello. Non sono approcci in competizione per lo stesso compito: risolvono problemi fondamentalmente diversi e la scelta tra loro richiede di capire che tipo di problema hai davvero.

Ideale per

  • RAG: conoscenza dinamica, privata o verificabile; informazioni che cambiano di frequente; ambienti sensibili alla compliance; librerie personali di documenti.
  • Fine-tuning: adattare lo stile, il tono o il formato di output di un modello a un dominio fisso; attività in cui la coerenza comportamentale conta più dell'attualità fattuale.

Un database vettoriale memorizza embedding e supporta la ricerca per somiglianza. RAG è un'architettura completa che usa un database vettoriale come uno dei diversi componenti. Confondere i due concetti è uno degli equivoci più comuni tra gli sviluppatori nuovi in questo ambito, e la confusione ha conseguenze pratiche per chiunque cerchi di costruire un sistema funzionante.

La distinzione è concreta. Un database vettoriale risponde alla domanda «quali blocchi sono più simili a questa query?». La retrieval-augmented generation usa quella risposta come passaggio intermedio, quindi invia i blocchi recuperati a un modello linguistico che sintetizza una risposta in linguaggio naturale. Avere un database vettoriale ti dà la capacità di recupero; avere RAG ti dà una pipeline completa di domande e risposte costruita sopra quel livello di recupero.

L'implicazione pratica: se un prodotto afferma di «usare la ricerca vettoriale» o di «incorporare i tuoi documenti», chiedi se genera anche risposte a partire dal contesto recuperato. La ricerca vettoriale restituisce un elenco di passaggi pertinenti; un sistema di retrieval-augmented generation prende quei passaggi e compone una risposta diretta. I due concetti sono correlati, ma operano a livelli di astrazione diversi e uno non implica l'altro.

I passaggi recuperati e la domanda vengono forniti al modello linguistico per una bozza di risposta. Verifica le affermazioni importanti e conserva i collegamenti agli originali. La ricerca può omettere informazioni e la generazione travisarle; RAG non garantisce correttezza.

Articoli correlati
Fonti

Esplora la directory degli strumenti →