Cos'è la RAG?
Introduzione alla RAG e all’IA
La Retrieval-Augmented Generation (RAG) è una tecnologia potente che migliora le capacità dei modelli di linguaggio di grandi dimensioni (LLM) combinando il loro potenziale generativo a fonti di informazioni esterne. In sostanza, la RAG associa l'ampia capacità di generare testo degli LLM alla ricerca di informazioni più accurate, aggiornate e pertinenti, a condizione che le fonti esterne siano affidabili.

Nonostante la straordinaria capacità di generare testi di una qualità paragonabile a quella umana, gli LLM tradizionali hanno dei limiti legati ai dati acquisiti in fase di addestramento.
Le risposte che forniscono potrebbero non essere aggiornate o poco dettagliate, soprattutto nei settori in rapida crescita. Questo limite può essere superato se si consente al modello di accedere ed elaborare i dati provenienti da numerose fonti esterne, ad esempio:
- Database: repository di informazioni strutturate che contengono fatti, cifre e relazioni.
- Documenti: risorse testuali come articoli, report e pagine Web.
- Repository di codice: insiemi di codice e documentazione.
- Knowledge graph: reti di entità e concetti interconnessi.
Incorporando le fonti esterne, questi sistemi permettono agli LLM di generare risposte più pertinenti perché basate su dati fattuali provenienti da fonti affidabili.
Inoltre, la RAG consente di ottenere risposte più aggiornate, che includono gli ultimi sviluppi e novità.
Questa tecnologia dimostra come integrare i sistemi di Intelligenza Artificiale con conoscenze esterne possa renderli più solidi e affidabili. La RAG apre nuove opportunità per diversi settori, come il servizio clienti, l’istruzione, la ricerca e sviluppo.
È probabile che, man mano che la tecnologia RAG si svilupperà, compariranno casi d’uso più innovativi ed efficaci.
Importanza della RAG
Questa metodologia sta acquisendo importanza nel settore IA grazie alla capacità di superare alcuni limiti dei modelli di linguaggio di grandi dimensioni (Large Language Model, LLM). Ecco perché scegliere questa tecnologia è fondamentale:
- Maggiore precisione e affidabilità: gli LLM sono addestrati su enormi dataset, ma possono diventare obsoleti o non coprire settori o argomenti specifici. La tecnologia RAG consente al modello di accedere a informazioni in tempo reale e di incorporarle da fonti esterne, in modo da ottenere risposte più precise e affidabili. Questo aspetto è particolarmente importante negli ambiti in cui la precisione e la correttezza dei fatti sono fondamentali, come il servizio clienti, la sanità e la finanza.
Ad esempio, nell'assistenza clienti la RAG può garantire che vengano fornite informazioni accurate sul prodotto o procedure per la risoluzione dei problemi, mentre nell'assistenza sanitaria può fornire accesso ai dati di ricerca più recenti e alle cartelle cliniche.
- Pertinenza contestuale: le risposte sono più pertinenti al contesto, perché le informazioni rilevanti provengono da risorse esterne e vengono allineate alla query. Di conseguenza, si ottengono risposte più significative e personalizzate, migliorando l’esperienza e la soddisfazione degli utenti.
In questo modo è possibile offrire consigli personalizzati: la RAG suggerisce prodotti e servizi in base alle preferenze dell'utente e alla cronologia degli acquisti. Il settore dell’istruzione, invece, può fornire materiali ed esercizi personalizzati in base alle esigenze degli studenti.
- Evitare le allucinazioni e i bias: talvolta gli LLM generano informazioni errate o distorte, chiamate "allucinazioni". La RAG riduce questo rischio, facendo in modo che gli LLM si basino su dati fattuali, provenienti da fonti affidabili.
- Adattabilità e apprendimento continuo: la RAG permette agli LLM di adattarsi a nuove informazioni e ambiti in evoluzione aggiornando continuamente la propria base di conoscenza. In questo modo, non è più necessario riaddestrare frequentemente gli LLM, che diventano così più efficienti ed economici.
Unire i punti di forza di un LLM con fonti di informazioni esterne apre nuove possibilità per l’IA e il Machine Learning.
Gli LLM sono infatti in grado di eseguire attività complesse che richiedono creatività e accuratezza, come rispondere a domande, riassumere un testo e generare codice.
Ad esempio, la RAG può fornire risposte più complete e articolate a domande complesse, generare riassunti concisi e informativi di testi lunghi e aiutare a generare frammenti di codice basati su descrizioni in linguaggio naturale.
Applicazioni in diversi settori
La RAG è una tecnologia versatile, che ha il potenziale di rivoluzionare il modo in cui interagiamo con le informazioni e di automatizzare le operazioni in diversi settori. Ecco alcune delle principali applicazioni.
Assistenza clienti e supporto
La RAG è in grado di supportare sistemi di assistenza clienti più intelligenti ed efficienti. Accedendo alla documentazione del prodotto, alle informazioni di base e alla cronologia delle interazioni con i clienti, i chatbot basati sulla RAG sono in grado di rispondere in modo accurato alle richieste dei clienti, risolvere i problemi più rapidamente e offrire un supporto personalizzato. Questo si traduce in una maggiore soddisfazione del cliente e in una riduzione dei costi legati all’assistenza.
E-commerce
L'utilizzo di questo metodo consente di migliorare i sistemi di scoperta e raccomandazione di nuovi prodotti. Analizzando le descrizioni dei prodotti, le recensioni dei clienti e la cronologia degli acquisti, la RAG è in grado di fornire suggerimenti più pertinenti, rispondere a domande e generare guide all’acquisto personalizzate. Questo può portare a un aumento delle vendite e ad un maggiore engagement del cliente.
Settore sanitario
La RAG può aiutare gli operatori sanitari a effettuare diagnosi, programmare terapie e assistere i pazienti. L'accesso alla letteratura medica, alle cartelle dei pazienti e ai dati degli studi clinici può fornire informazioni rilevanti, suggerire diagnosi e riassumere i risultati delle ricerche. In questo modo, i professionisti sanitari possono prendere decisioni in modo più accurato ed efficace.
Finanza
La RAG si applica anche all'analisi finanziaria, alla gestione dei rischi e alle strategie di investimento. Grazie all'accesso ai dati di mercato, alle notizie finanziarie e ai report aziendali, la RAG è in grado di riassumere le performance economiche, identificare i potenziali rischi e fornire informazioni utili per le decisioni di investimento. Questo può aiutare le istituzioni finanziarie a fare scelte più informate e basate sui dati.
Istruzione
La RAG personalizza le esperienze di apprendimento e fornisce agli studenti risorse più efficaci. L'accesso a libri di testo, documenti di ricerca e database accademici consente alla RAG di rispondere alle domande degli studenti, generare test e compiti e fornire materiale di studio personalizzato. Questa tecnologia può quindi contribuire a migliorare i risultati e la partecipazione degli studenti.
Legal
In ambito legale, La RAG supporta la ricerca, la revisione dei documenti e l'analisi dei contratti. Grazie all'accesso a database, giurisprudenza e testi legali, la RAG può fornire informazioni relative a casi specifici, riassumere argomentazioni giuridiche e individuare potenziali problemi. In questo modo, gli avvocati possono risparmiare tempo e lavorare in modo più accurato.
Sviluppo software
La RAG assiste gli sviluppatori nella generazione del codice, nel debugging e nella documentazione. Questa tecnologia è in grado di generare frammenti di codice basati su descrizioni in linguaggio naturale, identificare potenziali bug e spiegare le funzionalità del codice accedendo a repository di codice, documentazione e forum online. In questo modo gli sviluppatori possono scrivere il codice in modo più efficiente ed efficace.
Comprendere i modelli RAG
Anche se il concetto può sembrare semplice, i modelli sottostanti si basano su una sofisticata interazione tra componenti. Analizziamo gli elementi della RAG:
Retriever
Questo componente agisce come motore. Analizza le fonti esterne e individua le informazioni più rilevanti per la query. È possibile utilizzare diversi metodi di recupero delle informazioni. Il recupero denso utilizza incorporamenti e rappresentazioni numeriche del testo per catturare il significato semantico.
Il retriever confronta l’incorporamento della query dell’utente con quelli dei documenti nella base per trovare le migliori corrispondenze. Il recupero sparso si basa su tecniche di ricerca tradizionali con parole chiave come TF-IDF (Term Frequency-Inverse Document Frequency) per trovare documenti contenenti i termini della query.
Il recupero ibrido combina i metodi di recupero denso e sparso, sfruttandone i punti forti e offrendo risposte più accurate.
Ranker
Una volta che il retriever ha identificato i documenti potenzialmente rilevanti, il ranker interviene per perfezionare la selezione. Valuta i documenti recuperati e li classifica in base alla loro pertinenza per la query.
In questo modo, si garantisce che vengano trasmesse al generator le informazioni più pertinenti. I metodi di classificazione possono includere punteggi di somiglianza, che misurano la vicinanza tra la query e i documenti recuperati in base ai relativi incorporamenti o alla sovrapposizione di parole chiave; la rilevanza contestuale, che valuta in che modo le informazioni recuperate rispondano alle sfumature e alle finalità della query; la qualità delle fonti, che dà priorità alle informazioni provenienti da fonti affidabili e autorevoli.
Generator
Si tratta del componente principale che si occupa di generare la risposta finale. Generalmente, un modello di linguaggio di grandi dimensioni (LLM) considera i documenti classificati come input e fornisce una risposta coerente e informativa, ma potrebbe trattarsi di qualsiasi modello di IA generativa.
Il generator utilizza le sue capacità di comprensione e di generazione di linguaggio per sintetizzare e presentare le informazioni recuperate in modo naturale e interessante.
Base di conoscenza
La base di conoscenza è la fonte esterna di informazioni su cui si basa il modello RAG. Si tratta di una raccolta di diversi dati: documenti di testo come articoli, libri, pagine Web e repository di codice; database strutturati come tabelle, database relazionali e grafici; contenuti multimediali come immagini, video e file audio.
La scelta della base dipende dall'applicazione e dal tipo di informazioni ricercate.
Diverse architetture RAG
Questo metodo consente di strutturare un sistema in diversi modi. L'architettura a livello di documento prevede che il retriever selezioni tutti i documenti rilevanti per la query e che il generator li elabori nel loro insieme.
Nella RAG a livello di passaggio, invece, il retriever suddivide i documenti in segmenti più brevi e seleziona i più pertinenti,
permettendo un recupero più preciso e mirato. Infine, la RAG basata sulle domande-risposte è progettata per questo tipo di attività: il retriever cerca passaggi che rispondano direttamente alla domanda dell’utente.
Sfide della RAG
Pur offrendo vantaggi significativi, questa tecnologia presenta anche delle sfide che è necessario affrontare per renderla efficace. Un aspetto fondamentale è mantenere una base di conoscenza di qualità elevata. La sua efficacia dipende dall’accuratezza, dalla pertinenza e dalla completezza delle informazioni recuperate.
Questo richiede un’attenta cura e manutenzione della base: aggiornamenti regolari, indicizzazione accurata e filtro delle informazioni irrilevanti o obsolete. Un’altra sfida consiste nel garantire la coerenza dei dati, gestire formati diversi e individuare potenziali distorsioni all'interno dei dati.
Senza una base solida e una manutenzione accurata, questi sistemi possono fornire risposte inaccurate, irrilevanti o fuorvianti, venendo meno al proprio obiettivo.
Inoltre, per ottenere prestazioni ottimali nella RAG è necessario bilanciare l'efficienza di recupero e l'accuratezza. Il recupero di informazioni rilevanti da database massivi può richiedere molto tempo e un utilizzo intensivo delle risorse di calcolo.
Gli sviluppatori devono trovare metodi efficaci per recuperare rapidamente le informazioni più pertinenti e accurate. Per questo motivo è spesso necessario combinare più tecniche di recupero, come il recupero denso e sparso, e definire i parametri con precisione per ottimizzarli per attività e domini specifici.
Inoltre, garantire che le informazioni recuperate siano classificate correttamente e integrate con il processo di generazione degli LLM può rivelarsi un processo complesso, che richiede sofisticati algoritmi di classificazione e strategie di integrazione efficaci. Affrontare queste sfide è fondamentale per costruire sistemi RAG che offrano risposte pertinenti e rapide all’interno di ambienti reali.
Best practice per l’addestramento dei modelli RAG
Sviluppare un’IA efficace non significa soltanto associare un retriever, un ranker e un generator. Per garantire prestazioni ottimali è necessario prestare la massima attenzione all’addestramento e all’ottimizzazione. Ecco alcune best practice fondamentali:
- Base di conoscenza di qualità: una base di informazioni pertinente e con una manutenzione adeguata sono fondamentali per un sistema efficace. Questo implica che i dati siano accurati, aggiornati e privi di errori e incoerenze.
- Ottimizza il retriever: la funzione di recupero è fondamentale per individuare le informazioni più importanti. Scegli il metodo più appropriato (denso, sparso o ibrido) in base alle caratteristiche dei dati e all'attività.
- Perfeziona il ranker: il ranker dà priorità alle informazioni più pertinenti. Le best practice includono la selezione di metriche di classificazione adatte al risultato desiderato, l'inserimento del feedback degli utenti per migliorare l'accuratezza della classificazione e la promozione della diversità nei risultati classificati per fornire diverse prospettive.
- Insegna al generator a comprendere il contesto: il generator deve essere addestrato a utilizzare le informazioni recuperate in modo efficace. In questo modo, sarà in grado di comprendere il contesto dei dati recuperati e le richieste dell'utente e di sintetizzare le informazioni provenienti da più risorse.
Infine, preoccupati di valutare costantemente le performance del modello e di iterare i suoi componenti per garantirne l’efficacia.
Devi quindi definire delle metriche di valutazione chiare che misurino l’accuratezza, la rilevanza e la fluidità delle risposte generate, eseguire test approfonditi con diversi input e scenari e monitorare le performance del modello in ambienti reali per individuare le aree di miglioramento.
OVHcloud e RAG
Accelera il tuo percorso IA con la suite di servizi completa di OVHcloud. Offriamo infrastrutture ad alte prestazioni, strumenti flessibili e supporto qualificato per addestrare, implementare e gestire i modelli di Machine Learning.
Leggi questo articolo che presenta un'architettura di riferimento per una soluzione Retrieval-Augmented Generation semplice, basata su un database vettoriale con servizi gestiti da OVHcloud. In questo use case, diversi documenti PDF/markdown vengono ingeriti come un unico batch per creare una base di conoscenza e una semplice interfaccia di chat che permette all’utente di porre domande.

Migliora le tue applicazioni con AI Endpoints
Progettata per offrire la massima semplicità, la nostra piattaforma permette agli sviluppatori di qualsiasi livello di migliorare le proprie applicazioni con API di IA all'avanguardia, senza necessità di competenze specifiche.
Leggi il nostro articolo sul chatbot RAG creato utilizzando AI Endpoint e LangChain

AI Deploy
Esegui modelli di Machine Learning con la massima semplicità, crea i tuoi access point API senza difficoltà e realizza previsioni efficaci.
Come creare LLM con vLLM e OVHcloud AI Deploy?
In questo tutorial, ti spieghiamo come utilizzare i modelli di linguaggio di grandi dimensioni (LLM) con una guida step by step.

Accelera i carichi di lavoro con le GPU ottimizzate per l’IA e le attività di grafica
Le GPU NVIDIA permettono di espandere i progetti di IA, Deep Learning (DL) e di elaborazione grafica. Sia che tu stia utilizzando modelli di linguaggio di grandi dimensioni (LLM) o eseguendo attività di visual computing, le nostre soluzioni GPU garantiscono velocità ed efficienza.