Creazione di pipeline RAG per dati in tempo reale con Cloudera e Milvus
Nell’era attuale dei big data, le aziende generano enormi quantità di dati che richiedono un’elaborazione efficiente per sbloccarne il pieno potenziale. Pertanto, l’elaborazione dei dati su larga scala, l’adattabilità a vari ambienti cloud e la capacità di prendere decisioni in tempo reale mantenendo al contempo governance e sicurezza dei dati sono alcune delle funzionalità essenziali richieste in una piattaforma di gestione dei dati.
In un recente Unstructured Data Meetup ospitato da Zilliz, Chris Burns, principal Gen AI engineer presso Cloudera, ha parlato di come Cloudera - una piattaforma cloud di dati aziendale per la gestione del ciclo di vita dei dati end-to-end, possa essere utilizzata per creare pipeline di Retrieval Augmented Generation (RAG) efficienti. Ha discusso l’importanza della RAG per le applicazioni Large Language Model (LLM), le sfide che si possono affrontare e i passaggi per costruire una pipeline RAG con Milvus per generare dati migliori.
In questo blog, riepilogheremo i suoi punti chiave ed esploreremo come Cloudera possa essere integrata con Milvus per implementare efficacemente alcune delle funzionalità chiave delle pipeline RAG. Per maggiori dettagli, guarda la registrazione completa del suo intervento su YouTube.
Una breve panoramica su Cloudera
Cloudera è una piattaforma dati aziendale completa che supporta l’intero ciclo di vita dei dati - dall’ingestione e archiviazione fino all’analisi. Offre una distribuzione rapida e la possibilità di creare AI su larga scala con costi e rischi ridotti in qualsiasi data center o piattaforma cloud. Con funzionalità come streaming in tempo reale, data engineering, storage multi-temperature e adattabilità ai dati multimodali, Cloudera è un’ottima piattaforma per creare applicazioni Gen AI flessibili per le aziende.
Creazione di pipeline RAG con dati in tempo reale
Retrieval Augmented Generation (RAG) è una tecnica per migliorare le prestazioni degli LLM accedendo a informazioni da fonti esterne come i database. Queste informazioni aggiuntive (lake) consentono agli LLM di produrre risposte più pertinenti al contesto e accurate, basate su conoscenze di dominio specifiche che altrimenti non erano disponibili nei dati di training dell’LLM. È una tecnica efficiente per fare in modo che gli LLM affrontino casi d’uso specifici senza doverli riaddestrare ogni volta. La sfida consiste nel costruire una pipeline in grado di gestire le complessità dell’ingestione, dell’elaborazione e del recupero dei dati in tempo reale, mantenendo al contempo bassa latenza e costi, insieme a un’elevata accuratezza. È qui che entrano in gioco la solida infrastruttura di Cloudera e strumenti come Milvus, che supportano l’AI privata e il recupero in tempo reale.
Prima di esaminare i workflow pronti per le pipeline RAG, comprendiamo innanzitutto alcuni dei concetti teorici coinvolti.
Come procedere nella creazione di pipeline RAG?
La creazione di una pipeline RAG comporta diversi passaggi, dalla comprensione della teoria di base all’implementazione di configurazioni avanzate. Analizziamoli:
RAG - 101 - Sfide comuni e configurazione di base
Chris inizia parlando della sfida comune dell'allucinazione di cui soffre la maggior parte degli LLM. Tuttavia, qui, riformula il concetto chiamandolo confabulazione e fabbricazione. La confabulazione si riferisce agli LLM che colmano le informazioni mancanti con informazioni plausibili ma errate, mentre la fabbricazione si riferisce alla creazione di un testo immaginario. Per gestire questi problemi, Chris menziona che comprendere contestualmente la query è molto importante, oltre a eseguire un ragionamento automatico multi-hop e mantenere la tracciabilità per seguire il flusso dei dati o degli oggetti.
Dopo aver parlato delle sfide, comprendiamo la configurazione di base di un sistema RAG. Al suo nucleo, una pipeline RAG consiste di due componenti principali:
Retriever: Questo componente cerca in un grande dataset (ad es., un database vettoriale) per trovare informazioni rilevanti in base a una query.
Generator: Questo componente utilizza le informazioni recuperate per generare una risposta coerente e contestualmente accurata.
Il retriever e il generator lavorano in tandem per garantire che il sistema fornisca risposte accurate e pertinenti, anche quando si ha a che fare con query complesse. Tuttavia, come sottolinea Chris, un progetto ML di successo richiede non solo buoni dati, ma anche competenza di dominio. I dati devono essere rilevanti e coerenti, e la conoscenza del dominio è fondamentale per garantire la rilevanza.
RAG - 201 - Analisi statistica e inferenza ibrida
Analisi statistica - Per migliorare le prestazioni delle pipeline RAG, eseguire un po' di analisi statistica può aiutare a comprendere meglio la qualità delle risposte degli LLM.
L'utilizzo di una matrice di confusione nel contesto della Gen AI potrebbe aiutare a comprendere quantitativamente i tassi di successo del recupero.
Antropomorfizzare le risposte degli LLM negando le risposte quando non sono note, invece di inventare affermazioni false, potrebbe aggiungere un tocco più umano alle risposte.
- Inferenza ibrida - L'inferenza ibrida è un'ottima tecnica per le imprese per bilanciare prestazioni e sicurezza entro vincoli di budget. Utilizza una combinazione di regole predefinite e modelli di machine learning per gestire i casi limite e migliorare la qualità delle risposte. L'obiettivo qui è essere in grado di riprodurre i risultati su piattaforme diverse, quindi l'attenzione dovrebbe essere rivolta ad architetture agili, scalabili e adatte al tempo reale.
RAG - 301 - Considerazioni sul tipo di dati
Per archiviare i dati nel database vettoriale in modo efficiente, è essenziale ideare strategie appropriate di partizionamento e chunking. Il partizionamento si riferisce alla divisione dei dati in unità più piccole e più gestibili, mentre il chunking si riferisce al raggruppamento di queste partizioni in base al contenuto degli elementi. Per determinare entrambi, conoscere il tipo di dati è cruciale.
Tipi di strategie di chunking
Tipi di strategie di chunking
I dati sotto forma di romanzi, documenti tecnici o email sono classificati come dati densi, cioè con pochissimi valori nulli, il che significa che ogni elemento è importante. D'altra parte, dati come dati di sensori, dati categorici o grafici sono chiamati dati sparsi poiché hanno molti valori nulli.
Un esempio di dati densi e sparsi
Un esempio di dati densi e sparsi
Il tipo di dati utilizzato in una pipeline RAG può avere un impatto significativo sulle sue prestazioni e accuratezza. Diversi tipi di dati, come testo, immagini e audio, richiedono tecniche di elaborazione e recupero diverse. Comprendere il tipo di dati utilizzato e come elaborarlo efficacemente è cruciale per costruire una pipeline RAG di successo.
RAG - 401 - Configurazioni Milvus Vector DB
Milvus è un database vettoriale open-source progettato per l’archiviazione, l’indicizzazione e la ricerca efficienti di embedding vettoriali ad alta dimensionalità. È ottimizzato per la ricerca di similarità, il che lo rende ideale per sistemi di raccomandazione, applicazioni di recupero immagini e pipeline RAG. Milvus può supportare dataset di grandi dimensioni ed è altamente scalabile, rendendolo adatto alle applicazioni aziendali. Le seguenti funzionalità di Milvus sono particolarmente utili per le pipeline RAG -
- Ricerca ibrida - Milvus supporta la ricerca ibrida (ricerca multi-vettore), che prevede l’esecuzione di query simultanee su più campi vettoriali all’interno dello stesso dataset e l’integrazione dei risultati con strategie di riordinamento. Ciò offre la flessibilità necessaria affinché i singoli vettori utilizzino diversi modelli di embedding, tecniche di elaborazione dei dati o qualsiasi altra operazione personalizzata.
Ricerca ibrida con Milvus
Ricerca ibrida con Milvus
- Query multi-trip - Milvus supporta tecniche di retrieval avanzate per query complesse, in grado di bilanciare il compromesso tra diversi metodi di ricerca utilizzati nella ricerca ibrida. Attraverso le query multi-trip, una query può essere elaborata iterativamente in più passaggi per migliorare i risultati della ricerca. Dopo l’esecuzione iniziale della query, ulteriori query possono essere eseguite in base al reranking (ordinamento dei risultati secondo un ordine di priorità), all’espansione della query (espansione su un particolare attributo) o al filtraggio.
Query multi-trip con Milvus
Query multi-trip con Milvus
Infine, Milvus supporta l’uso di gatekeeper, ovvero filtri che possono essere applicati al processo di retrieval per garantire che vengano recuperate solo le informazioni rilevanti prima di passarle al generatore. Questo può essere particolarmente utile nelle pipeline RAG in tempo reale, dove il volume di dati può essere molto grande ed è importante filtrare rapidamente le informazioni irrilevanti.
Integrazione di Milvus e Cloudera per pipeline RAG
Cloudera offre workflow pronti all’uso per RAG, basati su Apache NiFi 2.0 (un sistema di dataflow basato sulla programmazione flow-based). I workflow supportano vari data store, modelli e database vettoriali, incluso Milvus. Diamo brevemente un’occhiata ad alcuni di essi.
- Da S3 a Milvus - Il primo passaggio in RAG consiste nel raccogliere i dati dalla fonte, preprocessarli, convertirli in embedding e archiviarli in un database vettoriale.
Workflow da dati a VectorDB
Workflow da dati a VectorDB
Ad esempio, questo workflow di Cloudera prende documenti pdf da S3, li vettorializza utilizzando un modello huggingface e scrive i risultati in Milvus. Tutti i passaggi di elaborazione dei dati, come partizionamento e chunking, possono essere eseguiti semplicemente trascinando, rilasciando ed eseguendo i connettori pertinenti.
Workflow da S3 a Milvus di Cloudera
Workflow da S3 a Milvus di Cloudera
- RAG Query Milvus - Il secondo passaggio in RAG consiste nel prendere la query come input, convertirla in embedding e quindi eseguire una ricerca di similarità con gli embedding già archiviati nel database vettoriale. Verranno recuperati i dati i cui embedding sono più vicini all’embedding della query. Queste informazioni fungeranno da contesto aggiuntivo per l’LLM per generare la risposta. Cloudera offre un workflow pronto all’uso per interrogare Milvus per RAG.
Workflow RAG Query Milvus di Cloudera
Workflow RAG Query Milvus di Cloudera
Conclusione
In questo blog, abbiamo parlato di come sia possibile costruire pipeline RAG in tempo reale con Cloudera sulla base dell'intervento tenuto da Chris Burns all'Unstructured Data Meetup. Poiché le aziende si stanno evolvendo diventando giorno dopo giorno più grandi, abbiamo bisogno di soluzioni avanzate per ricavare valore in modo efficiente dalla vasta quantità di informazioni. Attraverso piattaforme di gestione del ciclo di vita dei dati come Cloudera, le applicazioni di Gen AI possono essere sviluppate facilmente per le imprese con uno sforzo minimo. Inoltre, l'integrazione di Milvus con Cloudera fornisce insieme un framework solido per costruire pipeline RAG.
Chris ha iniziato parlando delle sfide comuni affrontate dagli LLM, come la confabulazione e la fabbricazione, e dei modi per gestirle. Inoltre, ha sottolineato l'importanza di eseguire analisi statistiche e inferenza ibrida per migliorare le prestazioni delle pipeline RAG. Milvus è un ottimo database vettoriale per il caso d'uso di RAG, poiché supporta l'inferenza ibrida, query multi-trip e gatekeeper, per garantire risposte accurate e consapevoli del contesto mantenendo al contempo la sicurezza.
Continua a leggere

The AWS Outage Was a Wake-Up Call for Vector Database Cross-Region Disaster Recovery
Zilliz Cloud Had the Answer Before the Crisis. Zilliz Cloud is the world's first vector database with native cross-region disaster recovery.

Zilliz Cloud Update: Tiered Storage, Business Critical Plan, Cross-Region Backup, and Pricing Changes
This release offers a rebuilt tiered storage with lower costs, a new Business Critical plan for enhanced security, and pricing updates, among other features.

Introducing DeepSearcher: A Local Open Source Deep Research
In contrast to OpenAI’s Deep Research, this example ran locally, using only open-source models and tools like Milvus and LangChain.


