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.
Dopo aver letto questo articolo sarai in grado di:
Copia link dell'articolo
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.
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.
I pro dell'utilizzo di RAG per l'ottimizzazione di un LLM includono:
Alcuni dei potenziali svantaggi sono:
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.