Hai sentito parlare di Sistemi RAG ovvero Retrieval-Augmented Generation ma non sai come sono correlati con l'Intelligenza Artificiale? Vorresti approfondire, anche tecnicamente, i concetti che sono alla base dei Sistemi RAG e dell' AI Generativa Avanzata ?
Bene, allora seguimi in questo articolo nel quale cercherò di fornirti strumenti e nozioni per comprendere al meglio i concetti base correlati alla Retrieval-Augmented Generation e come siano strettamente connessi con l'Intelligenza Artificiale e le tecnologie emergenti basate su reti neurali.
Ti mostrerò anche qualche esempio pratico su come mettere in piedi un semplice sistema di Retrieval-Augmented Generation per ottimizzare la generazione del testo con l'AI usando prompt sempre più specifici e dettagliati.
I contenuti dell'articolo
Dal lancio di ChatGPT si parla sempre più spesso di Intelligenza Artificale, OpenaAI e prompt, di creazione di immagini o video con l'AI ma troppo spesso si sottovaluta l'importanza dell'Intelligenza Artificiale correlata con la ricerca dei dati e relativa generazione di testo.
Uno degli strumenti più utilizzati per generare dei sistemi di comprensione semantica avanzata è basato sulla tecnologia RAG (Retrieval-Augmented Generation) che combina tecniche di fine tuning con ricerca vettoriale per fornire risposte sempre più accurate e pertinenti.
Se vuoi approfondire i temi di fine tuning e ricerca vettoriale ti consiglio i seguenti articoli
Nel quale parlo delle tecnologie alla base della RAG.
RAG Retrieval-Augmented Generation
In questa ottica entra in gioco la RAG ovvero la Retrieval-Augmented Generation, ossia una tecnologia che combina la ricerca vettoriale e l'intelligenza artificiale per utilizzare due potenti tecniche: il retrieval (recupero delle informazioni) e la generazione di testo. L'obiettivo è migliorare la capacità del modello di rispondere a domande o fornire informazioni accurate e contestualizzate, sfruttando una vasta quantità di dati esterni oltre alla sua conoscenza intrinseca.
Come funziona la RAG
La RAG è una tecnologia che combina la Ricerca Vettoriale e il fine tuning di modelli di Intelligenza artificiale, secondo gli step di Retrival (Recupero), Augmentation (Aumento) e Generation (Generazione).
- Retrieval: Quando viene posta una domanda al sistema RAG, questo effettua una ricerca in un database vettoriale di documenti o un indice di conoscenza esterno (ad esempio, un set di documenti o un motore di ricerca specializzato). In questa fase, il sistema individua e recupera i documenti più rilevanti rispetto alla domanda posta.
- Augmentation: I documenti recuperati vengono poi analizzati per estrarre le parti più pertinenti, che serviranno da contesto per la fase successiva. Questo contesto è essenziale per fornire una risposta che sia non solo pertinente ma anche basata su informazioni aggiornate e specifiche.
- Generation: Utilizzando i documenti recuperati come contesto, un modello generativo pre addestrato (di solito basato su una rete neurale, come GPT, di tipo fine tuned) genera una risposta alla domanda. Il modello non si limita a restituire le informazioni recuperate, ma elabora il contesto per produrre una risposta naturale e fluida.
Vantaggi della RAG
Questa tecnica permette di avere risposte dal modello, anche fine tuned, più accurate e precise evitando le classiche “allucinazioni” ovvero le risposte inventate che spesso l'AI fornisce quando non riesce a capire il contesto della domanda.
Questo si verifica soprattutto quando le domande riguardano un ambito specifico e non generalizzato, come ad esempio il contesto di una realtà aziendale (documenti, informazioni private, dati aziendali, …).
I vantaggi infatti sono
- Risposte più accurate: Permette di rispondere con informazioni aggiornate anche quando queste non fanno parte del set di dati di training del modello.
- Riduzione dell'allucinazione: Grazie al recupero di documenti reali, il modello ha meno probabilità di inventare informazioni e più probabilità di basarsi su fonti verificate.
- Personalizzazione e contestualizzazione: È possibile configurare il retrieval in modo che attinga a documenti specifici o a un insieme di dati mirato per un settore, migliorando la rilevanza delle risposte.
Applicazioni della RAG
La RAG trova moltissime applicazione in vari ambiti, tra cui le principali sono:
- Chatbot avanzati: Per creare assistenti virtuali in grado di rispondere con dati precisi e aggiornati, ad esempio integrandosi con documenti aziendali.
- Customer support: Per aiutare i team di supporto a rispondere rapidamente e con precisione, attingendo alla documentazione più recente.
- Ricerca scientifica e tecnica: Per facilitare l'accesso a informazioni specifiche in grandi database di conoscenza.
In generale, la RAG è particolarmente utile in situazioni in cui è necessario rispondere con informazioni affidabili e specifiche che non sono direttamente presenti nel set di training del modello, combinando la forza di un motore di ricerca con le capacità generative di un modello AI.
Come implementare un sistema RAG
Questo uno schema esemplificativo che descrive gli step da attuare per mettere in pratica la RAG.
Vediamo in dettaglio come implementare tale sistema analizzando i 5 step descritti: Preparazione, Archiviazione, Recupero, Arricchimento e Generazione.
Preparazione dei dati
La fase di preparazione dei dati è molto importante, perché dalla bontà del dato dipenderà poi la bontà della risposta ottenuta dal modello di AI.
Si devono quindi recuperare tutti i file e le informazioni da usare e poi queste dovranno essere convertite in testo. Una volta convertita l'informazione in testo questa dovrà essere suddivisa in piccole porzioni (es paragrafi).
Archiviazione dei dati
Una volta che il testo è stato suddiviso in piccole porzioni, allora potrà essere utilizzato per eseguire due diverse operazioni:
- Addestrare il modello di AI per il fine tuning
- Popolare il database vettoriale
Nel primo step si potrà usare il testo cosi com'è per generare delle domande e risposte utili per addestrare il modello di partenza, mentre nel secondo caso si dovrà convertire il testo in vettori (embeddings) e poi salvare questi vettori in un database che supporti la ricerca vettoriale (es Solr, mongoDB, Pinecone, … )
terminata questa fase il sistema è pronto per essere utilizzato.
Recupero dei dati (Retrival)
La fase di recupero dati è correlata direttamente con la fase di utilizzo (inferenza) del modello di AI, per cui quando viene fatta una domanda o richiesta una informazione la prima cosa da fare è interrogare il db vettoriale.
Si prende quindi la domanda e la si converte in vettore (embeddings) e si interroga il db vettoriale per trovare le migliori similarità usando le funzionalità di ricerca intrinseche del db vettoriale.
Il sistema fornirà quindi un set di dati affini con la domanda posta.
Arricchimento delle informazioni (Augmentation)
Il set di dati affini fornito dal db vettoriale poi dovrà essere utilizzato per arricchire la domanda e generare un prompt più specifico al contesto.
Facciamo un esempio, supponiamo di fare una domanda relativa ad un evento o ad un concetto che il modello di AI generico non conosce, il prompt sarà simile a questo:
L'utente ha chiesto : [DOMANDA]
Fornisci una risposta adeguata alla domanda basandoti su queste informazioni : [SET DATI FORNITO DAL DB VETTORIALE]
Generazione della risposta (Generation)
Il prompt generato basato su “domanda + dati affini” può a questo punto essere dato in pasto all'AI.
Siccome abbiamo pre addestrato (fine tuning) il modello di AI questi potrebbe conoscere le informazioni richieste, tuttavia con il prompt generato sarà ancora più semplice per il modello fornire una risposta corretta ed adeguata.
Con questa tecnica si riducono drasticamente le “allucinazioni” e si riesce ad avere informazioni adeguate e pertinenti.
Esempio in Phyton
Vediamo ora un esempio realizzato in Phyton che si rifà a quanto già implementato nell'articolo sulla ricerca vettoriale con Pinecone.
Pinecone è un DBMS specializzato in ricerca vettoriale, progettato per fornire risultati di query estremamente rapidi su grandi set di dati, senza bisogno di infrastrutture complesse. Pinecone è molto utilizzato in ambiti che richiedono scalabilità considerando che è disponibile in versione Cloud.
Supponiamo quindi di aver già creato un dbms vettoriale con Pinecone e di averlo già popolato, ora vediamo come implementare un sistema usando anche OpenAI per la generazione del testo e degli embeddings.
Come puoi vedere la realizzazione è abbastanza semplice.
Vuoi un Sistema di Ricerca Semantica Aziendale?
Se ti interessa questa soluzione e vorresti capire se puoi implementare in azienda un sistema di Ricerca Vettoriale basato sull' Intelligenza Artificiale e l'Analisi Semantica dei testi allora contattami.
Sarò lieto di mostrarti “troovo” la soluzione software che ho implementato appositamente per gli studi professionali e le piccole e medie imprese integrato con l'AI
troovo è un software che semplifica la gestione dei tuoi documenti aziendali! Archivia, indicizza e trova facilmente i tuoi file, inoltre con l'aiuto dell'AI e della tecnologia RAG ottieni risposte rapide e precise dai tuoi stessi documenti.
Fai una domanda e Troovo ti guiderà al documento ed alla risposta giusta.
Facciamo un esempio concreto:
Immagina uno studio di ingegneria che sta lavorando a un progetto per la costruzione di un nuovo ponte. Gli ingegneri hanno bisogno di accedere rapidamente a documenti tecnici, normative di costruzione, studi strutturali e progetti precedenti, tutti archiviati nei loro sistemi aziendali. Con Troovo, possono farlo in modo semplice e veloce.
Utilizzando un sistema di ricerca vettoriale, un ingegnere può digitare nella barra di ricerca: “normative per la costruzione di ponti in acciaio” o “progetto ponte ad arco”. Troovo cerca in tempo reale tutti i documenti rilevanti già indicizzati, trovando rapidamente regolamenti, manuali e file tecnici specifici per la costruzione del ponte.
Una volta trovati i documenti potrai interrogare l'Intelligenza Artificiale per fargli domande specifiche o redigere un breve documento di sintesi.
Potrai inoltre salvare i tuoi documenti in bucket S3 privati, sicuri ed ottimizzati per generare copie di backup.
Esempi pratici di applicazioni della Retrieval-Augmented Generation (RAG)
La Retrieval-Augmented Generation (RAG) rappresenta una delle innovazioni più promettenti nell’ambito dell’intelligenza artificiale, grazie alla sua capacità di combinare il recupero di informazioni da fonti esterne con la generazione di testo contestualizzato. Questo approccio si presta a un’ampia gamma di applicazioni pratiche in diversi settori, rivoluzionando il modo in cui accediamo e utilizziamo la conoscenza.
Nell’ambito dell’assistenza clienti, ad esempio, i chatbot basati su RAG possono rispondere a domande complesse consultando manuali tecnici, FAQ e documenti aziendali in tempo reale, offrendo soluzioni precise e riducendo significativamente i tempi di risposta.
Allo stesso modo, nel campo della ricerca scientifica, questo sistema consente di sintetizzare informazioni rilevanti da database accademici, fornendo ai ricercatori risposte rapide e dettagliate su argomenti specifici, senza la necessità di scorrere manualmente lunghi articoli.
Anche nel mondo aziendale la RAG dimostra il suo valore, rendendo la gestione documentale più efficiente: dai contratti legali alle policy interne, il sistema è in grado di individuare clausole specifiche o passaggi di interesse, semplificando le operazioni quotidiane.
Nel settore dell’educazione e della formazione, piattaforme di e-learning avanzate possono utilizzare questa tecnologia per rispondere alle domande degli studenti, recuperando informazioni da libri di testo e materiali didattici per spiegare concetti in modo chiaro e personalizzato. Perfino l’e-commerce trae vantaggio dalla RAG, poiché i motori di ricerca interni possono suggerire prodotti pertinenti basandosi su recensioni, descrizioni e cataloghi, migliorando l’esperienza d’acquisto dell’utente.
In ambito medico, infine, questa tecnologia si rivela particolarmente utile per consultare manuali clinici e linee guida aggiornate, aiutando i professionisti della salute a prendere decisioni informate e basate su evidenze.
La versatilità della RAG la rende dunque una soluzione trasversale, capace di rispondere alle sfide legate alla complessità e alla quantità di dati disponibili, adattandosi con precisione a molteplici scenari d’uso.
Il mio video tutorial
Se vuoi saperne di più ti consiglio di guardare il video che ho pubblicato sul mio canale YouTube!
Conclusioni su RAG, ricerca vettoriale e AI
In questo articolo ho cercato di fornirti strumenti e nozioni per comprendere al meglio i concetti base correlati alla Retrieval-Augmented Generation e come siano strettamente connessi con l'Intelligenza Artificiale e le tecnologie emergenti basate su reti neurali.
Ti ho mostrato anche qualche esempio pratico su come mettere in piedi un semplice sistema di Retrieval-Augmented Generation per ottimizzare la ricerca e comprensione del testo.
Che te ne pare di questo articolo? Avevi mai sentito parlare di ricerca vettoriale e RAG?