Storage e recupero

Scopri di più su ciò che il RAG Cookbook ha da offrire per approfondire le soluzioni RAG di oggi

Un leadspace ricolorato che utilizza come base il leadspace Watson for Customer Care.
Informazioni generali

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.

Strumenti IBM

IBM watsonx Discovery: soluzione completa per la ricerca aziendale e la RAG

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.

Perché utilizzare watsonx Discovery con Elasticsearch?

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.

Metodi di ricerca supportati da watsonx Discovery

watsonx Discovery è una soluzione versatile che supporta un'ampia gamma di metodologie di ricerca:

  • Ricerca per parole chiave
  • Ricerca semantica
  • Ricerca vettoriale
  • Ricerca ibrida (Reciprocal Rank Fusion)

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.

Ricerca federata

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.

Ricche funzionalità di inserimento e indicizzazione dei dati

watsonx Discovery semplifica l'estrazione e l'indicizzazione dei contenuti attraverso una ricca suite di strumenti per l'inserimento di dati:

  • Estrazione di contenuti: supporta una varietà di formati di file, tra cui DOCX, PDF e PPTX, facilitando la scoperta e l'indicizzazione delle informazioni aziendali critiche.
  • Integrazione con terze parti: si connette a un'ampia gamma di fonti di dati grazie a connettori precostituiti, che consentono un'integrazione perfetta nell'ecosistema di dati aziendali.
  • Trasformazione e arricchimento dei dati: implementa potenti pipeline di inserimento per trasformare e arricchire i dati, assicurando che siano pronti per il recupero e gli insight di alta qualità.
Un'illustrazione delle funzionalità e delle caratteristiche di watsonx Discovery relative ai database vettoriali

Per ulteriori informazioni, esplora le seguenti risorse ElasticSearch per accelerare lo sviluppo di watsonx Discovery:

Visualizzazione avanzata ed Enterprise Search

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.

Privacy e sicurezza

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.

Casi d'uso: watsonx Discovery e Orchestrate

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:

  • Rispondere alle domande con risposte accurate e basate sui dati.
  • Esecuzione di workflow che dipendono dal recupero dati e insight in tempo reale.

IBM watsonx.data: un data store moderno con funzionalità di database vettoriale integrate

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).

Opzioni di implementazione

IBM watsonx.data è disponibile in tre opzioni di distribuzione per soddisfare esigenze diverse:

  • SaaS completamente gestito: disponibile su IBM Cloud e AWS, offre un approccio pratico alla configurazione e al ridimensionamento.
  • Software containerizzato autogestito: ideale per ambienti on-premise, sfruttando IBM Cloud Pak for Data e Red Hat OpenShift.
  • Versione per sviluppatori a impronta ridotta: adatta ad ambienti di sviluppo che utilizzano singole VM o laptop, offrendo la flessibilità di testare e realizzare prototipi in locale.

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.

Introduzione

Per iniziare a utilizzare IBM watsonx.data, Scegli l'opzione di distribuzione che meglio soddisfa i tuoi requisiti:

  • Per l'implementazione di IBM Cloud:
  • Visita la pagina del catalogo IBM Cloud per watsonx.data.
  • Seleziona un piano che si adatti alle tue esigenze.
  • Fornisci un'istanza.

  • Per la distribuzione on-premise:

  • Ottieni le chiavi di attivazione per IBM watsonx.data all'interno di IBM Cloud Pak for Data.
  • Ottieni i diritti Red Hat OpenShift.
  • Segui la guida alla distribuzione per configurare il software.

Documentazione e supporto

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.

Watson Discovery

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.

Strumenti open source

LangChain

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.

Illustrazione che mostra il processo langchain di alto livello per l'ingestione e l'embedding di documenti in una soluzione RAG

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:

 

  • Recupero di documenti principali: consente di creare più incorporamenti per documento principale, consentendo di cercare blocchi più piccoli ma restituire un contesto più ampio.
  • Recupero di auto-query: le domande degli utenti spesso contengono un riferimento a qualcosa che non è solo semantico, ma piuttosto esprime una logica che può essere rappresentata al meglio come un filtro di metadati. L'auto-query consente di analizzare la parte semantica di una query da altri filtri di metadati presenti nella query.
  • Recupero di insiemi: a volte potresti voler recuperare documenti da più fonti diverse o utilizzare più algoritmi diversi. Il recupero di insiemi consente di farlo facilmente.

Milvus

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.

watsonx Discovery e Milvus a confronto

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.

Funzionalità

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.

Vantaggi principali

Scalabilità

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.

Integrazione dei dati

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.

Funzioni avanzate

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.

Risorse

Tutorial Milvus RAG

Uso dei LangChain Retriever

Retriever open source con LlamaIndex

Suggerimenti, tecniche e raccomandazioni

Gestione della duplicazione, della precedenza e della distribuzione

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?

Gerarchie dei documenti

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.

Struttura generale di una gerarchia di documenti per una soluzione RAG

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.

Un esempio di gerarchia di documenti delle politiche aziendali per una società che opera in più giurisdizioni.

Implementazione

Negozi vettoriali ibridi

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"
)

Grafici delle conoscenze

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.

 

Esempio di grafico della conoscenza per un contratto legale

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.

Implementazione

Neo4j

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.

Scopri di più

Ottieni gli ultimi modelli tecnologici, architetture di soluzioni e pubblicazioni di architettura da IBM.

  1. Vai all'IBM Architecture Center
Collaboratori

 

Rohan Singh, Fahad Bhutta, Luke Major, Chris Kirby, Sacha Mongrain

Data di aggiornamento: 15 novembre 2024