Retrieval Augmented Generation, spiegata semplice

I Large Language Model possono essere incoerenti. A volte forniscono risposte precise alle domande, altre volte ripetono fatti casuali provenienti dai loro dati di addestramento. Se a volte sembrano non sapere cosa stiano dicendo, è perché effettivamente non lo sanno. Gli LLM comprendono come le parole si relazionano statisticamente, ma non il loro significato. La Retrieval Augmented Generation (RAG) è un framework di intelligenza artificiale che migliora la qualità delle risposte generate dagli LLM ancorando il modello a fonti esterne di conoscenza per integrare la rappresentazione interna delle informazioni del LLM. In questo articolo andremo a vedere più da vicino cosa sono e come funzionano per capire qual è il futuro dell’intelligenza artificiale.

Cosa troverai in questo articolo

  • Retrieval Augmented Generation: una breve introduzione
  • Che cos’è la Retrieval Augmented Generation
  • Come funziona la Retrieval Augmented Generation
  • Retrieval Augmented Generation: quali sono i vantaggi?
  • Retrieval Augmented Generation: esempi di implementazioni
Retrieval Augmented Generation, spiegata semplice

Retrieval Augmented Generation: una breve introduzione

L'intelligenza artificiale generativa (AI) eccelle nella creazione di risposte di testo basate su modelli linguistici di grandi dimensioni (LLM, large language model) dove l'AI viene addestrata attraverso un numero enorme di datapoint.

La buona notizia è che il testo generato è spesso facile da leggere e fornisce risposte dettagliate che sono ampiamente applicabili alle domande poste dal software, spesso definite come prompt.

La brutta notizia è che le informazioni utilizzate per generare la risposta sono limitate alle informazioni usate per addestrare l'intelligenza artificiale, spesso un LLM generalizzato. I dati del LLM potrebbero non essere stati aggiornati da settimane, mesi o anni e nel caso di un chatbot aziendale AI potrebbero non includere informazioni specifiche sui prodotti o servizi dell'organizzazione. Ciò può portare a risposte errate che erodono la fiducia che clienti e dipendenti ripongono nella tecnologia.

È qui che entra in gioco la retrieval-augmented generation (RAG). La RAG fornisce un modo per ottimizzare la produzione di un LLM con informazioni mirate senza modificare il modello alla sua base; quelle informazioni mirate possono essere più aggiornate rispetto al LLM, ma anche più precise nel caso di organizzazioni e settori specifici. Ciò significa che il sistema di intelligenza artificiale generativa può fornire risposte più appropriate ai prompt, e basare tali risposte su dati estremamente attuali.

Che cos’è la Retrieval Augmented Generation

La retrieval-augmented generation (RAG) è una tecnica che migliora l’accuratezza e l’affidabilità dei modelli di intelligenza artificiale generativa grazie a informazioni recuperate da fonti di dati specifiche e pertinenti. In altre parole, colma una lacuna nel funzionamento dei modelli linguistici di grandi dimensioni (LLM).

Alla base, gli LLM sono reti neurali, solitamente valutate in base al numero di parametri che contengono. I parametri di un LLM rappresentano essenzialmente i modelli generali con cui gli esseri umani usano le parole per formare frasi.

Questa comprensione profonda, a volte chiamata conoscenza parametrizzata, rende i LLM utili nel rispondere a richieste generiche. Tuttavia, non è sufficiente per chi ha bisogno di approfondimenti su informazioni molto specifiche.

Patrick Lewis, autore principale dell’articolo del 2020 che ha coniato il termine, e i suoi colleghi hanno sviluppato la retrieval-augmented generation per collegare i servizi di IA generativa a risorse esterne, in particolare quelle ricche di dettagli tecnici aggiornati.

La RAG fornisce ai modelli delle fonti che possono essere citate, come le note a piè di pagina in un articolo scientifico, in modo che gli utenti possano verificare qualsiasi affermazione. Questo contribuisce a costruire fiducia.

Inoltre, la tecnica può aiutare i modelli a chiarire eventuali ambiguità presenti nella richiesta dell’utente. Riduce anche la possibilità che il modello fornisca una risposta molto plausibile ma errata, un fenomeno noto come allucinazione.

