Retrieval Augmented Generation (RAG)
Scopri come il Retrieval Augmented Generation (RAG) migliora i modelli di IA integrando dati esterni affidabili e in tempo reale per risposte accurate e aggiornate.
La Generazione Augmentata dal Recupero (RAG, Retrieval-Augmented Generation) è un framework di IA avanzato progettato per migliorare la qualità, l'accuratezza e la rilevanza delle risposte generate dai Modelli Linguistici di Grandi Dimensioni (LLM). Funziona collegando un modello generativo a una knowledge base esterna e aggiornata. Ciò consente al modello di "recuperare" informazioni pertinenti prima di generare una risposta, radicando efficacemente il suo output in fatti verificabili e riducendo la probabilità di allucinazioni o risposte obsolete. RAG rende gli LLM più affidabili per attività ad alta intensità di conoscenza, dando loro accesso a informazioni specializzate o proprietarie su cui non sono stati addestrati.
Come funziona la generazione aumentata dal recupero (Retrieval-Augmented Generation)
Il processo RAG può essere suddiviso in due fasi principali: recupero e generazione. Questo approccio a due fasi combina i punti di forza dei sistemi di information retrieval e dei modelli generativi.
- Retrieval: Quando un utente fornisce un prompt o pone una domanda, il sistema RAG utilizza innanzitutto il prompt per cercare informazioni pertinenti in una knowledge source. Questa fonte è in genere un database vettoriale contenente embedding di documenti, articoli o altri dati. Il componente retriever identifica ed estrae i frammenti di testo o dati più rilevanti in base alla query dell'utente. Un passaggio facoltativo ma potente è l'utilizzo di un reranker per affinare questi risultati recuperati, garantendo che vengano trasmesse solo le informazioni contestualmente più importanti.
- Generazione aumentata: Le informazioni recuperate vengono quindi combinate con il prompt originale dell'utente. Questo nuovo prompt arricchito viene inserito nel modello di AI generativa (il LLM). Il modello utilizza questo contesto aggiunto per formulare una risposta completa, accurata e pertinente. Framework come LangChain e LlamaIndex sono comunemente utilizzati per costruire e gestire queste complesse pipeline RAG.
Applicazioni ed Esempi
RAG è particolarmente utile in scenari che richiedono accuratezza fattuale e accesso a dati dinamici o specializzati.
- Sistemi avanzati di risposta alle domande: Un chatbot di assistenza clienti può utilizzare RAG per accedere all'intera knowledge base di un'azienda di manuali di prodotto, guide alla risoluzione dei problemi e documenti di policy. Quando un cliente chiede: "Qual è la politica di garanzia per il mio prodotto?", il sistema recupera il documento di garanzia più recente e lo utilizza per fornire una risposta precisa e aggiornata, un miglioramento significativo rispetto alle risposte generiche.
- Creazione di contenuti e ricerca: Un analista finanziario potrebbe utilizzare uno strumento basato su RAG per scrivere un riepilogo di mercato. Lo strumento potrebbe recuperare gli ultimi report finanziari, le notizie di mercato e i dati sull'andamento delle azioni da fonti attendibili come Bloomberg o Reuters. L'LLM sintetizza quindi queste informazioni in un report coerente, completo di citazioni, accelerando notevolmente il processo di ricerca.
RAG vs. Concetti Correlati
È utile distinguere RAG da altri metodi utilizzati per migliorare le prestazioni degli LLM:
- Fine-tuning: Il fine-tuning adatta un modello pre-addestrato continuando l'addestramento su un set di dati più piccolo e specializzato, che modifica i pesi interni del modello. A differenza di RAG, non consulta dati esterni durante l'inferenza. Il fine-tuning è ideale per insegnare a un modello un nuovo stile o abilità, mentre RAG è più adatto per incorporare conoscenze fattuali. Questi approcci possono anche essere complementari.
- Ingegneria del prompt (Prompt Engineering): Questo è il processo manuale di progettare attentamente i prompt per ottenere l'output desiderato da un LLM. RAG automatizza una parte di questo aggiungendo ("aumentando") programmaticamente il prompt con i dati recuperati, piuttosto che affidarsi a un umano per fornire manualmente tutto il contesto.
- Arricchimento del prompt (Prompt Enrichment): Pur essendo simile a RAG, l'arricchimento del prompt è un termine più ampio. Potrebbe comportare l'aggiunta di contesto dalla cronologia dell'utente o dal flusso di conversazione. RAG è un tipo specifico di arricchimento focalizzato sul recupero di informazioni fattuali da una knowledge base esterna per fondare la risposta del modello.
RAG nella Computer Vision
Sebbene il RAG sia utilizzato principalmente nell'elaborazione del linguaggio naturale (NLP), il suo concetto di base viene esplorato per attività di computer vision (CV). Ad esempio, un sistema potrebbe recuperare informazioni visive rilevanti per guidare la generazione o l'analisi di immagini. Ciò potrebbe comportare la ricerca di immagini simili da un ampio dataset per migliorare le prestazioni di un modello di object detection come Ultralytics YOLO. La gestione di questi modelli e dataset complessi è semplificata con piattaforme come Ultralytics HUB, che potrebbe fungere da base per future applicazioni di modelli multimodali che utilizzano RAG. Puoi esplorare un'implementazione correlata nel nostro blog sul miglioramento dell'IA con RAG e computer vision.