Condividi tramite


RAG (Retrieval Augmented Generation) su Azure Databricks

La generazione di recupero aumentata (RAG) è una tecnica potente che combina modelli di linguaggio di grandi dimensioni con il recupero dei dati in tempo reale per generare risposte più accurate, up-to-date e contestualmente pertinenti.

Questo approccio è particolarmente utile per rispondere a domande relative a informazioni proprietarie, che cambiano di frequente o specifiche del dominio.

Che cos'è Retrieval Augmented Generation?

Nel formato più semplice, un agente RAG esegue le operazioni seguenti:

  1. Recupero: la richiesta dell'utente viene usata per eseguire query su una Knowledge Base esterna, ad esempio un archivio vettoriale, una ricerca di parole chiave o un database SQL. L'obiettivo è ottenere dati di supporto per la risposta del LLM.
  2. Incremento: i dati di supporto vengono combinati con la richiesta dell'utente per creare un prompt, spesso utilizzando un modello con formattazione aggiuntiva e istruzioni per l'LLM.
  3. Generazione: il prompt viene passato all'LLM per generare una risposta alla richiesta dell'utente.

Flusso di un'applicazione RAG dalla richiesta dell'utente al recupero e alla risposta dei dati.

Vantaggi della RAG

RAG migliora i modelli di linguaggio di grandi dimensioni nei modi seguenti:

  • Conoscenza proprietaria: RAG può includere informazioni proprietarie non usate inizialmente per eseguire il training dell'LLM, ad esempio promemoria, messaggi di posta elettronica e documenti per rispondere a domande specifiche del dominio.
  • Informazioni aggiornate: Un'applicazione RAG può fornire all'LLM le informazioni di una Knowledge Base aggiornata.
  • Citazione delle fonti: RAG consente agli LLM di citare fonti specifiche, permettendo agli utenti di verificare l'accuratezza delle risposte.
  • Elenchi di controllo di accesso e sicurezza dei dati: Il passaggio di recupero può essere progettato per recuperare in modo selettivo le informazioni personali o proprietarie in base alle credenziali utente.

Componenti RAG

Un'applicazione RAG tipica prevede diverse fasi:

  1. Pipeline di dati: pre-elaborare e indicizzare documenti, tabelle o altri dati per il recupero rapido e accurato.

  2. Catena RAG (recupero, aumento, generazione): chiamare una serie (o catena) di passaggi per:

    • Comprendere la domanda dell'utente.
    • Recuperare i dati di supporto.
    • Ampliare il prompt con i dati di supporto.
    • Generare una risposta da un LLM tramite il prompt aumentato.
  3. Valutazione e monitoraggio: valutare l'applicazione RAG per determinare la qualità, i costi e la latenza per garantire che soddisfi i requisiti aziendali.

  4. Governance e LLMOps: tenere traccia e gestire il ciclo di vita di ogni componente, inclusi i controlli di derivazione e accesso dei dati.

Diagramma dei componenti dell'applicazione RAG.

Tipi di dati RAG: strutturati e non strutturati

L'architettura RAG può funzionare con sia dati di supporto non strutturati che strutturati. I dati usati con il RAG dipendono dal caso d'uso.

Dati non strutturati: dati senza una struttura o un'organizzazione specifica.

  • PDF
  • Documenti di Google/Office
  • Wiki
  • Immagini
  • Video

Dati strutturati: dati tabulari disposti in righe e colonne con uno schema specifico, ad esempio tabelle in un database.

  • Record dei clienti in un sistema BI o data warehouse
  • Dati della transazione da un database SQL
  • Dati dalle API dell'applicazione (ad esempio, SAP, Salesforce e così via)

Valutazione e monitoraggio

La valutazione e il monitoraggio consentono di determinare se l'applicazione RAG soddisfi i requisiti di qualità, costi e latenza. La valutazione viene eseguita durante lo sviluppo, mentre il monitoraggio avviene dopo l’implementazione dell'applicazione nell'ambiente di produzione.

Il RAG su dati non strutturati ha molti componenti che influiscono sulla qualità. Ad esempio, le modifiche alla formattazione dei dati possono influenzare i blocchi recuperati e la capacità dell'LLM di generare risposte pertinenti. È quindi importante valutare singoli componenti oltre all'applicazione complessiva.

Per altre informazioni, vedere Mosaic AI Agent Evaluation (MLflow 2).

RAG su Databricks

Databricks offre una piattaforma end-to-end per lo sviluppo RAG, tra cui:

Passaggi successivi

  • Informazioni sulle pipeline di dati, un componente chiave delle applicazioni RAG. Vedere Creare una pipeline di dati non strutturata per RAG

  • Usare AI Playground per creare un prototipo dell'agente RAG. Vedi gli agenti prototipo che chiamano strumenti nel Parco giochi dell'IA.