RAG sta per Retrieval Augmented Generation, l'ennesimo acronimo che il mondo dell'intelligenza artificiale non si fa mancare. È un termine che si comincia a incontrare spesso e che aiuta a capire bene cosa significhi costruire un'applicazione AI, perché quando la RAG ne fa parte rappresenta al tempo stesso un'opportunità e un limite. Per comprenderla bisogna partire dalla Knowledge base.
La Knowledge base al centro del progetto
La Knowledge base è l'insieme delle fonti di informazione che si ritiene utile portare in dote all'applicazione. Possono essere poco strutturate, come file di testo, PDF e documenti Word, oppure più strutturate, come fogli Excel e database, fino a fonti esterne come i siti web. Pur esistendo il mondo delle immagini e dei video, quando si lavora con i modelli linguistici un'immagine è rappresentata dalla sua descrizione e un video dallo script del parlato. Tagliando con l'accetta, al centro di un progetto di questo tipo ci sono soprattutto le parole.
Un modello linguistico ha una propria conoscenza del mondo, finita e chiusa. Ciò che interessa è la sua capacità di ragionare, ma sui nostri temi e sulle nostre informazioni. Qui si apre un bivio. Chi può permettersi progetti molto onerosi può creare il proprio supermodello di conoscenza, e si parla di ordini di grandezza importanti, come i circa 60 milioni di dollari spesi per addestrare GPT-4. Non è una strada per tutti. La versione più semplice e attivabile è la RAG.
Come lavora la RAG, passo dopo passo
La RAG significa avere un modello con il proprio Mental Model, cioè istruito su come comportarsi, una base di conoscenza fatta di tante parole e documenti, e qualcosa in mezzo: un framework che svolge alcune operazioni in sequenza. Riceve l'input, lo comprende usando il modello per coglierne la sostanza, e in base a quella attiva uno o più agenti specializzati. Se si chiede un video, si attiva l'agente che trova il video; nella maggior parte dei casi si chiede un'informazione contenuta nella propria base di conoscenza, e allora si attiva l'agente dedicato.
A quel punto l'applicazione toglie dalla domanda gli orpelli del linguaggio, individua le parole fondamentali da usare per trovare la risposta e fa una ricerca dentro la Knowledge base. Non è il Search di Google, a cui siamo abituati: è una ricerca molto matematica. La base di conoscenza, infatti, prima di poter essere utilizzata viene trasformata in un database vettoriale, in cui le parole diventano vettori, frecce con posizione e direzione in uno spazio. Questa forma avvicina le informazioni alla rappresentazione nativa dei modelli linguistici, che sono essi stessi immensi database vettoriali.
La ricerca di vicinanza
Nel database vettoriale si fa una ricerca di vicinanza: si posizionano le parole chiave della domanda nel punto giusto dello spazio e si raccolgono i pezzetti di testo che stanno lì intorno, per esempio cinque, sette o dodici blocchi, paragrafi presi qua e là, non organizzati come farebbe un essere umano. Questi frammenti vengono portati al modello insieme alla domanda. È come dire al modello: spiegami come si costruisce la borraccia, e nella documentazione ho trovato questi pezzi che parlano dell'argomento. Il modello li raccoglie e ragiona la sua risposta in un contesto molto locale, quello della domanda in tempo reale.
In sostanza si modifica il prompt al volo, aggiungendo quelle informazioni della base di conoscenza, anche enorme, che possono essere utili in quel contesto. Il contesto che si crea è fatto dal Mental Model, dalla storia della conversazione, dalla domanda e dai frammenti trovati vicini all'argomento. Proprio perché il contesto è così forte, la risposta che ne deriva è spesso stupefacente. Questo è il senso dell'acronimo: retrieval, l'estrazione dei pezzi pertinenti, e generation aumentata da ciò che è stato estratto.
Una tecnica, non una soluzione
La RAG è un approccio tecnologico, un tema di stack: serve uno stack proprio in cui la Knowledge base viene trasformata, aggiornata e mantenuta in forma vettoriale, gli strumenti per cercarvi dentro ed estrarre contesto, e la capacità di mettere insieme Mental Model, storia, domanda e risultati per ottenere la risposta. Il suo ingaggio non è sistematico ma occasionale: un buon stack riconosce gli intenti e attiva l'agente giusto. Si possono avere più Knowledge base, utenti con permessi diversi, agenti che fanno RAG e agenti che invece eseguono una query su un database strutturato, per esempio per verificare in tempo reale la giacenza a magazzino di un codice.
La RAG ha senso dove la base di conoscenza è fatta di parole, di natura documentale. Quando invece i dati sono strutturati, ha più senso un tool specifico che interroga il database con una query, perché lì non c'è vicinanza vettoriale. Nei casi misti servono accorgimenti ad hoc. È importante capire che la RAG non è una soluzione, ma una tecnica per ottenere un pezzetto del risultato: portare dentro l'applicazione le informazioni che servono in quel preciso contesto. Prima della RAG questo non esisteva: i database vettoriali c'erano, ma venivano usati diversamente; c'era il Search, che però cerca e trova, mentre questa ricerca particolare non serve a trovare, serve a dare contesto al modello.
Il controllo dei dati: un vantaggio decisivo
C'è un vantaggio fondamentale. Con questa tecnica i dati non escono dalle proprie property: non si consegna l'intera base di conoscenza al modello, ma solo il pezzetto di informazioni che serve, nel contesto giusto, per rispondere alla singola conversazione. Le condizioni d'uso delle API di alcuni modelli, analizzate con attenzione, prevedono che la conversazione sia stateless e che nulla venga registrato; per questo al modello va passata ogni volta anche la storia della conversazione, perché non se la ricorda. La comunicazione è crittografata, i frammenti vengono usati per generare la risposta e non vengono archiviati.
È un assunto decisivo per le applicazioni aziendali: la base di conoscenza resta propria e in pieno controllo. È il contrario di quanto accade usando le versioni gratuite, le cui condizioni d'uso prevedono spesso che ciò che si dice venga usato per migliorare il modello, entrando dentro di esso. Usare tool e applicazioni online che fanno RAG o chatbot può essere rapido, ma bisogna stare molto attenti a cosa si dà in pasto alla macchina e se se ne mantiene il controllo. L'approccio alternativo è chiaro: l'azienda costruisce il proprio stack, resta in controllo e usa i motori linguistici, GPT, Claude, Gemini, Llama, perché ragionino sulle sue informazioni in un ambito protetto, chiuso e regolato da un contratto. È una risposta concreta alla paura, diffusa anche tra i vertici delle aziende, di cedere la propria conoscenza all'intelligenza artificiale.