Red Hot Cyber
La cybersecurity è condivisione. Riconosci il rischio, combattilo, condividi le tue esperienze ed incentiva gli altri a fare meglio di te.
Cerca

Cos’è la Retrieval Augmented Generation

Luca Vinciguerra : 27 Agosto 2024 07:32

Nell’articolo “Perché un Large Language Model (LLM) non è un Database?”, abbiamo esplorato la natura di questa tecnologia, chiarendo come dovrebbe essere utilizzata e, soprattutto, quali sono i suoi limiti. Tra questi, il più significativo è la limitazione della conoscenza del modello a un determinato periodo di tempo, definito dai dati di addestramento (Cutoff Knowledge). Questo comporta il rischio di ricevere risposte obsolete o, in alcuni casi, apparentemente coerenti ma fattualmente errate (le cosiddette allucinazioni).

Una tecnica emergente che consente di superare questi limiti è la Retrieval-Augmented Generation (RAG). La RAG rappresenta un avanzamento significativo nel campo del Natural Language Processing (NLP), combinando le capacità di generazione di linguaggio naturale con quelle di recupero di informazioni. Questa tecnica è particolarmente rilevante in applicazioni che richiedono una comprensione profonda e contestuale del linguaggio e la distribuzione di informazioni affidabili. La RAG si distingue per la sua capacità di migliorare la generazione di testi, incorporando informazioni aggiornate e pertinenti direttamente da database o altre fonti di dati esterne.

A che cosa serve

Nei sistemi di generazione del testo basati su LLM, uno dei principali limiti è la dipendenza esclusiva dal modello generativo, che è vincolato alla conoscenza acquisita durante l’addestramento. Immaginiamo che una grande testata giornalistica voglia mettere a disposizione dei propri lettori un chatbot che fornisce informazioni sugli ultimi eventi relativi, per esempio, alla guerra in Ucraina. Per poter abilitare un LLM a rispondere su fatti di attualità è necessario permettergli di accedere a tali informazioni.


Sponsorizza la prossima Red Hot Cyber Conference!

Il giorno Lunedì 18 maggio e martedì 19 maggio 2026 9 maggio 2026, presso il teatro Italia di Roma (a due passi dalla stazione termini e dalla metro B di Piazza Bologna), si terrà la V edizione della la RHC Conference. Si tratta dell’appuntamento annuale gratuito, creato dalla community di RHC, per far accrescere l’interesse verso le tecnologie digitali, l’innovazione digitale e la consapevolezza del rischio informatico.

Se sei interessato a sponsorizzare l'evento e a rendere la tua azienda protagonista del più grande evento della Cybersecurity Italiana, non perdere questa opportunità. E ricorda che assieme alla sponsorizzazione della conferenza, incluso nel prezzo, avrai un paccheto di Branding sul sito di Red Hot Cyber composto da Banner più un numero di articoli che saranno ospitati all'interno del nostro portale.

Quindi cosa stai aspettando? Scrivici subito a [email protected] per maggiori informazioni e per accedere al programma sponsor e al media Kit di Red Hot Cyber.



Supporta RHC attraverso:
L'acquisto del fumetto sul Cybersecurity Awareness
Ascoltando i nostri Podcast
Seguendo RHC su WhatsApp
Seguendo RHC su Telegram
Scarica gratuitamente "Dark Mirror", il report sul ransomware di Dark Lab


Se ti piacciono le novità e gli articoli riportati su di Red Hot Cyber, iscriviti immediatamente alla newsletter settimanale per non perdere nessun articolo. La newsletter generalmente viene inviata ai nostri lettori ad inizio settimana, indicativamente di lunedì.


Solitamente le opzioni disponibili sono:

  1. nuovo training completo del modello su una massa consistente di dati aggiornati.
  2. un fine-tuning del modello utilizzando i dati di interesse.
  3. inserire i nuovi dati nel prompt che inviamo al modello.

Le opzioni 1 e 2 sono da scartare in quanto le informazioni che deve fornire il chatbot cambiano ogni giorno. Inoltre, sono operazioni altamente costose e complesse ed è bene sottolineare che training e fine-tuning sono tecniche di addestramento mirate a migliorare la performance del modello nella comprensione e generazione del testo. L’accrescimento della base di conoscenza del modello è solo un effetto collaterale.

Invece, l’opzione 3 potrebbe risolvere il nostro problema, ma dobbiamo considerare il limite superiore della lunghezza della finestra di contesto del modello (in poche parole la lunghezza massima del testo che possiamo fornire in input al modello). Infatti, dovremmo sottomettere al Large Language Model un prompt di lunghezza crescente nel tempo che potrebbe eccedere la lunghezza massima accettata dal modello che abbiamo scelto di utilizzare. Per non parlare poi dei costi di elaborazione di input testuali molto lunghi che, se proiettati su tutti i lettori, diverrebbero altamente significativi.

Come funziona

La metodologia RAG affronta questo problema in modo intelligente integrando un sistema di recupero delle informazioni che fornisce al modello generativo dati aggiornati e rilevanti, limitando così i costi e la lunghezza dell’input testuale inviato. 

