Cos'è la generazione aumentata dal recupero (RAG) nell'IA?

La generazione aumentata del recupero (RAG) è un metodo per aggiungere una nuova origine dati a un modello linguistico di grandi dimensioni (LLM) senza doverlo riaddestrare.

Obiettivi di apprendimento

Dopo aver letto questo articolo sarai in grado di:

  • Comprendere la generazione aumentata del recupero (RAG) nell'IA
  • Spiegare come la RAG migliora gli LLM
  • Comprendere i chatbot RAG e AutoRAG

Copia link dell'articolo

Cos'è la generazione aumentata dal recupero (RAG) nell'IA?

La generazione aumentata del recupero (RAG) è il processo di ottimizzazione di un modello linguistico di grandi dimensioni (LLM) per l'uso in un contesto specifico senza riaddestrarlo completamente, fornendogli l'accesso a una knowledge base pertinente a tale contesto. La RAG è un modo economico per adattare rapidamente un LLM a un caso d'uso specializzato. È uno dei metodi che gli sviluppatori possono utilizzare per ottimizzare un modello di intelligenza artificiale (IA).

I modelli LLM vengono addestrati su enormi quantità di dati, ma potrebbero non essere in grado di generare le informazioni specifiche necessarie in determinati contesti. Hanno una comprensione generale di come funziona il linguaggio umano, ma non sempre possiedono competenze specifiche per una determinata area tematica. La RAG è un modo per correggere questo comportamento.

Immagina un meccanico che va a lavorare su una Chevy del 1964. Anche se il meccanico può avere una grande competenza generale nella manutenzione delle auto dopo migliaia di ore di pratica, ha comunque bisogno del manuale del proprietario dell'auto per poterla riparare in modo efficace. Tuttavia, il meccanico non ha bisogno di ottenere una nuova certificazione: può semplicemente leggere il manuale e poi applicare le conoscenze generali sulle auto che già possiede.

La RAG è simile. Fornisce a un LLM un "manuale" (o una knowledge base) in modo che l'LLM possa adattare le sue conoscenze generali al caso d'uso specifico. Ad esempio, un LLM generico potrebbe essere in grado di generare contenuti su come funzionano le query API, ma non necessariamente essere in grado di dire a un utente come interrogare l'API di un'applicazione specifica. Ma con la RAG, quell'LLM potrebbe essere adattato per l'uso con quell'applicazione collegandolo alla documentazione tecnica dell'applicazione.

Come funziona la RAG?

Di solito, quando un LLM riceve una query, la elabora in base ai suoi parametri e al suo addestramento preesistente.

La RAG consente all'LLM di fare riferimento a "dati esterni", ovvero un database non incluso nel set di dati di formazione dell'LLM. Quindi, a differenza del normale funzionamento di un LLM, un LLM con la RAG utilizza dati esterni per migliorare le sue risposte, da cui il nome generazione (creazione di una risposta), aumentata (miglioramento delle risposte con questi dati) e recupero (recupero dei dati esterni per primi).

Supponiamo che il meccanico dell'esempio precedente volesse utilizzare un LLM invece di consultare direttamente i manuali d'uso. Utilizzando la RAG, l'LLM potrebbe integrare la consultazione dei manuali d'uso direttamente nei suoi processi. Nonostante il fatto che l'LLM probabilmente non sia stato addestrato sui manuali delle auto d'epoca (o, se tali informazioni erano incluse nei suoi dati di addestramento, probabilmente si trattava solo di una piccola percentuale), l'LLM può utilizzare la RAG per produrre query pertinenti e accurate.

Affinché l'LLM possa utilizzare e interrogare l'origine dati esterna (ad esempio i manuali delle automobili), i dati vengono prima convertiti in vettori e poi archiviati in un database vettoriale. Questo processo utilizza modelli di machine learning per generare rappresentazioni matematiche degli elementi di un set di dati. (Ogni "vettore" è un array di numeri, come [-0,41522345,0,97685323...]).

Quando un utente invia un prompt, l'LLM converte tale prompt in un vettore, quindi esegue una ricerca nel database vettoriale creato dall'origine dati esterna per trovare le informazioni rilevanti. Aggiunge tali informazioni come contesto aggiuntivo per il prompt, quindi esegue il prompt aumentato attraverso il suo modello tipico per creare una risposta.

Quali sono i pro e i contro di RAG nell'IA?

I pro dell'utilizzo di RAG per l'ottimizzazione di un LLM includono:

  • Maggiore accuratezza nel caso d'uso: un LLM ha maggiori probabilità di fornire una risposta corretta se ha accesso a una knowledge base relativa al prompt, proprio come un meccanico ha maggiori probabilità di riparare correttamente un'auto se ha il manuale.
  • Un modo economico per adattare un modello: poiché non è necessario alcun riaddestramento, iniziare a utilizzare un LLM in un nuovo contesto è meno costoso in termini di calcolo e richiede meno tempo.
  • Flessibilità: poiché i parametri del modello non vengono regolati, lo stesso modello può essere spostato rapidamente in vari casi d'uso.

