Questa sezione illustra gli strumenti e le considerazioni per l'archiviazione e il recupero della base di documenti della RAG. Trattiamo i due argomenti congiuntamente, poiché la tecnologia di storage limita i meccanismi di recupero disponibili per interrogare e recuperare i dati memorizzati.
IBM® watsonx Discovery, basato su IBM Cloud Databases for Elasticsearch, è una soluzione aziendale completa progettata per supportare e migliorare il caso d'uso di ricerca e retrieval-augmented generation (RAG). Con solide funzionalità per la ricerca vettoriale, la ricerca semantica, la ricerca federata e altro ancora, watsonx Discovery offre un ricco set di strumenti per la creazione di applicazioni contestuali, basate su AI. Si integra perfettamente con la piattaforma di intelligenza artificiale conversazionale watsonx Assistant di IBM e con livelli di orchestrazione come watsonx Orchestrate per offrire soluzioni aziendali avanzate.
watsonx Discovery utilizza IBM Cloud Databases for Elasticsearch, offrendo un backend potente e flessibile per gestire le tue esigenze di ricerca aziendale:
Monitoraggio e stato di salute: con Elasticsearch, gli sviluppatori hanno accesso a strumenti completi di monitoraggio e controllo dello stato di salute per garantire che gli embedding, i metadati, la dimensione dei blocchi e le strutture dei documenti siano ottimizzati. La pagina web di Elasticsearch consente una gestione e una scalabilità senza interruzioni, concentrandosi sullo sviluppo delle applicazioni piuttosto che su attività operative come backup, registrazione, monitoraggio e configurazione.
Capacità avanzate di ricerca: watsonx Discovery supporta una varietà di algoritmi avanzati di ricerca, come la ricerca semantica scarna e densa, la ricerca con filtro metadati, la ricerca lessicale, la ricerca booleana (AND/OR/NOT/SLOP), la ricerca con prefisso, la ricerca fuzzy e la ricerca ibrida. Queste capacità sono fondamentali per affrontare casi d'uso di RAG complessi che coinvolgono query e documenti complessi. Implementa i tipi di ricerca avanzati descritti in questo Notebook per ottimizzare la tua implementazione.
Integrazione con framework LLM: la compatibilità di Elasticsearch con i framework di orchestrazione LLM popolari, come LangChain e LlamaIndex, lo rende ideale per integrarsi con watsonx Discovery e alimentare le soluzioni RAG.
watsonx Discovery è una soluzione versatile che supporta un'ampia gamma di metodologie di ricerca:
Il modello ELSER (Elastic Search Embeddings) è un modello di embedding precostruito di primo piano utilizzato per la ricerca semantica, che consente la ricerca contestuale anche senza la necessità di database vettoriali personalizzati.
watsonx Discovery supporta la ricerca federata tra le implementazioni esistenti, riducendo la necessità di memorizzare e mantenere dati duplicati. Ciò consente di effettuare ricerche e recuperi a livello aziendale su più silos di dati.
watsonx Discovery semplifica l'estrazione e l'indicizzazione dei contenuti attraverso una ricca suite di strumenti per l'inserimento di dati:
Per ulteriori informazioni, esplora le seguenti risorse ElasticSearch per accelerare lo sviluppo di watsonx Discovery:
watsonx Discovery si integra con Kibana e Enterprise Search per fornire un recupero e una visualizzazione delle informazioni basato su AI e scalabile, su misura per gli ambienti aziendali di grandi dimensioni:
Kibana per la visualizzazione dei dati: crea dashboard personalizzate e visualizzazioni basate sui dati acquisiti da watsonx Discovery. Offre analisi in tempo reale su metriche chiave come estrazione di entità, analisi del sentiment e classificazione dei documenti. Questo aiuta a monitorare tendenze, schemi e anomalie nei dati non strutturati, semplificando il processo di analisi e migliorando il processo decisionale.
Enterprise Search per un recupero scalabile: utilizza la NLP e la ricerca semantica per consentire un recupero rapido e accurato tra fonti di dati strutturati e non strutturati. Personalizza la funzionalità di ricerca per indicizzare e recuperare da più fonti di dati, inclusi documenti, e-mail e database, per creare applicazioni di ricerca specifiche per dominio che si integrano direttamente nei workflow aziendali.
watsonx Discovery applica il supporto nativo per il controllo degli accessi basato sui ruoli e sugli attributi per proteggere l'accesso ai contenuti e proteggere la privacy dei dati. Questo garantisce che le informazioni sensibili siano accessibili solo agli utenti autorizzati, proteggendo i dati aziendali.
watsonx Discovery può essere abbinato a watsonx Orchestrate per migliorare i workflow di automazione attraverso il recupero dei dati sensibile al contesto. Quando Orchestrate automatizza un processo aziendale che richiede insight da dati non strutturati, sfrutta Discovery per recuperare e analizzare contenuti rilevanti, permettendogli di svolgere compiti intelligenti come:
IBM watsonx.data è una potente piattaforma dati costruita su un'architettura open lakehouse, che combina i punti di forza sia dei data warehouse che dei data lake. Offre un unico punto di accesso per accedere a tutti i dati tramite un livello di metadati condiviso e aperto, il che lo rende una soluzione ideale per le organizzazioni che desiderano semplificare la gestione dei dati. Con il supporto per formati di dati aperti, capacità integrate di embedding vettoriale e un'interfaccia conversazionale generativa basata su AI per insight sui dati, watsonx.data migliora l'analisi in tempo reale e i casi d'uso dell'AI. La piattaforma si integra perfettamente con database e strumenti esistenti, offrendo al contempo opzioni di distribuzione flessibili, incluse configurazioni cloud e on-premise.
Un componente chiave di IBM watsonx.data è watsonx.data Milvus, un database vettoriale open-source progettato specificamente per memorizzare, gestire e trasferire dati vettoriali ad alta dimensione come gli embedding vettoriali. Questo database vettoriale altamente configurabile è ottimizzato per indicizzare e recuperare vettori in modo efficiente, rendendolo ideale per casi d'uso che richiedono ricerche di similarità vettoriale nelle applicazioni AI. watsonx.data Milvus è particolarmente utile per i clienti che sfruttano watsonx.ai che necessitano di un'integrazione fluida con funzionalità di database vettoriale, così come per chi è interessato a implementare framework open source come LangChain, spesso utilizzato nei pattern di Retrieval-augmented generation (RAG).
IBM watsonx.data è disponibile in tre opzioni di distribuzione per soddisfare esigenze diverse:
Per le organizzazioni che vogliono sfruttare i database vettoriali, watsonx.data supporta l'integrazione con Milvus open-source, abilitando funzionalità avanzate come la ricerca di similarità vettoriale, essenziale per applicazioni di AI in tempo reale.
Per iniziare a utilizzare IBM watsonx.data, Scegli l'opzione di distribuzione che meglio soddisfa i tuoi requisiti:
Fornisci un'istanza.
Per la distribuzione on-premise:
IBM fornisce una documentazione completa per aiutarti a iniziare a utilizzare sia la piattaforma principale watsonx.data sia il database vettoriale Milvus:
Sfruttando l'architettura aperta, le capacità integrate di database vettoriale e le funzionalità AI avanzate di watsonx.data, le organizzazioni possono ottimizzare i processi di ingegneria dei dati, migliorare l'analisi in tempo reale e sbloccare nuove insight grazie a funzionalità basate su AI. Questa piattaforma unificata consente ai team di lavorare con dati strutturati e non strutturati in modi innovativi, unendo l'analisi tradizionale e la ricerca vettoriale di similarità all'avanguardia sotto un'unica soluzione.
IBM Watson Discovery è uno strumento progettato per recuperare e analizzare dati non strutturati. Le sue principali caratteristiche sono la ricerca per parole chiave, che permette agli utenti di esplorare ampi set di dati utilizzando termini o frasi specifiche. A differenza dei motori di ricerca tradizionali che tendono a utilizzare la corrispondenza del testo, Watson Discovery utilizza il contesto dietro le parole chiave per fornire un risultato più pertinente.
Un'altra funzionalità importante di Watson Discovery è l'estrazione di entità, il che significa che Watson Discovery può estrarre automaticamente pezzi chiave di informazioni come persone, luoghi, organizzazioni e date da testi non strutturati. Questo processo struttura i dati in modo che siano digeribili e possano essere incorporati direttamente nelle risposte RAG.
Molte applicazioni LLM richiedono dati specifici per l'utente che non fanno parte del set di addestramento del modello. Il modo principale per raggiungere questo obiettivo è tramite la Retrieval-augmented generation (RAG). In questo processo, i dati esterni vengono recuperati e trasmessi all'LLM durante la fase di generazione.
LangChain supporta molti diversi algoritmi di recupero. LangChain supporta metodi di base come la ricerca semantica. Tuttavia, abbiamo aggiunto anche una raccolta di algoritmi per aumentare le prestazioni. Questi includono:
Milvus è una piattaforma AI per l'automazione e l'estrazione di dati strutturati da documenti non strutturati ed è spesso utilizzata con watsonx Discovery in determinati scenari di recupero. Milvus può adattarsi a vari formati, rendendolo ideale per workflow di elaborazione su larga scala. Per un ingegnere AI, offre una soluzione scalabile che riduce lo sforzo manuale nell'estrazione dei dati garantendo al contempo precisione ed efficienza.
Milvus è principalmente un database vettoriale progettato per la ricerca di similarità in grandi set di dati, con particolare eccellenza nei vettori ad alta dimensionalità. watsonx Discovery, invece, è specializzato nella ricerca semantica conversazionale e nella comprensione/elaborazione dei documenti, con particolare enfasi sulle capacità di ricerca conversazionale e semantica.
Milvus offre funzionalità avanzate come vettori sparsi, vettori di massa, ricerca filtrata e ricerca ibrida. Dispone inoltre di un'architettura distribuita che consente sia la scalabilità out/in che up/down, rendendola altamente scalabile per set di dati di grandi dimensioni.
Milvus è in grado di gestire dati vettoriali su larga scala e supporta ricerche di similarità vettoriale ad alte prestazioni, essenziali per le soluzioni RAG che recuperano informazioni da set di dati di grandi dimensioni.
Milvus si integra perfettamente con watsonx.data, semplificando la gestione dei dati per modelli AI e applicazioni. Questo consente casi d'uso RAG scalabili su ampi set di dati governati.
Milvus supporta funzionalità avanzate come il filtro dei metadati, il miglioramento della pertinenza dei risultati di ricerca e il miglioramento dell'efficacia del sistema RAG.
Un database vettoriale di base funziona bene per semplici soluzioni RAG, ma si rompe rapidamente quando ci sono più informazioni simili nel documento (simile non è la stessa cosa di rilevante), le informazioni per rispondere a una query sono distribuite su più documenti o in più sezioni di un documento. Ecco alcuni esempi:
Esempio 1
Un'azienda gestisce uffici in più stati, ognuno con le proprie politiche HR. L'organizzazione utilizza un formato di documento comune per le informazioni sulle risorse umane in tutti i suoi uffici. Se l'azienda incorporasse le sue politiche HR in un database vettoriale, ci sarebbero più blocchi per, ad esempio, richiedere permessi con testi di supporto diversi, rendendo le allucinazioni altamente probabili.
Esempio 2
Un contratto di servizi ha un glossario di termini definiti che vengono scritti in maiuscolo nel contratto per indicare il riferimento alla definizione, ad esempio, il locatore, il periodo di valutazione, ecc. Un'analisi e una suddivisione in blocchi ingenui del contratto che analizzavano e suddividevano il contratto dall'inizio alla fine avrebbero portato a interazioni come le seguenti:
Domanda: Quanto tempo è concesso ad Acme prima che venga fatturato il servizio una volta completato? Risposta: L'Acquirente ha diritto a 10 giorni di preavviso dopo il Periodo di valutazione prima della fatturazione dei servizi.
Utile, ma garantisce la creazione di domande successive e di qualche rapida aggiunta per arrivare a una risposta più completa.
Esempio 3
Un governo statale pubblica gli emendamenti alla propria legislazione come "modifiche" alle leggi esistenti. Ad esempio, "La Sezione 12.2 del Narcotics Control Act è stata modificata per escludere la Cannabis e i prodotti correlati alla Cannabis". Come farà un database vettoriale a determinare che questo frammento di testo debba avere la precedenza su tutti gli altri segmenti che trattano il tema della Cannabis?
Una gerarchia dei documenti organizza i blocchi di documenti in categorie che raggruppano insieme i documenti correlati, in modo simile a un indice o a un insieme di cartelle su un computer. L'utilizzo di una gerarchia di documenti consente a una soluzione RAG di "restringere" l'oggetto di una query dell'utente, in modo da recuperare solo i documenti più rilevanti.
Applicando questo all'esempio del documento HR multi-stato di cui sopra, un'utile gerarchia di documenti categorizzerebbe il documento in base allo stato, consentendo alla soluzione RAG di recuperare solo i pezzi di documento rilevanti per uno stato specifico. Come mostrato nella figura sottostante, una possibile gerarchia potrebbe organizzare i documenti prima per paese, poi per stato/provincia di competenza, quindi per aree politiche o argomento. Ovviamente, ciò significa che la soluzione dovrà dedurre lo stato pertinente dallo stato di residenza elencato dell'utente o richiedere all'utente di fornire lo stato di interesse.
Le gerarchie dei documenti possono essere implementate in database vettoriali ibridi, database vettoriali che supportano schemi che comprendono tipi di dati numerici e categorici insieme a vettori, come Milvus, utilizzando campi di categoria e sottocategoria come parte dei criteri di ricerca come mostrato nella definizione dello schema Milvus qui sotto.
chunk_id = FieldSchema( name="chunk_id", dtype=DataType.INT64, auto_id=True, ) state_id = FieldSchema( name="state_id", dtype=DataType.INT64, ) chunk = FieldSchema( name="chunk", dtype=DataType.FLOAT_VECTOR, dim=2 ) schema = CollectionSchema( fields=[chunk_id, state_id, chunk], description="HR documents by state" )
I grafici della conoscenza catturano le relazioni tra entità in un documento o tra documenti diversi. A differenza di una ricerca di similarità in un database vettoriale, un grafico della conoscenza può recuperare in modo coerente e accurato relazioni e contenuti rilevanti che possono ridurre significativamente la presenza di allucinazioni. Quando abbinati alle ricerche di similarità di database vettoriali, i database a grafico possono consentire alle soluzioni RAG di ricostruire contenuti correlati dall'interno di un documento e/o attraverso un insieme di documenti. L'immagine seguente mostra un potenziale grafico della conoscenza per il contratto di servizi.
Sebbene il miglior grafico della conoscenza per una soluzione RAG sia creato e mantenuto dall'uomo, l'uso di un modello linguistico di grandi dimensioni (LLM) per analizzare le entità e le relazioni in un documento e creare un grafo della conoscenza produce risultati sorprendentemente buoni.
Neo4j è un popolare database grafico open source (GPLv3). Questo tutorial guida il lettore attraverso la configurazione e la codifica di una soluzione RAG potenziata da un grafico di conoscenza con neo4j e Langchain.
Rohan Singh, Fahad Bhutta, Luke Major, Chris Kirby, Sacha Mongrain
Data di aggiornamento: 15 novembre 2024