La retrieval-augmented generation combina un retriever, che cerca in una raccolta esterna di documenti, con un modello linguistico generatore. L'hanno introdotta Lewis et al. (2020), abbinando un modello seq2seq parametrico a un indice vettoriale non parametrico di Wikipedia e dimostrando che produceva testi più fattuali e specifici, con risultati allo stato dell'arte nel question answering a dominio aperto.
La maggior parte dei sistemi RAG moderni effettua il recupero con embedding densi, sulla scia della Dense Passage Retrieval (Karpukhin et al., 2020); l'idea di unire il recupero a un modello linguistico è stata sviluppata anche in REALM (Guu et al., 2020).
Cos'è la RAG nell'IA? Il significato in parole semplici
Il significato di RAG in una riga: prima cerca, poi rispondi. Un LLM semplice risponde solo in base a ciò che ha assimilato durante l'addestramento, che può essere superato o ricordato male. Un sistema RAG recupera prima i passaggi pertinenti alla domanda (da documenti aziendali, da una knowledge base o dal web) e li fornisce al modello insieme alla domanda, così la risposta può citare fonti reali.
Ecco perché la RAG è il metodo abituale per creare chatbot su documenti privati, assistenti di supporto che devono restare aggiornati e strumenti di ricerca che mostrano da dove proviene ogni affermazione.
Come funziona la retrieval-augmented generation
- 1Indicizzazione. I documenti vengono suddivisi in blocchi (chunk), ogni blocco viene trasformato in un embedding e gli embedding vengono salvati in un database vettoriale o in un indice di ricerca.
- 2Recupero. La domanda dell'utente viene trasformata in embedding allo stesso modo e i blocchi più simili vengono individuati con una ricerca dei vicini più prossimi, spesso seguita da una fase di reranking.
- 3Arricchimento e generazione. I passaggi migliori vengono inseriti nel prompt, all'interno della finestra di contesto del modello, e il modello scrive una risposta basata su di essi, idealmente citando quale passaggio supporta ciascuna affermazione.
RAG o fine-tuning
Entrambi rendono un modello più utile per il tuo ambito, ma modificano cose diverse. La RAG cambia ciò che il modello può vedere; il fine-tuning cambia il modello stesso.
| RAG | Fine-tuning | |
|---|---|---|
| Cosa cambia | Il contesto fornito al modello | I pesi del modello |
| Aggiornare le conoscenze | Reindicizzare i documenti | Riaddestrare |
| Citazioni | Può indicare i passaggi utilizzati | Nessuna tracciabilità delle fonti integrata |
| Ideale per | Informazioni recenti, private o in rapida evoluzione | Stile, formato o comportamento specializzato coerenti |
Le finestre di contesto lunghe ti permettono di incollare interi documenti in una chat, il che può sostituire la RAG quando si tratta di pochi file. La RAG resta però la scelta migliore quando la raccolta è più grande della finestra, cambia spesso o deve essere consultata da molti utenti.
La RAG in MultipleChat
I Progetti di MultipleChat funzionano così: i file che aggiungi a un progetto vengono indicizzati e, quando invii un messaggio, MultipleChat li analizza e passa al modello solo i blocchi più pertinenti, così ogni chat del progetto può attingere ai tuoi documenti senza copia-incolla. La ricerca web aggiunge fonti in tempo reale e, nei piani a pagamento, Auto Verification può controllare una risposta alla ricerca di problemi fattuali subito dopo che è stata generata.