Che cos'è il RAG? Retrieval-Augmented Generation spiegato in modo semplice
Il RAG (retrieval-augmented generation) è un modo per far rispondere a un modello di AI usando le tue informazioni. Quando qualcuno fa una domanda, la tua app cerca prima nei tuoi documenti i passaggi più pertinenti, poi li consegna al modello insieme alla domanda. Il modello scrive la risposta a partire da quel testo, invece di affidarsi solo a ciò che ha appreso durante l'addestramento.
Perché il RAG conta quando crei con l'AI
Un grande modello linguistico sa molto del mondo in generale, ma nulla della tua attività: i tuoi prezzi, le tue politiche, il manuale del prodotto, i ticket di assistenza della settimana scorsa. Inoltre ha una data di cutoff dell'addestramento, quindi non conosce nulla di recente. Se gli chiedi comunque, può produrre una risposta sicura di sé, plausibile e sbagliata.
Per risolvere il problema hai tre opzioni generali:
| Approccio | Cosa fa | Adatto a |
|---|---|---|
| Mettere tutto nel prompt | Invia tutti i tuoi documenti con ogni domanda | Piccole quantità di testo, poche pagine |
| RAG | Cerca nei tuoi documenti e invia solo le parti pertinenti | Raccolte grandi o che cambiano: centri di assistenza, manuali, appunti |
| Fine-tuning | Addestra ulteriormente il modello su esempi | Tono, formato e compiti ripetuti, non fatti che cambiano |
I modelli moderni accettano prompt lunghi, quindi per una FAQ breve la prima opzione spesso va bene. Il RAG si giustifica quando hai più testo di quanto vuoi inviare ogni volta, perché ogni parola inviata costa denaro e tempo (vedi come vengono addebitate le API degli LLM).
Se stai costruendo una funzione « chatta con i nostri documenti », un assistente di supporto o uno strumento di conoscenza interna, quasi certamente stai costruendo una forma di RAG.
Un'analogia quotidiana
Immagina un esame a libri aperti. Uno studente che deve rispondere a memoria può ricordare male o bluffare. Uno studente che può sfogliare prima le pagine giuste, leggerle e poi rispondere è molto più affidabile, purché trovi le pagine giuste.
- Lo studente è il modello linguistico.
- Il libro di testo sono i tuoi documenti.
- Sfogliare le pagine giuste è il recupero (retrieval).
- Scrivere la risposta da quelle pagine è la generazione.
Il RAG è la versione a libri aperti. E, come nell'esame, la qualità della risposta dipende molto dal fatto che siano state trovate le pagine giuste.
Come funziona il RAG, passo dopo passo
Una configurazione RAG tipica ha due fasi.
Preparazione dei documenti (fatta in anticipo):
- Raccogli il materiale di partenza: articoli di aiuto, PDF, politiche, dati dei prodotti.
- Dividi in chunk: spezza i documenti lunghi in pezzi più piccoli, spesso di alcuni paragrafi, così la ricerca può restituire solo la parte pertinente.
- Crea gli embedding di ogni chunk: invialo a un modello di embedding, che trasforma il testo in un embedding, cioè un lungo elenco di numeri che ne cattura il significato. Testi su cose simili finiscono con numeri simili.
- Salva i chunk e i loro embedding in un database che sa cercare per somiglianza (spesso chiamato database vettoriale o indice vettoriale).
Rispondere a una domanda (fatto ogni volta):
- Crea l'embedding della domanda con lo stesso modello di embedding.
- Recupera i chunk i cui embedding sono più vicini a quello della domanda, ad esempio i primi cinque.
- Costruisci il prompt: istruzioni, i chunk recuperati e la domanda.
- Genera: il modello linguistico scrive una risposta basata su quei chunk, idealmente citando quelli usati.
La ricerca per significato è ciò che fa funzionare tutto: una domanda su « farmi restituire i soldi » può trovare un chunk intitolato « Politica di rimborso » anche se non hanno nessuna parola in comune.
Un esempio pratico: l'assistente di una palestra
Supponiamo che una palestra abbia 40 articoli di aiuto e voglia un assistente in chat sul suo sito. Un iscritto chiede: « Posso sospendere l'abbonamento mentre viaggio? »
L'app crea l'embedding della domanda e recupera i tre chunk più vicini. Uno di essi dice:
Sospensione dell'abbonamento: gli iscritti con abbonamento mensile
possono sospendere l'abbonamento fino a 2 mesi all'anno.
Richiedila alla reception o nell'app almeno 7 giorni prima
dell'inizio della sospensione.
Il prompt inviato al modello somiglia a questo:
Sei l'assistente di aiuto di Northside Gym.
Rispondi solo in base alle fonti qui sotto. Se la risposta non è
in esse, dillo e suggerisci di contattare la reception.
Indica quale fonte hai usato.
[Fonte 1: Sospensione dell'abbonamento] Gli iscritti con abbonamento mensile possono sospendere...
[Fonte 2: Disdire l'abbonamento] ...
[Fonte 3: Ingressi ospite] ...
Domanda: Posso sospendere l'abbonamento mentre viaggio?
E il modello risponde: « Sì: con l'abbonamento mensile puoi sospendere l'iscrizione fino a due mesi all'anno. Richiedila alla reception o nell'app almeno 7 giorni prima (fonte: Sospensione dell'abbonamento). »
La palestra non ha addestrato nulla di nuovo. Quando cambia la politica di sospensione, aggiorna l'articolo, l'app ricalcola l'embedding di quel chunk e la risposta successiva ne tiene conto.
Termini chiave
| Termine | Significato |
|---|---|
| LLM | Large language model: l'AI che scrive la risposta. Vedi cos'è un LLM. |
| Embedding | Un elenco di numeri che rappresenta il significato di un testo. |
| Modello di embedding | Un modello che produce embedding. Di solito è separato dal modello di chat ed è molto più economico. |
| Chunk | Un pezzo di documento, dimensionato in modo da poter essere recuperato da solo. |
| Database vettoriale / ricerca vettoriale | Archiviazione che trova elementi con embedding simili. Alcuni database normali lo offrono: Postgres, ad esempio, tramite l'estensione pgvector. |
| Top-k | Quanti chunk vengono recuperati per ogni domanda. |
| Ricerca ibrida | Combinare la ricerca per significato con la normale ricerca per parole chiave, utile per termini esatti come i codici prodotto. |
| Finestra di contesto | La quantità massima di testo che un modello può accettare in una richiesta. |
| Ancoraggio / citazioni | Collegare la risposta a fonti specifiche recuperate e mostrarle. |
Idee sbagliate comuni
- « Il RAG addestra il modello sui miei dati. » No. Il modello non cambia; legge semplicemente altro testo al momento della domanda.
- « Con il RAG non ci sono più allucinazioni. » Ce ne sono meno. Se il recupero non trova il chunk giusto, o se la risposta non è nei tuoi documenti, il modello può comunque tirare a indovinare. Digli di rispondere « non lo so » e prova con domande di cui conosci già la risposta.
- « Mi serve un database vettoriale speciale. » Spesso no. Per quantità modeste di dati, un'estensione vettoriale sul database che già hai, o persino una semplice ricerca per parole chiave, può bastare.
- « I chunk più grandi sono migliori. » Troppo grandi e mandi molto testo non pertinente (più costi, più confusione); troppo piccoli e un chunk perde il contesto che lo rendeva significativo. Aspettati di doverli regolare.
- « Carica semplicemente tutto. » Documenti obsoleti, duplicati o contraddittori producono risposte contraddittorie. Ripulire il materiale di partenza è spesso il miglioramento più grande che puoi fare.
- « Chiunque può vedere qualsiasi documento. » Solo se lo costruisci così. Se alcuni documenti sono privati per certi utenti, la ricerca stessa deve filtrare in base a chi chiede, altrimenti l'assistente può citare i dati di un cliente a un altro.
Quanto costa
Una funzione RAG ha di solito tre costi correnti: creare gli embedding dei tuoi documenti (piccolo e per lo più una tantum), creare l'embedding di ogni domanda (minimo) e la chiamata al modello linguistico (il costo principale, che cresce con il numero di chunk inviati). A questi si aggiunge lo spazio di archiviazione nel tuo database. Il tuo fornitore di AI addebita questi costi sul tuo account, quindi imposta un limite di spesa lì.
Cosa chiedere al tuo builder AI
- « Prima di costruire il RAG, verifica: il nostro contenuto è abbastanza piccolo da includerlo semplicemente nel prompt? »
- « Dividi gli articoli di aiuto in chunk di alcuni paragrafi, conserva il titolo e il link alla fonte di ogni chunk e salva gli embedding nel nostro database. »
- « Usa la ricerca ibrida, cioè per significato più parole chiave, così i codici prodotto corrispondono ancora. »
- « Dì al modello di rispondere solo in base alle fonti recuperate, di segnalare quando non sa e di mostrare le fonti sotto ogni risposta. »
- « Cerca solo nei documenti che l'utente connesso può vedere. »
- « Ricalcola automaticamente l'embedding di un documento ogni volta che viene modificato. »
- « Tieni la chiave del fornitore di AI sul server, in un segreto, mai nel browser. »
- « Registra ogni domanda, i chunk recuperati e la risposta, così posso rivedere le risposte sbagliate. »
Il RAG in Mythex
Mythex non include un prodotto RAG o di base di conoscenza già pronto. Quello che fa è scrivere il codice di uno di questi dentro la tua app: porti i tuoi documenti e la tua chiave del fornitore di AI, conservata come segreto del progetto, e l'agente costruisce le parti di recupero e di chat, usando il database Postgres del progetto per l'archiviazione. L'uso del fornitore viene addebitato sul tuo account presso di lui, non sui crediti Mythex. La documentazione suggerisce di iniziare con una sola funzione AI semplice e aggiungere il RAG quando quella funziona: vedi creare un'app con AI e le nostre guide su come creare un'app chatbot AI e come aggiungere funzioni AI alla tua app.
Domande
Che cos'è il RAG in parole semplici?
Il RAG (retrieval-augmented generation) è un modo per far rispondere un modello di AI usando le tue informazioni. Prima che il modello risponda, la tua app cerca nei tuoi documenti i passaggi più pertinenti alla domanda e li inserisce nel prompt, così la risposta si basa su quel testo e non solo su ciò che il modello ha imparato durante l'addestramento.
Il RAG addestra l'AI sui miei dati?
No. Il RAG non cambia affatto il modello. Cerca il testo pertinente nel momento in cui viene posta una domanda e lo passa al modello insieme alla domanda. Se aggiorni un documento, la risposta successiva può usare subito la nuova versione.
Il RAG è la stessa cosa del fine-tuning?
No. Il fine-tuning cambia il comportamento di un modello addestrandolo ulteriormente su esempi, il che è più lento ed è più adatto a stile o formato. Il RAG fornisce al modello dei fatti da leggere al momento della domanda, il che è meglio per conoscenze che cambiano o che devono essere citate con precisione.
Il RAG elimina le allucinazioni dell'AI?
Le riduce ma non le elimina. Se la ricerca trova i passaggi sbagliati, o se la risposta non è nei tuoi documenti, il modello può comunque tirare a indovinare. Le buone app RAG dicono al modello di segnalare quando non sa e mostrano le fonti usate.