RAG (2020): unire recupero e generazione

Nel 2020 un gruppo di ricercatori Facebook AI propose di dare a un modello generativo una biblioteca da consultare invece di costringerlo a ricordare tutto a memoria. Rileggiamo il paper che ha dato un nome alla tecnica oggi ovunque negli assistenti aziendali: Retrieval-Augmented Generation.

Chiedete a un modello linguistico chi ha vinto un premio letterario di nicchia nel 1997, e osservate cosa succede. Se quella notizia era abbastanza rara da non comparire spesso nei testi di addestramento, il modello non risponderà «non lo so»: costruirà una frase plausibile, con un nome verosimile, un editore verosimile, una motivazione verosimile. Tutto falso, tutto detto con la stessa sicurezza con cui vi direbbe che Roma è la capitale d’Italia. Il problema non è che il modello mente. È che ha un solo posto dove cercare le risposte — dentro i propri pesi — e quel posto non distingue tra ciò che sa davvero e ciò che sa solo abbozzare. Nel 2020 un gruppo di ricercatori di Facebook AI Research propose un rimedio tanto ovvio quanto trascurato: prima di rispondere, vai a controllare. Il paper si intitola Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks, e ha dato il nome — RAG — a una tecnica che oggi sta dentro quasi ogni assistente aziendale.

L’information retrieval, la ricerca per significato e il libro aperto del RAG sono spiegati nel libro.

Leggi «Cercare per rispondere: retrieval e RAG» nel libro →

La memoria cucita nei pesi

Per capire la proposta bisogna vedere il difetto che voleva correggere. Un modello come GPT o BART immagazzina ciò che ha imparato in un unico contenitore: i suoi parametri, i miliardi di numeri regolati durante l’addestramento. È quella che il paper chiama memoria parametrica. Ha un pregio enorme — è fluida, sa generalizzare, sa comporre — e tre difetti gemelli. Non si aggiorna senza un nuovo addestramento costoso: se il mondo cambia, il modello resta fermo alla data in cui è stato congelato. Non è ispezionabile: non potete aprire un parametro per vedere «da dove» viene un’affermazione. E confonde la conoscenza precisa con quella vaga, perché nei pesi entrambe hanno la stessa forma, numeri e basta.

L’analogia che rende l’idea è quella di uno studente a un esame orale senza appunti. Uno studente bravissimo, che ha letto moltissimo, ma che deve rispondere solo con ciò che ricorda in quel momento. Sulle domande centrali va benissimo. Su una data precisa, una cifra, un nome proprio raro, comincia a tirare a indovinare con eleganza. Non perché sia in malafede: perché il formato dell’esame gli vieta di consultare la fonte.

Due memorie invece di una

La mossa di Lewis e colleghi è affiancare alla memoria parametrica una seconda memoria di natura opposta: non parametrica, cioè tenuta fuori dai pesi, in un archivio separato e consultabile. Nel paper quell’archivio è l’intera Wikipedia in inglese, spezzata in circa 21 milioni di frammenti da un centinaio di parole ciascuno. Ogni frammento è trasformato in un vettore — un elenco di numeri che ne cattura il significato — e depositato in un indice che permette di cercare «per somiglianza di senso» invece che per parole esatte.

A pescare nell’indice pensa il retriever, e qui il paper riusa un componente uscito pochi mesi prima dallo stesso gruppo: DPR, Dense Passage Retrieval. DPR è fatto di due encoder gemelli basati su BERT, uno che trasforma la domanda in vettore e uno che ha già trasformato tutti i frammenti. Trovare i documenti rilevanti diventa allora un problema geometrico: quali frammenti hanno il vettore più vicino a quello della domanda. A generare la risposta pensa invece BART-large, un modello sequenza-a-sequenza da 400 milioni di parametri: è lui la memoria parametrica, la parte che sa scrivere in italiano corretto e ragionare sulla forma della risposta. La biblioteca e il bibliotecario, insomma, separati e messi a collaborare.

Recupero e generazione, in fila domanda dell’utente retriever (DPR) indice Wikipedia · 21M passaggi i k passaggi piu rilevanti generatore (BART) → risposta la risposta e condizionata insieme dalla domanda e dai passaggi recuperati