Un altro grande vantaggio della RAG è la sua relativa semplicità.

In un blog, Lewis e tre coautori dell’articolo spiegano che i programmatori possono implementare il processo con appena cinque righe di codice. Questo rende il metodo più rapido ed economico rispetto al riaddestramento di un modello con nuovi dataset. E consente agli utenti di cambiare dinamicamente le fonti di riferimento.

Con la retrieval-augmented generation, gli utenti possono sostanzialmente dialogare con insiemi di dati, aprendo la strada a nuove esperienze. Ciò significa che le applicazioni della RAG potrebbero moltiplicarsi in base al numero di dataset disponibili.

Quasi qualsiasi azienda può trasformare i propri manuali tecnici o normativi, video o log in risorse chiamate basi di conoscenza, capaci di potenziare i LLM. Queste fonti abilitano scenari d’uso come l’assistenza clienti o sul campo, la formazione del personale e la produttività degli sviluppatori.

La differenza tra RAG e fine-tuning

Attualmente, la maggior parte delle organizzazioni non addestra modelli di intelligenza artificiale partendo da zero. Invece, personalizza modelli pre-addestrati in base alle proprie esigenze, spesso utilizzando tecniche come la RAG o il fine-tuning.

Molto spesso questi due vengono confusi dal pubblico non tecnico, quindi prendiamoci un po’ di spazio per una breve panoramica delle differenze tra queste due strategie.

Il fine-tuning comporta la modifica dei pesi del modello, producendo un modello altamente personalizzato e ottimizzato per un compito specifico. È una buona opzione per le organizzazioni che lavorano con basi di codice scritte in un linguaggio specialistico, soprattutto se tale linguaggio non è ben rappresentato nei dati di addestramento originali del modello.

La RAG, invece, non richiede modifiche ai pesi.

Recupera e raccoglie informazioni da varie fonti di dati per arricchire un prompt, consentendo così al modello di generare una risposta più rilevante e contestualizzata per l’utente finale.

Alcune organizzazioni iniziano con la RAG e successivamente effettuano il fine-tuning del modello per affrontare compiti più specifici. Altre trovano che la sola RAG sia sufficiente per personalizzare l’intelligenza artificiale secondo le proprie necessità.

Ti serve aiuto per portare Microsoft 365 Copilot in azienda?

In collaborazione con intranet.ai e Copilot Circle, Dev4Side Software offre un programma di adozione completo per massimizzare l’investimento in Microsoft 365 Copilot con il supporto continuo dei nostri esperti.

Ci occupiamo noi di configurare il digital workplace della tua azienda e di formare gli utenti sull’utilizzo di Copilot nelle applicazioni di Microsoft 365. Potrai personalizzare il piano in base alle tue esigenze, scegliendo tra i seguenti servizi:

  • Migrazione dei dati aziendali verso il cloud di Microsoft
  • Assessment della sicurezza e dei permessi utente
  • Formazione e accesso alla community di pratica
  • Analisi e sviluppo di estensioni personalizzate

Come funziona la Retrieval Augmented Generation

La RAG funziona combinando modelli di recupero delle informazioni con modelli di intelligenza artificiale generativa, allo scopo di produrre contenuti più autorevoli. I sistemi RAG interrogano una base di conoscenza e aggiungono maggiore contesto al prompt dell’utente prima di generare una risposta.

I modelli LLM standard attingono le informazioni dai propri dataset di addestramento. La RAG aggiunge una componente di recupero delle informazioni al flusso di lavoro dell’IA, raccogliendo dati pertinenti e fornendoli al modello generativo per migliorarne la qualità e l’utilità delle risposte.

I sistemi RAG seguono un processo in cinque fasi:

  1. L’utente invia un prompt.
  2. Il modello di recupero delle informazioni interroga la base di conoscenza per ottenere dati rilevanti.
  3. Le informazioni pertinenti vengono restituite dalla base di conoscenza al livello di integrazione.
  4. Il sistema RAG costruisce un prompt arricchito per l’LLM, integrando il contesto dei dati recuperati.
  5. L’LLM genera un output e lo restituisce all’utente.