In pratica, quando un sistema RAG riceve una richiesta dall’utente (user query), il primo passo consiste nel recuperare documenti pertinenti da un database su cui sono stati indicizzati i testi d’interesse; successivamente, questi documenti recuperati (solitamente sono pochi chunk di testo) vengono utilizzati come input per generare una risposta. Questo approccio migliora significativamente l’accuratezza, la pertinenza e la varietà delle risposte, poiché il modello non è più limitato alla conoscenza statica acquisita durante l’addestramento, ma può attingere a informazioni aggiornate e contestualizzate.

Per poter utilizzare un sistema RAG il primo passo è quello di indicizzare i documenti d’interesse in un database vettoriale. Nello specifico, il processo è il seguente:

  1. Ogni documento viene suddiviso in piccole porzioni di testo (chunk) preservando il più possibile la semantica del contenuto.
  2. Per ogni chunk di testo si genera il relativo vettore di embedding tramite l’applicazione di un apposito modello (BERT, GPT, T5, ecc).
  3. Sono memorizzati nel database, per ogni chunk di testo, il contenuto testuale e la sua rappresentazione vettoriale.

La RAG, a questo punto, combina due componenti principali: un sistema di recupero (retriever) e un modello di generazione (generator).

  1. Retriever: Supponendo di aver indicizzato i dati d’interesse in un database vettoriale come descritto sopra, il primo step è il recupero delle informazioni. Data una user query, questa viene trasformata nella sua rappresentazione vettoriale tramite l’uso dello stesso modello di embedding utilizzato per indicizzare la nuova base di conoscenza del database. Il retriever cerca i dati più pertinenti alla user query mediante l’utilizzo della ricerca vettoriale, ovvero ricerca tutti quei chunk di testo che massimizzano la similarità del coseno rispetto alla user query.
  2. Generator: Una volta recuperati i documenti pertinenti, il modello di generazione entra in gioco. Questo componente prende la query originale e i documenti recuperati come input e genera una risposta che combina le informazioni provenienti sia dalla conoscenza pre-addestrata del modello che dai documenti recuperati. Un aspetto cruciale della RAG è che i documenti recuperati non vengono semplicemente “incollati” nella risposta; piuttosto, vengono utilizzati come contesto per guidare la generazione della risposta, arricchendola con dettagli specifici e accurati.

Un tipico esempio di prompt da inviare al modello generativo che comprende sia la user query che i documenti più pertinenti è:

Genera una risposta alla seguente richiesta utente
USER_QUERY
utilizzando i seguenti documenti come knowledge base
RETRIEVED_DOCUMENTS

Conclusioni

L’approccio RAG offre numerosi vantaggi rispetto ai modelli generativi tradizionali. Oltre a fornire risposte più accurate e aggiornate, la tecnologia RAG permette un adattamento a nuovi domini di conoscenza con maggiore rapidità, riducendo la necessità di un costante riaddestramento del modello generativo. Tuttavia, è importante notare che l’efficacia della RAG dipende dalla qualità e dalla pertinenza delle informazioni disponibili nel sistema di recupero. Inoltre, la complessità computazionale di questo approccio può essere maggiore rispetto ai modelli generativi puri, richiedendo risorse più significative in termini di calcolo e memoria.

Luca Vinciguerra
Machine Learning Engineer specializzato nel Natural Language Processing. Appassionato di Intelligenza Artificiale, Coding e tecnologia in generale. Aspetta l'avvento di Skynet.

Lista degli articoli

Articoli in evidenza

Se Flash è morto, ecco a voi l’SVG Assassino! Il phishing 2.0 è in alta definizione
Di Redazione RHC - 05/09/2025

I criminali informatici hanno lanciato una nuova ondata di attacchi che utilizzano file SVG per distribuire pagine di phishing. Gli esperti di VirusTotal hanno segnalato che gli aggressori si spaccian...

Supercomputer: l’Italia al sesto e decimo posto nella classifica TOP500 del 2025
Di Redazione RHC - 05/09/2025

Il mondo dei supercomputer è entrato nell’era dell’exascale computing. La classifica TOP500 di giugno per il 2025 ha registrato tre sistemi americani ai vertici, un debutto clamoroso dall’Europ...

16 miliardi di credenziali rubate da Apple, Meta e Google in vendita per 121.000 dollari
Di Redazione RHC - 05/09/2025

Il team di Darklab, la community di esperti di threat intelligence di Red Hot Cyber, ha individuato un annuncio sul marketplace del dark web “Tor Amazon”, l’analogo criminale del celebre e-comme...

Dal Commodore 64 a GitHub! Il BASIC di Gates e Allen diventa open source dopo 48 anni
Di Redazione RHC - 04/09/2025

Microsoft ha ufficialmente reso pubblico il codice sorgente della sua prima versione di BASIC per il processore MOS 6502, che per decenni è esistito solo sotto forma di fughe di notizie, copie da mus...

Nuova Campagna MintsLoader: Buovi Attacchi di Phishing tramite PEC sono in corso
Di Redazione RHC - 04/09/2025

Dopo una lunga pausa estiva, nella giornata di ieri il CERT-AgID ha pubblicato un nuovo avviso su una nuova campagna MintsLoader, la prima dopo quella registrata lo scorso giugno. Rispetto alle preced...