La domanda entra nel retriever, che confronta il suo vettore con quelli dell’indice e pesca i k passaggi piu vicini. Quei passaggi, insieme alla domanda, condizionano il generatore, che scrive la risposta. La biblioteca resta fuori dal modello, aggiornabile senza riaddestrare nulla.

Marginalizzare sui documenti

Resta un dettaglio tecnico che il paper risolve con eleganza. Il retriever non restituisce un solo documento, ne restituisce i primi k — cinque, dieci. Come si genera una risposta a partire da piu fonti insieme? Qui compaiono le due varianti del modello. RAG-Sequence tiene fisso lo stesso pacchetto di documenti per tutta la risposta: genera un’intera candidata da ciascun documento e poi le combina pesandole per quanto quel documento era rilevante. RAG-Token è piu granulare: a ogni singola parola generata può appoggiarsi a un documento diverso, utile quando la risposta cuce insieme fatti che vivono in fonti separate. In entrambi i casi la chiave è che il documento recuperato non è un input rigido, ma una variabile su cui il modello «media»: se una fonte è poco pertinente, il suo peso cala da solo.

C’è una conseguenza pratica notevole. Il retriever e il generatore vengono addestrati insieme, dall’inizio alla fine, con lo stesso segnale — quanto è giusta la risposta finale. Nessuno dice esplicitamente al retriever quali documenti pescare: impara a pescare quelli utili perché sono quelli che, passati al generatore, producono risposte migliori.

Il modello non deve piu ricordare tutto. Deve solo imparare a cercare bene, e a fidarsi di cio che trova.

Cosa mostravano i numeri

Il paper mette RAG alla prova su compiti «ad alta intensità di conoscenza», quelli dove serve un fatto preciso e non basta lo stile. Su tre benchmark di domanda-risposta a dominio aperto — dove la domanda arriva senza contesto e la risposta va trovata da qualche parte in Wikipedia — RAG fissava lo stato dell’arte del momento, battendo sia i modelli puramente parametrici sia le architetture specializzate che estraevano la risposta letterale da un passaggio. Su Natural Questions, per dare un ordine di grandezza, RAG-Sequence raggiungeva circa 44,5 di exact match, con TriviaQA piu in alto. Ma il risultato che il paper sottolinea con piu cura non è un punteggio di accuratezza: nei compiti di generazione libera, le risposte di RAG risultavano piu specifiche, piu varie e piu fattuali di quelle del solo BART. Avere una fonte davanti non rende soltanto piu giusti; rende meno vaghi.

Un vantaggio ulteriore è quasi amministrativo, e per questo facile da sottovalutare. Per aggiornare la conoscenza di RAG non serve riaddestrare il generatore: basta sostituire l’indice. Cambiate i frammenti di Wikipedia con una versione piu recente, o con i documenti interni di un’azienda, e il modello risponde sul nuovo corpus senza toccare un solo peso. La memoria è diventata un pezzo intercambiabile.

Perché rileggerlo oggi

Se negli ultimi due anni avete sentito parlare di «chatbot che risponde sui documenti aziendali», «assistente che cita le fonti», «AI collegata alla knowledge base interna», state guardando dei discendenti diretti di questo paper. RAG è diventato l’impalcatura standard per far parlare un modello linguistico di cose che non stanno nei suoi pesi: manuali, contratti, ticket, sentenze. Il termine stesso — recupera, poi genera — viene da qui.

Vale la pena rileggerlo anche per una ragione di igiene mentale. Nel 2020 il gruppo di Lewis non ha reso i modelli piu grandi, li ha resi piu onesti sul confine tra cio che sanno e cio che devono andare a controllare. È una lezione che torna utile ogni volta che qualcuno promette un modello «che sa tutto»: la strada piu solida, spesso, non è insegnargli di piu, ma dargli una buona biblioteca e insegnargli a usarla.

Il paper

Patrick Lewis, Ethan Perez, Aleksandra Piktus, Fabio Petroni, Vladimir Karpukhin, Naman Goyal, Heinrich Küttler, Mike Lewis, Wen-tau Yih, Tim Rocktäschel, Sebastian Riedel, Douwe Kiela, Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks, NeurIPS 2020. Disponibile su arXiv: arxiv.org/abs/2005.11401.

I commenti sono riservati agli iscritti.

Accedi per commentare