Cos'è il RAG o la generazione aumentata da recupero?
La Generazione Aumentata da Recupero (RAG), acronimo di Retrieval Augmented Generation, è un concetto quasi inscindibile dall'utilizzo dell'intelligenza artificiale generativa in un contesto professionale. Ma che cos'è esattamente il RAG, e perché è un elemento così essenziale per un'implementazione utile dell'IA?
Per comprendere il valore del RAG, si può ricorrere a un'efficace analogia. Un assistente di IA generativa senza Generazione Aumentata da Recupero è come uno stagista digitale entusiasta, con un atteggiamento da bravo studente. Se gli viene posta una domanda, farà del suo meglio per fornire una risposta, anche quando in realtà non conosce la soluzione corretta. In questo primo scenario, parliamo di allucinazione nell'IA generativa: si ottiene una risposta che sembra plausibile, ma che in realtà non è veritiera.
L'IA generativa combinata con il RAG è come lo stesso stagista zelante, ma questa volta armato di un'enciclopedia ricca di conoscenze pertinenti. Ponetegli la stessa domanda, per la quale la sua conoscenza immediata è insufficiente, e lo stagista consulterà l'enciclopedia per trovare la vera risposta. Nel secondo scenario, l'assistente IA ha utilizzato il RAG per arrivare a una risposta autentica grazie alle informazioni corrette e verificate.
Perché il RAG è necessario?
L'IA generativa è costruita su Modelli di Linguaggio su Larga Scala (LLM). Questi sono modelli come GPT 4.5 di OpenAI o Llama 3.3 di Meta, sviluppati principalmente da giganti tecnologici americani e addestrati su enormi supercomputer IA. L'addestramento di un LLM avviene utilizzando grandi quantità di dati di addestramento. Alimentando una rete neurale con una quantità immensa di dati annotati, si formano connessioni tra i neuroni digitali, consentendo alla rete di reagire correttamente a nuovi dati nel tempo.
Mostrate a una tale rete neurale migliaia di foto di gatti e cani, e col tempo sarà in grado di riconoscere autonomamente gli animali in nuove immagini. Si può anche pensare in grande, come OpenAI, e utilizzare come dati di addestramento metà di Internet, includendo articoli, messaggi sui forum, libri digitali, blog e molto altro. Addestrate una rete con dati su larga scala, e otterrete un modello che rende possibile ChatGPT.
Gli LLM sono addestrati utilizzando queste immense quantità di dati generali e storici. Sulla base di questi dati, sono in grado di formulare risposte a domande che sembrano estremamente realistiche. Tuttavia, non appena un modello come GPT 4.5 è finalizzato, l'addestramento è completato. Si pensi a uno studente che si laurea e inizia a lavorare: i corsi sono finiti, quindi le informazioni aggiuntive (nuove) non saranno più collegate allo studente e al diploma.
Lo studente inizia a lavorare con le conoscenze acquisite durante il percorso di laurea. Allo stesso modo, l'LLM opera con le conoscenze acquisite durante l'addestramento. L'utilizzo di una rete neurale addestrata è chiamato inferenza. Nella fase di inferenza, l'LLM non ha più conoscenza dei dati creati dopo la sua finalizzazione. Di conseguenza, un LLM non può rispondere autonomamente a domande di attualità. Inoltre, un LLM è addestrato su una moltitudine di dati generali e non ha conoscenza di dati specifici dell'azienda o di informazioni che non facevano parte del processo di addestramento iniziale.
Il limite dell'addestramento con dati aziendali
OpenAI, Meta, Microsoft e altre parti normalmente non hanno accesso ai dati specifici della vostra azienda. Un LLM, quindi, non è addestrato su tali dati. Se chiedete una descrizione del prodotto X o informazioni sul cliente Y, l'LLM, nel migliore dei casi, dirà di non possedere tale conoscenza, o nel peggiore, allucinerà una risposta che sembra buona ma è falsa.
Per implementare un LLM in un contesto aziendale, il modello dovrebbe avere conoscenza di tutti i dati importanti della vostra attività. Si pensi al catalogo prodotti, ai clienti, ai risultati finanziari e altro ancora. Per questo, si potrebbe considerare di affinare il modello.
Affinamento (Fine-tuning) dei modelli
L'affinamento è come una formazione aggiuntiva per lo stagista direttamente sul posto di lavoro. In questo caso, si continua ad addestrare il modello. Ma questo richiede nuovamente una costosa potenza di calcolo IA e le conoscenze necessarie. Richiede tempo e denaro. Inoltre, si finalizzerà nuovamente il modello a un certo punto. Due giorni dopo, potreste lanciare un nuovo prodotto o acquisire un nuovo cliente, e dovreste ricominciare da capo.
L'affinamento è pertinente per fornire ai modelli di IA generativa una conoscenza di base sulla vostra azienda, ma non risolve il problema alla radice. Non potrete comunque porre una domanda con la garanzia di ottenere una risposta corretta e attuale. L'aggiustamento o l'affinamento dei modelli sui vostri dati è un processo complesso e costoso, e non risolve il problema fondamentale: l'LLM non conosce i nuovi dati o i dati modificati che non facevano parte dell'addestramento.
Generazione Aumentata da Recupero: L'approccio RAG
Il RAG adotta un approccio diverso. Il RAG si riferisce a un metodo in cui l'LLM non viene ulteriormente esteso o riaddestrato, ma la domanda che si pone all'LLM viene arricchita. Se si desidera saperne di più sui prodotti della propria organizzazione, si pone semplicemente la domanda: "Qual è la differenza tra il prodotto X e Y?".
Prima che questa domanda raggiunga l'LLM, il RAG entra in azione. Un altro algoritmo rileva nella richiesta che la vostra domanda riguarda i prodotti. Questo algoritmo associa quindi la vostra domanda al catalogo prodotti e al listino prezzi della vostra azienda. Solo dopo, la domanda viene trasmessa all'LLM. L'LLM cerca ora specificamente una risposta in tutti i vostri dati. Il "QI" dell'assistente IA è il prodotto della formazione generale, ma la risposta alla vostra domanda specifica proviene dai dati forniti in quel momento.
Queste fonti di dati non sono statiche. Vengono nuovamente unite a ogni singola richiesta. Potete collegare database, ma anche wiki pieni di testo, e-mail, fatture e così via. I vostri dati aziendali attuali sono costantemente collegati alla domanda, consentendo all'LLM di avere sempre accesso a informazioni corrette e recenti. Ci vorrebbe del tempo per leggere un catalogo prodotti di 2.000 pagine, collegarlo ai listini prezzi e alle loro evoluzioni, e cercare i clienti pertinenti. Per un LLM combinato con il RAG, è una questione di secondi. Con il RAG, si arricchisce l'informazione. L'LLM l'assorbe e formula una risposta. La risposta è generata, dopo essere stata aumentata con dati recuperati dai sistemi aziendali.
Con il RAG, le capacità dell'LLM derivano dall'addestramento, ma le conoscenze provengono da dati pertinenti estratti da fonti attuali, che vengono intelligentemente aggiunti a una richiesta.
Aspetti pratici dell'implementazione RAG
Il RAG non richiede l'addestramento costoso di un LLM. Infatti, è possibile implementare il RAG con poche righe di codice. I fornitori di soluzioni IA possono occuparsene. A voi spetta il compito di mettere in ordine i vostri dati. Come tutte le applicazioni IA, il RAG funziona bene solo se i dati di origine sono di qualità elevata. "Garbage in, garbage out" è un principio fondamentale anche qui.
Quando il sistema RAG ha accesso ai vostri dati aziendali, li elabora in un database vettoriale. Questo è un processo continuo. Quando in seguito si presenta una richiesta all'LLM, il sistema RAG vi associa i dati pertinenti tramite il database vettoriale. L'associazione dei dati non è un processo intensivo. Non sono necessari sistemi HPC (High-Performance Computing) "folli" per questo e non costa somme astronomiche. Si collegano le conoscenze che si possiedono al cervello IA che si è acquisito, e si beneficia immediatamente dei risultati.
È tuttavia importante che i vostri dati e la soluzione IA siano facilmente collegabili. Ad esempio, può essere utile archiviare i dati nel cloud in un formato strutturato e facilmente accessibile per il sistema RAG, garantendo così fluidità e rapidità nell'ottenere risposte accurate e aggiornate.