I sistemi RAG comprendono quattro componenti principali (più uno extra) che vediamo di seguito.

Knowledge base

La prima fase nella costruzione di un sistema RAG consiste nella creazione di una base di conoscenza (knowledge base) interrogabile. Il repository di dati esterni può contenere informazioni provenienti da un’infinità di fonti: PDF, documenti, guide, siti web, file audio e altro ancora. Gran parte di questi contenuti sarà costituita da dati non strutturati, ovvero non ancora etichettati.

I sistemi RAG utilizzano un processo chiamato embedding per trasformare i dati in rappresentazioni numeriche chiamate vettori. Il modello di embedding vettorializza i dati all’interno di uno spazio matematico multidimensionale, organizzando i punti dati in base alla loro somiglianza. I punti giudicati più pertinenti tra loro vengono posizionati vicini.

Le basi di conoscenza devono essere aggiornate costantemente per garantire la qualità e la rilevanza del sistema RAG.

Chunking

Gli input degli LLM sono limitati dalla finestra di contesto del modello, ovvero dalla quantità di dati che può elaborare senza perdere il filo logico. Suddividere un documento in parti più piccole (chunking) aiuta a garantire che gli embedding risultanti non superino i limiti della finestra di contesto dell’LLM all’interno di un sistema RAG.

La dimensione dei chunk è un iperparametro importante per il sistema RAG. Se i chunk sono troppo grandi, i punti dati possono risultare troppo generici e non corrispondere in modo preciso alle possibili richieste degli utenti. Al contrario, se sono troppo piccoli, i punti dati possono perdere coerenza semantica.

Retriever

La vettorializzazione dei dati prepara la base di conoscenza per la semantic vector search, una tecnica che identifica i punti nel database simili alla query dell’utente. Gli algoritmi di semantic search basati sul machine learning possono interrogare database di grandi dimensioni e identificare rapidamente le informazioni rilevanti, riducendo la latenza rispetto alle ricerche tradizionali basate su parole chiave.

Il modello di recupero delle informazioni trasforma la query dell’utente in un embedding e cerca nella base di conoscenza gli embedding più simili. I risultati vengono poi restituiti dalla base di conoscenza.

Integration layer

Il livello di integrazione è il fulcro dell’architettura RAG: coordina i processi e gestisce il flusso di dati all’interno del sistema. Con i dati aggiuntivi provenienti dalla base di conoscenza, il sistema RAG genera un nuovo prompt per il componente LLM. Questo prompt è composto dalla query originale dell’utente, arricchita con il contesto restituito dal modello di recupero.

I sistemi RAG impiegano diverse tecniche di prompt engineering per automatizzare la creazione di prompt efficaci e aiutare l’LLM a fornire la miglior risposta possibile. Parallelamente, framework di orchestrazione degli LLM governano il funzionamento complessivo del sistema di intelligenza artificiale.

Generatore

Il generatore crea un output basato sul prompt arricchito che riceve dal livello di integrazione. Questo prompt sintetizza l’input dell’utente con i dati recuperati e istruisce il generatore a tener conto di tali informazioni nella risposta. I generatori sono in genere modelli linguistici pre-addestrati.

Retrieval Augmented Generation: quali sono i vantaggi?

La RAG consente alle organizzazioni di evitare i costi elevati del riaddestramento quando si tratta di adattare i modelli di intelligenza artificiale generativa a casi d’uso specifici di settore. Le aziende possono utilizzare la RAG per colmare le lacune nella base di conoscenza di un modello di machine learning, permettendogli così di fornire risposte migliori.

Ma non è l’unico vantaggio; nei prossimi paragrafi, vedremo di sviscerare i principali benefici che la RAG può offrire.

Implementazione dell’AI cost-efficient e AI scaling

Quando implementano soluzioni di intelligenza artificiale, la maggior parte delle organizzazioni parte dalla selezione di un foundation model, ovvero un modello di deep learning che funge da base per lo sviluppo di versioni più avanzate. I foundation model possiedono solitamente basi di conoscenza generali, alimentate da dati di addestramento pubblicamente disponibili, come i contenuti presenti su Internet al momento dell’addestramento.

