Un modello linguistico calcola la continuazione più probabile del testo che ha davanti. Dove quella continuazione coincide con il vero la risposta è giusta; dove non coincide, il testo esce comunque, scritto con la stessa scioltezza. La ricerca documentale messa davanti alla generazione serve a spostare il secondo caso, e di quanto lo sposti esiste un conto pubblicato dal 2020.
01Il problema, e quanti punti vale risolverlo
Patrick Lewis, Ethan Perez, Aleksandra Piktus e altri nove autori di Facebook AI Research, University College London e New York University hanno depositato Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks il 22 maggio 2020 (arXiv:2005.11401). Sul banco di prova Natural Questions RAG‑Sequence chiude a 44,5 di exact match. T5 da 11 miliardi di parametri, addestrato a rispondere a memoria senza documenti, si ferma a 36,6. Il generatore dietro a RAG è BART‑large, 406 milioni di parametri: circa ventisette volte più piccolo, quasi otto punti più accurato.
L'altra metà del vantaggio l'accuratezza non la misura. L'indice di RAG è un file: 21 milioni di passaggi di Wikipedia da 100 parole l'uno. Gli autori hanno sostituito il dump di dicembre 2016 con quello di dicembre 2018 e hanno chiesto al sistema chi fossero 82 capi di Stato e di governo cambiati nel frattempo. Con l'indice del 2016 il modello risponde giusto sul 70% delle cariche del 2016; con l'indice del 2018, sul 68% di quelle del 2018. Incrociati, gli stessi indici scendono al 12% e al 4%. In mezzo non c'è un passo di addestramento.
Il rovescio sta nella stessa tabella
Su TriviaQA il retriever DPR usato da solo, che estrae la risposta dal passaggio invece di generarla, chiude a 57,9 e supera RAG‑Sequence, fermo a 56,8. Comporre la risposta conviene dove la risposta va composta. Dove sta già scritta dentro a un passaggio di Wikipedia, estrarla costa meno e rende un punto in più.
Cosa non sposta il fine-tuning
Riaddestrare il modello sui documenti dell'organizzazione cambia il modo in cui scrive. La conoscenza resta ferma alla data dell'addestramento, e nessuna risposta si porta dietro il paragrafo da cui viene: i dati finiscono dentro ai pesi, e dai pesi al documento non si torna indietro. L'esperimento degli 82 capi di governo misura la differenza in un colpo solo: un indice si scambia in un pomeriggio, undici miliardi di parametri no.
Memoria parametrica e memoria non parametrica
Lewis e colleghi chiamano parametrica la conoscenza chiusa nei pesi del modello e non parametrica l'indice denso che il retriever interroga. La prima si aggiorna riaddestrando, la seconda riscrivendo un file. Le due convivono nella stessa risposta: il generatore vede il prompt e i passaggi recuperati insieme.
In sintesi
- 44,5 contro 36,6 di exact match su Natural Questions, con un generatore ventisette volte più piccolo (Lewis et al., 22 maggio 2020).
- Scambiando l'indice da Wikipedia 2016 a Wikipedia 2018, le risposte su 82 capi di governo si aggiornano senza riaddestrare.
- Su TriviaQA il solo DPR estrattivo batte RAG-Sequence, 57,9 contro 56,8.
02Le tre fasi, e cosa decide ciascuna
L'architettura sta in tre momenti, e i guasti si diagnosticano sapendo in quale dei tre sono nati.
- Indexing. I documenti vengono estratti dai loro formati, spezzati in frammenti e trasformati in vettori, poi archiviati in un database vettoriale. Avviene una volta, e si rifà quando i documenti cambiano.
- Retrieval. La domanda diventa un vettore con lo stesso modello usato per l'indice, e il database restituisce i frammenti più vicini. Nei test di Lewis i documenti latenti recuperati sono 5 o 10.
- Generation. I frammenti entrano nel prompt insieme alla domanda e alle istruzioni, e il modello scrive la risposta su quel materiale.
Il vincolo che regge tutto: la domanda e i documenti vanno trasformati in vettori dallo stesso modello. Cambiare modello di embedding senza rifare l'indice mette a confronto coordinate calcolate su due mappe diverse, e il retrieval restituisce frammenti a caso senza segnalare nulla.
Una domanda, dall'inizio alla fine
La domanda arriva in linguaggio naturale. Il modello di embedding la converte in un vettore. Il database confronta quel vettore con i vettori dei frammenti e restituisce i primi k, con k fra 3 e 10. Un re-ranker riordina i candidati. I frammenti sopravvissuti entrano nel prompt come contesto. Il generatore scrive la risposta e, se le istruzioni lo chiedono, cita da quale frammento arriva ogni pezzo.
Quanto costa far girare queste tre fasi su un archivio vero, in dollari di indicizzazione e in gigabyte di memoria, sta in RAG sui documenti aziendali, insieme agli ostacoli che le imprese italiane dichiarano all'Istat.
03Embedding: dimensioni, contesto, prezzo
Un modello di embedding prende un testo e restituisce un vettore, cioè una lista ordinata di numeri. Testi con significato vicino producono vettori che puntano nella stessa direzione. Su questa proprietà sta in piedi tutto il dense retrieval.
Il numero di dimensioni del vettore è una scelta, e da qualche generazione è una scelta a valle dello stesso modello. La documentazione di Voyage AI, letta il 29 settembre 2026, dà alla serie 4 quattro tagli: 256, 512, 1024 e 2048, con 1024 come predefinito, e dichiara i modelli della serie compatibili fra loro (docs.voyageai.com). Cohere, alla stessa data, dà a embed-v4.0 i tagli 256, 512, 1024 e 1536, con 1536 come predefinito (docs.cohere.com).
| Modello | Dimensioni | Contesto | Prezzo per milione di token |
|---|---|---|---|
voyage-4-lite | 256 / 512 / 1024 / 2048 | 32.000 token | 0,02 $ |
voyage-4 | 256 / 512 / 1024 / 2048 | 32.000 token | 0,06 $ |
voyage-4-large | 256 / 512 / 1024 / 2048 | 32.000 token | 0,12 $ |
voyage-law-2 | 1024 | 16.000 token | 0,12 $ |
Le cifre vengono dal listino Voyage AI letto il 29 settembre 2026, che dichiara anche 200 milioni di token gratuiti sulla serie 4 (docs.voyageai.com/docs/pricing). Sono prezzi di listino e invecchiano: la data serve a sapere quando andare a ricontrollarli.
La similarità coseno
Per confrontare due vettori si calcola il coseno dell'angolo fra loro: il prodotto scalare diviso per il prodotto delle norme. Il risultato va da −1 a 1, e ignora la lunghezza dei vettori per guardare solo la direzione. Due frasi che dicono la stessa cosa puntano dalla stessa parte anche quando una è lunga il triplo dell'altra, e questo è il motivo per cui la metrica funziona su frammenti di dimensione diversa.
04Il chunking, e il limite che non c'è più
Per anni la ragione per spezzare i documenti stava nel limite in ingresso del modello di embedding. embed-multilingual-v3.0 di Cohere accetta 512 token, cioè poco più di una pagina. Alla data del 29 settembre 2026 la stessa documentazione dà a embed-v4.0 un limite di 128.000 token, e Voyage ne dichiara 32.000 per tutta la serie 4. Un manuale di manutenzione ci sta dentro intero.
Restano due motivi per spezzare lo stesso, e sono altri due. Il primo: un vettore solo per cinquanta pagine ha una direzione mediata su cinquanta argomenti, e non punta bene verso nessuno. Il secondo: il frammento recuperato finisce nella finestra del generatore, dove occupa token e sposta gli altri frammenti in fondo, con l'effetto misurato nella sezione 06.
Quattro strategie
- A dimensione fissa. Blocchi di N token. Prevedibile e veloce, taglia in punti arbitrari.
- Per frase. Si divide ai confini sintattici. Frammenti di lunghezza molto variabile.
- Semantico. Si calcola la similarità fra frasi consecutive e si taglia dove scende sotto una soglia. Costa una chiamata al modello di embedding per ogni frase, prima ancora di indicizzare.
- Ricorsivo per struttura. Si parte dai separatori grandi, i titoli e i paragrafi, e si scende ai piccoli solo dove il blocco sfora. È la strategia predefinita di LangChain.
Sopra ogni strategia sta l'overlap: gli ultimi token di un frammento ripetuti in testa al successivo, di solito fra il 10% e il 20% della dimensione. Serve ai concetti che cadono a cavallo di due tagli. Costa spazio nell'indice e rumore nel retrieval, perché due frammenti quasi identici competono per lo stesso posto fra i primi k.
La dimensione giusta si decide con un conto, non con una regola. Servono un insieme di domande di prova con il frammento corretto segnato a mano, e poi la stessa indicizzazione ripetuta a 256, 512 e 1.024 token misurando quante volte il frammento corretto compare fra i primi dieci risultati. È il recall@10, e su un insieme di cento domande si calcola in un pomeriggio.
05Retrieval: 59,1 contro 78,4, e dove BM25 vince
Il guadagno del retrieval denso su quello lessicale è stato misurato da Vladimir Karpukhin, Barlas Oğuz, Sewon Min, Patrick Lewis, Ledell Wu, Sergey Edunov, Danqi Chen e Wen‑tau Yih il 10 aprile 2020 (arXiv:2004.04906). La metrica è la top‑20 accuracy: quante volte il passaggio con la risposta compare fra i primi venti.
| Banco di prova | BM25 (lessicale) | DPR (denso) | Scarto |
|---|---|---|---|
| Natural Questions | 59,1% | 78,4% | +19,3 |
| TriviaQA | 66,9% | 79,4% | +12,5 |
| WebQuestions | 55,0% | 73,2% | +18,2 |
| TREC | 70,9% | 79,8% | +8,9 |
| SQuAD | 68,8% | 63,2% | −5,6 |
L'ultima riga è quella che conta per chi progetta. Su SQuAD il vecchio BM25 batte DPR di 5,6 punti, e gli autori scrivono il perché: gli annotatori hanno scritto le domande dopo aver letto il passaggio, quindi la sovrapposizione di parole fra domanda e risposta è alta e premia chi cerca le parole esatte. In più, i dati vengono da poco più di cinquecento articoli di Wikipedia, una distribuzione stretta.
Quella riga è la giustificazione misurata della ricerca ibrida. Il denso vince dove la domanda è una parafrasi; il lessicale vince dove contano i codici prodotto, le sigle, i numeri di articolo e i nomi propri, che in un archivio tecnico sono la metà delle domande. Si esegue la ricerca due volte e si fondono i punteggi, con Reciprocal Rank Fusion o una media pesata.
Il re-ranking, e cosa costa
Un re-ranker legge la domanda e il singolo frammento insieme, invece di confrontare due vettori calcolati separatamente, e produce un punteggio di pertinenza più preciso. Costa di più perché ogni coppia è una chiamata, quindi si applica ai primi 20 o 50 candidati e non all'indice intero. Voyage AI listava rerank-3 a 0,05 $ per milione di token il 29 settembre 2026; Cohere fattura a unità di ricerca, e la sua documentazione alla stessa data definisce un'unità come una query con fino a 100 documenti, con i documenti oltre i 500 token spezzati e contati a parte.
06La generazione, e i 22 punti persi in mezzo
Nelson F. Liu, Kevin Lin, John Hewitt, Ashwin Paranjape, Michele Bevilacqua, Fabio Petroni e Percy Liang hanno depositato Lost in the Middle: How Language Models Use Long Contexts il 6 luglio 2023 (arXiv:2307.03172). L'esperimento tiene fermo tutto e sposta una cosa sola: venti documenti nel contesto, uno solo contiene la risposta, e quell'uno cambia posizione.
| Dove sta il documento con la risposta | Accuratezza di GPT-3.5-Turbo |
|---|---|
| Primo di venti | 75,8% |
| Decimo di venti | 53,8% |
| Ventesimo di venti | 63,2% |
| Nessun documento nel contesto | 56,1% |
| Solo il documento con la risposta | 88,3% |
Fra la prima e la decima posizione ballano 22 punti, e il testo del prompt è identico a meno dell'ordine. La riga che rovescia la pratica corrente è la quarta: con il documento giusto in mezzo ad altri diciannove il modello sta al 53,8%, sotto al 56,1% che ottiene senza nessun documento. Gli autori lo scrivono così: «when relevant information is placed in the middle of its input context, GPT-3.5-Turbo's performance on the multi-document question task is lower than its performance when predicting without any documents».
Da qui discendono due scelte di progetto. Passare al generatore pochi frammenti, da tre a cinque, invece di riempire la finestra perché c'è posto. E mettere i migliori in testa e in coda, che è poi il lavoro che fa il re-ranker: non serve a trovare frammenti nuovi, serve a decidere chi sta nelle due posizioni buone.
Com'è fatto il prompt
- Istruzioni di sistema. Il vincolo che regge un sistema RAG: rispondere solo sul contesto fornito e dichiarare quando l'informazione non c'è.
- Contesto. I frammenti, con un delimitatore fra l'uno e l'altro e l'identificativo del documento accanto, che serve alla citazione.
- Domanda. La query come è stata posta.
- Formato. Come vanno scritte le fonti nella risposta.
La tensione fra fedeltà al contesto e libertà di sintesi si governa da tre leve: la temperature, le istruzioni di sistema e quanti frammenti entrano. Un assistente su condizioni contrattuali sta dalla parte della fedeltà; un assistente di ricerca bibliografica può collegare.
07Valutare: le formule che si contano
Un sistema RAG si rompe in due posti diversi, e le metriche servono a sapere in quale. Se il frammento giusto non arriva, il guasto è nel retrieval e si misura con il recall@k. Se il frammento giusto arriva e la risposta dice altro, il guasto è nella generazione.
La faithfulness di RAGAS mette un numero sul secondo caso. La documentazione, letta il 29 settembre 2026, la definisce come il rapporto fra le affermazioni della risposta sostenute dal contesto recuperato e le affermazioni totali della risposta, con esito fra 0 e 1 (docs.ragas.io). Il calcolo passa da tre passi: si spezza la risposta in affermazioni, si verifica una per una contro il contesto, si divide. Una risposta con due affermazioni di cui una sostenuta vale 0,5.
Sulla stessa grandezza esiste una misura pubblica e continuativa. Il tabellone di Vectara, aggiornato al 22 settembre 2026, fa riassumere oltre 7.700 articoli lunghi da 50 a 24.000 parole e conta quante volte il riassunto introduce qualcosa che nel documento non c'è. In cima stanno finix_s1_32b con l'1,8% di allucinazione, gpt-5.4-nano con il 3,1% e gemini-2.5-flash-lite con il 3,3% (vectara/hallucination-leaderboard). Il compito misurato è il riassunto di un documento fornito, che è il pezzo finale di una catena RAG.
Sia RAGAS sia HHEM usano un modello per giudicare l'uscita di un altro modello. Il giudizio è ripetibile e costa poco, e per questo serve durante le iterazioni. Un campione rivisto da persone resta la misura di riferimento per un rilascio, perché il giudice eredita i propri errori sistematici e li applica a ogni risposta allo stesso modo.
Quanta allucinazione sopravvive a una catena RAG costruita bene e venduta a caro prezzo è stato misurato su prodotti commerciali, e i numeri stanno in RAG sui documenti aziendali.
08Sei errori, ognuno con la sua misura
- Chunk dimensionati a occhio. La dimensione si sceglie confrontando il recall@10 su un insieme di domande annotate, a 256, 512 e 1.024 token. Senza quel confronto, ogni modifica successiva si valuta a sensazione.
- Un paradigma solo di ricerca. I 5,6 punti con cui BM25 batte DPR su SQuAD dicono che sui corpora ad alta sovrapposizione lessicale il denso da solo perde. La ricerca ibrida costa una query in più.
- Niente re-ranking. Con i 22 punti di scarto fra prima e decima posizione, decidere chi sta in testa vale quanto decidere chi entra.
- Finestra riempita. Venti frammenti dentro al prompt portano il modello sotto al suo stesso risultato senza documenti. Tre o cinque frammenti pertinenti rendono di più di venti approssimativi.
- Metadati buttati via. Un frammento senza data, sezione e documento di provenienza non si può filtrare né citare. Una domanda sulla versione più recente di una procedura, senza il campo data, non ha risposta.
- Nessuna soglia di rinuncia. Se nessun frammento supera una similarità minima, il sistema deve dirlo. Senza soglia, il generatore riceve un contesto fuori tema e scrive comunque.
La prima cosa da guardare quando un sistema RAG risponde male sono i frammenti che il retrieval ha restituito, prima ancora della risposta. Se il frammento con l'informazione non è nella lista, il problema sta a monte e nessun intervento sul prompt lo risolve. Se c'è ed è stato ignorato, il problema è la posizione o il numero di frammenti.
09Cosa si muove, e cosa è già dentro ai modelli
Dalla pipeline lineare di Lewis del 2020 partono tre linee di lavoro, ognuna con un paper e una data.
Self-RAG
Akari Asai, Zeqiu Wu, Yizhong Wang, Avirup Sil e Hannaheh Hajishirzi, 17 ottobre 2023 (arXiv:2310.11511). Il modello, addestrato a 7 e 13 miliardi di parametri, emette reflection token con cui decide da sé se gli serve una ricerca e se il passaggio recuperato regge. La decisione sul retrieval si sposta dentro al modello.
GraphRAG
Darren Edge, Ha Trinh e altri otto di Microsoft Research, 24 aprile 2024 (arXiv:2404.16130). Il lavoro parte da una mancanza precisa: la ricerca per similarità fallisce sulle domande globali, quelle rivolte all'intero corpus, come «quali sono i temi principali di questo archivio». Nessun singolo frammento contiene quella risposta. La costruzione di un grafo di entità con riassunti per comunità risponde su corpora nell'ordine del milione di token.
Contesti lunghi
L'obiezione ricorrente è che le finestre di contesto crescono e il retrieval diventa superfluo. Liu e colleghi hanno misurato anche i modelli dichiaratamente a contesto lungo, e l'accuratezza cala in mezzo anche lì. Una finestra più grande sposta il limite di quanto entra; non sposta il punto in cui l'informazione viene letta male.
In sintesi
- Dense retrieval: +19,3 punti di top-20 accuracy su Natural Questions, −5,6 su SQuAD (Karpukhin et al., 10 aprile 2020).
- Posizione nel contesto: 75,8% in prima posizione, 53,8% in decima, sotto al 56,1% senza documenti (Liu et al., 6 luglio 2023).
- Il limite in ingresso degli embedding è passato da 512 a 128.000 token fra la v3 e la v4 di Cohere, letto il 29 settembre 2026.
- Faithfulness di RAGAS: affermazioni sostenute diviso affermazioni totali, fra 0 e 1.
10Glossario
- RAG. Architettura che mette un retriever davanti a un generatore, formalizzata da Lewis e colleghi il 22 maggio 2020 in arXiv:2005.11401.
- Embedding. Vettore che colloca un testo in uno spazio a molte dimensioni. Le serie attuali offrono 256, 512, 1024, 1536 o 2048 dimensioni a scelta.
- Similarità coseno. Coseno dell'angolo fra due vettori, da −1 a 1. Ignora la lunghezza del testo e guarda la direzione.
- Chunk. Frammento indicizzabile di un documento. Le dimensioni provate di solito stanno fra 256 e 1.024 token, con overlap dal 10% al 20%.
- Dense retrieval. Ricerca per vicinanza fra vettori. Su Natural Questions arriva al 78,4% di top-20 accuracy contro il 59,1% di BM25.
- Sparse retrieval. Ricerca lessicale pesata, tipicamente BM25. Su SQuAD chiude al 68,8% contro il 63,2% di DPR.
- Re-ranking. Secondo stadio che legge domanda e frammento insieme e riordina. Si applica ai primi 20 o 50 candidati.
- Finestra di contesto. Testo massimo che un modello elabora in una chiamata. Dentro ci stanno istruzioni, frammenti e domanda, e la posizione di ciascuno pesa.
- Faithfulness. Quota di affermazioni della risposta sostenute dal contesto recuperato, fra 0 e 1.
- Allucinazione. Affermazione plausibile e falsa. Sul riassunto di documenti forniti, i modelli in cima al tabellone Vectara del 22 settembre 2026 stanno fra l'1,8% e il 3,3%.
Federico Boggia