Alcuni dei potenziali svantaggi sono:

  • Tempi di risposta più lenti: sebbene la RAG non richieda un riaddestramento, l'inferenza, ovvero il processo di ragionamento e risposta ai prompt, può richiedere più tempo, poiché l'LLM ora deve interrogare più set di dati per produrre una risposta.
  • Incoerenze tra set di dati: la knowledge base esterna potrebbe non integrarsi perfettamente con il set di dati di addestramento del modello, proprio come due set di enciclopedie potrebbero descrivere eventi storici in modo leggermente diverso. Questo può portare a risposte incoerenti alle query.
  • Manutenzione manuale: ogni volta che la knowledge base esterna viene aggiornata, ad esempio quando escono nuovi modelli di auto, gli sviluppatori devono avviare manualmente il processo di conversione dei nuovi dati in vettori e aggiornamento del database vettoriale. Cloudflare ha sviluppato AutoRAG per aiutare gli sviluppatori a evitare questo processo manuale; maggiori dettagli di seguito.

Cos'è un chatbot RAG?

Un chatbot RAG è un chatbot basato su un LLM che è stato specializzato per specifici casi d'uso tramite RAG, ovvero essendo connesso a una o più origini dati esterne rilevanti per il contesto in cui opera. Un chatbot RAG da utilizzare in un'officina automobilistica avrebbe accesso alla documentazione dell'automobile; ciò sarebbe più utile per i meccanici in officina rispetto alle domande poste a un chatbot LLM di uso generale.

RAG e adattamento di basso rango (LoRA)

L'adattamento di basso rango (LoRA) è un altro modo per perfezionare un modello, ovvero adattarlo a un contesto specifico senza doverlo riaddestrare completamente. LoRA, tuttavia, comporta la regolazione dei parametri del modello, mentre RAG non li altera affatto. Scopri di più su LoRA qui.

Cos'è AutoRAG?

AutoRAG configura e gestisce le pipeline RAG per gli sviluppatori. Collega gli strumenti necessari per l'indicizzazione, il recupero e la generazione e mantiene tutto aggiornato sincronizzando regolarmente i dati con l'indice. Una volta configurato, AutoRAG indicizza il contenuto in background e risponde alle query in tempo reale. Scopri come funziona AutoRAG.

DOMANDE FREQUENTI

Cos'è la generazione aumentata dal recupero (RAG)?

RAG è una tecnica che ottimizza i Large Language Model (LLM) per contesti specifici, fornendo loro accesso a una knowledge base pertinente senza la necessità di un completo riaddestramento. RAG è un modo efficiente per personalizzare un LLM per compiti specializzati.

In che modo RAG potenzia le capacità degli LLM?

RAG consente a un LLM di consultare origini dati esterne, come un database dedicato, per arricchire le sue risposte. Quando un utente invia una query, l'LLM la converte in un vettore, trova le informazioni correlate nell'origine dati esterna (anch'essa vettorializzata) e quindi utilizza questo contesto arricchito per generare una risposta più informata e precisa.

Quali sono i vantaggi principali dell'utilizzo di RAG con i modelli di intelligenza artificiale?

RAG migliora l'accuratezza di un modello di intelligenza artificiale per un'applicazione specifica, poiché l'LLM può attingere a una knowledge base specializzata. RAG è anche un metodo a costi contenuti per adattare un modello, poiché evita l'uso di ingenti risorse di elaborazione e il tempo necessario per un addestramento completo. Inoltre, RAG offre flessibilità, consentendo di applicare lo stesso modello a vari scenari specifici senza alterarne i parametri principali.

Quali sono alcuni potenziali svantaggi dell'implementazione di RAG nell'IA?

Nonostante i suoi vantaggi, RAG può causare tempi di risposta più lenti perché l'LLM deve recuperare ed elaborare informazioni da più set di dati. C'è anche il rischio di incoerenze se la knowledge base esterna non si allinea perfettamente con i dati di addestramento originali del modello. Inoltre, la manutenzione di un sistema RAG richiede uno sforzo manuale per convertire e aggiornare i nuovi dati in vettori all'interno del database ogni volta che la knowledge base esterna cambia.

Cos'è un chatbot RAG?

Un chatbot RAG è un chatbot basato su LLM specializzato per casi d'uso particolari attraverso il processo RAG. Ciò significa che ha accesso a origini dati esterne rilevanti per il suo specifico contesto operativo, permettendogli di fornire risposte più mirate e precise rispetto a un chatbot generico.

In che modo RAG differisce dal Low-Rank Adaptation (LoRA)?

RAG e Low-Rank Adaptation (LoRA) sono entrambi metodi per ottimizzare i modelli di intelligenza artificiale senza un completo riaddestramento. Tuttavia, differiscono nel loro approccio: RAG non modifica i parametri del modello, mentre LoRA comporta la loro regolazione.

Cos'è AutoRAG?

AutoRAG è uno strumento sviluppato da Cloudflare che semplifica la configurazione e la gestione delle pipeline RAG per gli sviluppatori. Automatizza la connessione degli strumenti necessari per l'indicizzazione, il recupero e la generazione, garantendo la sincronizzazione dei dati e risposte alle query in tempo reale aggiornando continuamente i contenuti in background.