Il riaddestramento di un foundation model, o il fine-tuning—ossia un ulteriore addestramento su un nuovo dataset più ridotto e specifico per un determinato dominio—è un processo che richiede molte risorse ed è costoso dal punto di vista computazionale. Il modello modifica parte o tutti i suoi parametri per adattare le prestazioni ai nuovi dati specializzati.

Con la RAG, le aziende possono utilizzare fonti di dati interne e autorevoli, ottenendo miglioramenti comparabili nelle prestazioni del modello senza doverlo riaddestrare. Ciò consente di scalare l’implementazione delle applicazioni di IA in base alle esigenze, riducendo al contempo i costi e l’impiego di risorse.

Accesso ai dati attuali e specifici del dominio

I modelli di intelligenza artificiale generativa hanno un knowledge cutoff, cioè il punto in cui i dati di addestramento sono stati aggiornati per l'ultima volta. Man mano che un modello invecchia oltre il suo knowledge cutoff, perde rilevanza nel tempo. I sistemi RAG collegano i modelli a dati esterni supplementari in tempo reale e incorporano informazioni aggiornate nelle risposte generate.

Le aziende utilizzano la RAG per fornire ai modelli informazioni specifiche, come i dati proprietari dei clienti, ricerche autorevoli e altri documenti pertinenti.

I modelli RAG possono anche connettersi a Internet tramite interfacce di programmazione delle applicazioni (API) e accedere a feed social media in tempo reale e recensioni dei consumatori per una migliore comprensione del sentiment del mercato. Nel frattempo, l'accesso a notizie in tempo reale e motori di ricerca può portare a risposte più accurate, poiché i modelli integrano le informazioni recuperate nel processo di generazione del testo.

Minore rischio di allucinazioni

I modelli di intelligenza artificiale generativa, come GPT di OpenAI, funzionano rilevando schemi nei loro dati e utilizzando tali schemi per prevedere i risultati più probabili in risposta agli input dell’utente. A volte, i modelli rilevano schemi che in realtà non esistono. Un' allucinazione o confabulazione si verifica quando i modelli presentano informazioni errate o inventate come se fossero fattuali.

La RAG ancora gli LLM su conoscenze specifiche supportate da dati fattuali, autorevoli e aggiornati. Rispetto a un modello generativo che opera solo sui propri dati di addestramento, i modelli RAG tendono a fornire risposte più accurate all'interno dei contesti dei loro dati esterni. Sebbene la RAG possa ridurre il rischio di allucinazioni, non può rendere un modello esente da errori.

Maggiore fiducia da parte degli utenti

I chatbot, una delle implementazioni più comuni di intelligenza artificiale generativa, rispondono alle domande poste dagli utenti umani. Affinché un chatbot come ChatGPT abbia successo, gli utenti devono considerare le sue risposte come affidabili. I modelli RAG possono includere citazioni alle fonti di conoscenza presenti nei loro dati esterni come parte delle risposte.

Quando i modelli RAG citano le loro fonti, gli utenti umani possono verificare quelle risposte per confermare l'accuratezza, consultando le opere citate per chiarimenti e informazioni aggiuntive. L'archiviazione dei dati aziendali è spesso un labirinto complesso e frammentato. Le risposte RAG con citazioni indirizzano gli utenti direttamente ai materiali di cui hanno bisogno.

Casi d’uso espansi

L'accesso a più dati significa che un modello può gestire una gamma più ampia di prompt. Le aziende possono ottimizzare i modelli e ottenere maggiore valore da essi ampliando le loro basi di conoscenza, espandendo così i contesti in cui tali modelli generano risultati affidabili.

Combinando l'intelligenza artificiale generativa con i sistemi di recupero, i modelli RAG possono recuperare e integrare informazioni da più fonti di dati in risposta a query complesse.

Maggiore controllo per gli sviluppatori

Le organizzazioni moderne elaborano costantemente enormi quantità di dati, che vanno dagli input degli ordini alle proiezioni di mercato, dal turnover dei dipendenti e altro ancora. Una costruzione efficace delle pipeline di dati e un'adeguata archiviazione dei dati sono fondamentali per una forte implementazione della RAG.

