Retrieval-augmented generation (RAG)
Ultimo aggiornamento:
Che cos’è la RAG
Un modello linguistico conosce solo ciò che c’era nei suoi dati di addestramento. La RAG aggiunge una fase di consultazione: prima che il modello risponda, il sistema recupera i testi pertinenti da una base di conoscenza e li inserisce nel prompt. Il modello scrive quindi la risposta partendo da quel materiale, invece di affidarsi solo alla memoria.
Il termine nasce da un articolo di ricerca del 2020 di Patrick Lewis e colleghi di Facebook AI Research. Oggi descrive la maggior parte dei chatbot e degli assistenti che rispondono a partire dai contenuti di un’organizzazione.
Come funziona la RAG
Un sistema RAG ha una fase di preparazione e una fase per ogni domanda:
La qualità di un sistema RAG dipende molto dalla ricerca. Se il passaggio giusto non viene trovato, nemmeno un modello molto capace può rispondere correttamente.
- Indicizzazione, in anticipo: i documenti vengono divisi in chunk, ogni chunk viene trasformato in un embedding e tutto viene salvato in un indice consultabile.
- Recupero: la domanda viene confrontata con l’indice tramite ricerca semantica, ricerca per parole chiave o entrambe, e si selezionano i chunk più pertinenti.
- Arricchimento: i chunk selezionati vengono aggiunti al prompt insieme alle istruzioni e alla conversazione fin lì.
- Generazione: il modello linguistico scrive una risposta basata sui testi recuperati e, se configurato bene, dice quando quei testi non contengono la risposta.
Esempio
Al chatbot di un’azienda di software viene chiesto: «Posso esportare le mie fatture in CSV?». Il recupero trova un articolo di assistenza sulle esportazioni e una voce recente del changelog. Il modello li legge entrambi e spiega che l’esportazione CSV si trova nelle impostazioni di fatturazione, riprendendo i passaggi dell’articolo. Quando l’azienda modifica l’articolo, la risposta successiva riflette la modifica non appena il contenuto viene reindicizzato, senza toccare il modello.
Perché la RAG conta per i chatbot aziendali
La RAG è il modo più diffuso per rendere utile un modello generico per una specifica azienda:
La RAG non elimina ogni errore. Documenti superati o contraddittori portano a risposte sbagliate e il modello può comunque fraintendere un passaggio. Tenere aggiornate le fonti conta quanto la tecnologia.
- Le risposte restano specifiche per i tuoi prodotti, prezzi e condizioni.
- Aggiornare le conoscenze significa modificare i contenuti, non riaddestrare un modello.
- Le risposte si possono ricondurre ai passaggi di origine, così gli errori sono più facili da trovare e correggere.
- Delle regole possono imporre al modello di rispondere solo dai contenuti recuperati e di ammettere quando non ha trovato nulla di pertinente.
Come intoCHAT usa la RAG
intoCHAT si basa sulla RAG. Quando aggiungi pagine web, file, snippet di testo o coppie di domande e risposte, intoCHAT li divide in chunk e crea gli embedding. Per ogni messaggio del visitatore esegue un recupero ibrido, che combina ricerca semantica e per parole chiave, poi passa gli estratti migliori al modello con regole che mantengono la risposta ancorata a essi. Le risposte Q&A e le fonti contrassegnate con la stella hanno la precedenza sugli altri contenuti, e le modifiche a una fonte valgono dopo averla riaddestrata.