Allo stesso tempo, sviluppatori e data scientist possono modificare le fonti di dati a cui i modelli hanno accesso in qualsiasi momento. Riposizionare un modello da un compito a un altro diventa un compito di adattamento delle sue fonti di conoscenza esterne, piuttosto che un processo di fine-tuning o riaddestramento. Se è necessario il fine-tuning, gli sviluppatori possono dare priorità a questo lavoro, anziché gestire le fonti di dati del modello.

Maggiore sicurezza dei dati

Poiché la RAG collega un modello a fonti di conoscenza esterne anziché incorporare tale conoscenza nei dati di addestramento del modello, mantiene una separazione tra il modello e quella conoscenza esterna. Le aziende possono utilizzare la RAG per preservare i dati di prima parte, concedendo al contempo l'accesso ad essi ai modelli—accesso che può essere revocato in qualsiasi momento.

Tuttavia, le aziende devono essere vigili nel mantenere la sicurezza delle stesse basi di dati esterne. La RAG utilizza database vettoriali, che impiegano embedding per convertire i punti dati in rappresentazioni numeriche. Se questi database vengono compromessi, gli attaccanti potrebbero invertire il processo di embedding vettoriale e accedere ai dati originali, specialmente se il database vettoriale non è crittografato.

Retrieval Augmented Generation: esempi di implementazione

I sistemi RAG consentono essenzialmente agli utenti di interrogare i database utilizzando un linguaggio conversazionale. Le capacità di risposta alle domande alimentate dai dati dei sistemi RAG sono state applicate in una vasta gamma di casi d'uso, tra cui vediamo di elencare alcuni dei principali in questa sezione.

Chatbot, assistenti virtuali specializzati e ricerca

Le aziende che desiderano automatizzare il supporto clienti potrebbero scoprire che i loro modelli di intelligenza artificiale non possiedono le conoscenze specializzate necessarie per assistere adeguatamente i clienti. I sistemi RAG collegano i modelli ai dati interni per fornire ai chatbot di supporto clienti le informazioni più recenti sui prodotti, servizi e politiche di un'azienda.

Lo stesso principio si applica agli avatar AI e agli assistenti personali. Collegare il modello sottostante ai dati personali dell'utente e fare riferimento alle interazioni precedenti fornisce un'esperienza utente più personalizzata.

In grado di leggere documenti interni e interfacciarsi con i motori di ricerca, i modelli RAG eccellono anche nella ricerca. Gli analisti finanziari possono generare report specifici per i clienti con informazioni di mercato aggiornate e attività di investimento precedenti, mentre i professionisti medici possono interagire con i registri dei pazienti e delle istituzioni.

Content generation, Market analysis e product development

La capacità dei modelli RAG di citare fonti autorevoli può portare a una generazione di contenuti più affidabile. Sebbene tutti i modelli di intelligenza artificiale generativa possano commettere hallucination, la RAG facilita la verifica da parte degli utenti della precisione dei risultati.

I leader aziendali possono consultare le tendenze dei social media, l'attività dei concorrenti, le notizie di settore e altre fonti online per informare meglio le decisioni aziendali. Nel frattempo, i product manager possono fare riferimento ai feedback dei clienti e ai comportamenti degli utenti quando considerano le scelte per lo sviluppo futuro.

Knowledge engine e servizi di raccomandazione

I sistemi RAG possono potenziare i dipendenti con informazioni interne dell'azienda. Processi di onboarding semplificati, supporto HR più rapido e guida on-demand per i dipendenti sul campo sono solo alcuni dei modi in cui le aziende possono utilizzare la RAG per migliorare le performance lavorative.

Analizzando il comportamento precedente degli utenti e confrontandolo con le offerte attuali, i sistemi RAG alimentano servizi di raccomandazione più accurati. Una piattaforma di e-commerce e un servizio di distribuzione di contenuti possono entrambi utilizzare la RAG per mantenere i clienti coinvolti e incentivare gli acquisti.

Conclusioni

L’intelligenza artificiale è qui per restare e ha già dimostrato di poter radicalmente trasformare il nostro modo di lavorare e di concepire gli strumenti che utilizziamo per operare nella nostra quotidianità.

Come ogni nuovo strumento, anche l’AI ha avuto la sua serie di problematiche iniziali che però la comunità tecnologica si sta impegnando alacremente a risolvere anche mediante tecniche all’avanguardia come la RAG.

Come si evolverà ulteriormente l’AI nei prossimi anni solo il tempo potrà dircelo ma nel frattempo possiamo cominciare a dare una sbirciata al futuro di questa tecnologia e, dalle premesse, sembra essere molto promettente.

FAQ sulla Retrieval Augmented Generation

Che cos’è la Retrieval Augmented Generation (RAG)?

La Retrieval Augmented Generation è una tecnica che consente di migliorare le risposte prodotte da un modello linguistico generativo integrando dati esterni e pertinenti. Questo approccio aiuta l’intelligenza artificiale a superare i limiti dei suoi dati di addestramento, rendendo le risposte più accurate, aggiornate e affidabili.

In che modo la RAG migliora i modelli LLM?

Gli LLM tradizionali generano output sulla base di dati addestrati in precedenza, che possono non includere informazioni recenti o contestuali. La RAG colma questa lacuna aggiungendo al prompt dell’utente dati recuperati in tempo reale da fonti esterne, offrendo così un contesto più ricco che guida il modello verso risposte migliori.

Qual è la differenza tra RAG e fine-tuning?

La RAG non modifica i parametri del modello, ma si limita ad arricchire i prompt con informazioni aggiornate e pertinenti recuperate da fonti esterne. Il fine-tuning, invece, comporta una rielaborazione interna del modello stesso, che viene riaddestrato su nuovi dati. La RAG è quindi più flessibile, veloce da implementare e meno costosa, ed è adatta a situazioni in cui le fonti informative cambiano nel tempo.

Come funziona un sistema RAG?

Un sistema RAG riceve una domanda dall’utente, recupera dati rilevanti da una base di conoscenza esterna tramite un sistema di ricerca semantica, integra questi dati nel prompt originario e infine genera una risposta attraverso il modello LLM. Il flusso di lavoro include una base di conoscenza, una fase di suddivisione dei contenuti in porzioni gestibili, un modulo di ricerca, un livello di integrazione e il generatore finale che restituisce la risposta.

Cosa si intende per chunking?

Il chunking è il processo che consiste nel dividere documenti più lunghi in porzioni più piccole e semanticamente coerenti. Questo è necessario perché i modelli LLM possono gestire solo una quantità limitata di testo per volta. Se i blocchi sono troppo grandi, si rischia di perdere precisione; se sono troppo piccoli, si rischia di perdere significato.

Quali sono i vantaggi principali della RAG?

Utilizzare la RAG permette di evitare costosi processi di riaddestramento del modello, riduce le probabilità che l’intelligenza artificiale fornisca informazioni errate o inventate e consente di integrare facilmente dati aggiornati, anche in tempo reale. Inoltre, fornisce maggiore controllo agli sviluppatori che possono modificare le fonti informative senza alterare il modello e migliora la sicurezza dei dati separando il modello stesso dai contenuti esterni.

Quali sono gli ambiti di applicazione più comuni?

Le applicazioni più diffuse della RAG includono chatbot e assistenti virtuali che sfruttano dati aziendali specifici, motori di ricerca avanzati per ambiti come finanza e sanità, sistemi per generare contenuti verificabili, strumenti di analisi di mercato e sviluppo prodotto, nonché knowledge engine interni e piattaforme di raccomandazione personalizzate.

La RAG elimina completamente gli errori dei modelli AI?

No, la RAG non rende un modello infallibile. Anche se riduce in modo significativo il rischio di generare risposte errate o fittizie, note come allucinazioni, l’accuratezza complessiva dipende sempre dalla qualità delle fonti utilizzate e dalla progettazione del sistema.

Entra in contatto con il team

Modern Apps

Il team Modern Apps è specializzato nello sviluppo e nell'integrazione all'interno dell'intero ecosistema Microsoft 365. Progettiamo applicazioni native per le piattaforme Microsoft ed Azure e implementiamo processi aziendali che si integrano e massimizzano l'investimento aziendale effettuato con Microsoft 365.