Dieser Abschnitt behandelt Tools und Überlegungen zu Speicherung und Abruf der RAG-Dokumentenbasis. Wir behandeln die beiden Themen gemeinsam, da die Speichertechnologie die verfügbaren Abrufmechanismen für die Abfrage und den Abruf gespeicherter Daten einschränkt.
IBM Watsonx Discovery, powered by IBM Cloud Databases for Elasticsearch, ist eine umfassende Unternehmenslösung, die zur Unterstützung und Verbesserung von Such- und RAG-Anwendungsfällen (Retrieval-Augmented Generation) entwickelt wurde. Mit robusten Funktionen für Vektorsuche, semantische Suche, föderierte Suche und mehr bietet watsonx Discovery eine umfangreiche Sammlung von Tools zum Erstellen kontextbezogener, KI-gestützter Anwendungen. Es integriert sich nahtlos in die dialogorientierte KI-Plattform watsonx Assistant und Orchestrierungsebenen wie watsonx Orchestrate von IBM, um fortschrittliche Geschäftslösungen bereitzustellen.
watsonx Discovery nutzt IBM Cloud Databases for Elasticsearch und bietet ein leistungsstarkes und flexibles Backend für die Verwaltung Ihrer Enterprise-Search-Anforderungen:
Überwachung und Zustandsprüfung: Mit Elasticsearch erhalten Entwickler Zugriff auf umfassende Überwachungs- und Zustandsprüfungstools, um sicherzustellen, dass Einbettungen, Metadaten, Chunk-Größe und Dokumentstrukturen optimiert sind. Die Elasticsearch-Webseite ermöglicht nahtlose Verwaltung und Skalierung und konzentriert sich auf die Anwendungsentwicklung statt auf operative Aufgaben wie Backups, Protokollierung, Überwachung und Einrichtung.
Erweiterte Suchfunktionen: watsonx Discovery unterstützt eine Vielzahl fortschrittlicher Suchalgorithmen, wie semantische Suche (Sparse und Dense), Metadaten-Filtersuche, lexikalische Suche, boolesche Suche (AND/OR/NOT/SLOP), Präfixsuche, Fuzzy-Suche und hybride Suche. Diese Funktionen sind entscheidend für anspruchsvolle RAG-Anwendungsfälle mit komplexen Abfragen und Dokumenten. Implementieren Sie die in diesem Notebook beschriebenen erweiterten Suchtypen, um Ihre Bereitstellung zu optimieren.
Integration mit LLM-Frameworks: Durch die Kompatibilität von Elasticsearch mit gängigen LLM-Orchestrierungs-Frameworks wie LangChain und LamaIndex eignet es sich ideal für die Integration mit watsonx Discovery zur Unterstützung von RAG-Lösungen.
watsonx Discovery ist eine vielseitige Lösung, die ein breites Spektrum an Suchmethoden unterstützt:
Das ELSER (Elastic Search Embeddings)-Modell ist ein führendes vorgefertigtes Einbettungsmodell für die semantische Suche und ermöglicht kontextuelle Suche auch ohne die Notwendigkeit benutzerdefinierter Vektordatenbanken.
watsonx Discovery unterstützt die föderierte Suche über bestehende Bereitstellungen hinweg und reduziert so den Bedarf an der Speicherung und Pflege doppelter Daten. Dies ermöglicht die unternehmensweite Suche und den Abruf von Daten über mehrere Datensilos hinweg.
watsonx Discovery vereinfacht die Extraktion und Indizierung von Inhalten durch eine umfangreiche Suite von Datenerfassungstools:
Weitere Informationen finden Sie in den folgenden ElasticSearch-Ressourcen, um Ihre watsonX Discovery-Entwicklung zu beschleunigen:
watsonx Discovery lässt sich mit Kibana und Enterprise Search integrieren, um skalierbare, KI-gesteuerte Informationsabrufe und -visualisierung bereitzustellen, die auf große Unternehmensumgebungen zugeschnitten sind:
Kibana for Data Visualization: Erstellen Sie benutzerdefinierte Dashboards und Visualisierungen auf Basis von Daten, die von watsonx Discovery erfasst werden. Es bietet Echtzeitanalysen zu wichtigen Metriken wie Entitätsextraktion, Sentimentanalyse und Dokumentenklassifikation. So können Sie Trends, Muster und Anomalien in unstrukturierten Daten aufspüren, den Analyseprozess rationalisieren und die Entscheidungsfindung verbessern.
Enterprise Search for Scalable Retrieval: Nutzen Sie NLP und semantische Suche, um eine schnelle, genaue Abfrage über strukturierte und unstrukturierte Datenquellen hinweg zu ermöglichen. Passen Sie die Suchfunktion an, um mehrere Datenquellen zu indizieren und abzurufen, darunter Dokumente, E-Mails und Datenbanken, um domänenspezifische Anwendungen zu erstellen, die sich direkt in geschäftliche Workflow integrieren lassen.
watsonx Discovery bietet native Unterstützung für rollenbasierte und attributbasierte Zugriffskontrollen, um den Zugriff auf Inhalte zu sichern und den Datenschutz zu schützen. Dadurch wird sichergestellt, dass sensible Informationen nur für autorisierte Benutzer zugänglich sind und die Unternehmensdaten geschützt werden.
watsonx Discovery kann mit watsonx Orchestrate gekoppelt werden, um Automatisierungsworkflows durch kontextbezogene Datenabfrage zu verbessern. Wenn Orchestrate einen Geschäftsprozess automatisiert, der Erkenntnisse aus unstrukturierten Daten benötigt, nutzt es Discovery, um relevante Inhalte abzurufen und zu analysieren, wodurch intelligente Aufgaben wie folgende Aufgaben ausgeführt werden können:
IBM watsonx.data ist eine leistungsstarke Datenplattform, die auf einer offenen Lakehouse-Architektur basiert und die Stärken von Data Warehouses und Data Lakes vereint. Es bietet einen einzigen Zugangspunkt für den Zugriff auf alle Ihre Daten über eine gemeinsame und offene Metadatenebene und ist damit eine ideale Lösung für Unternehmen, die ihre Datenverwaltung rationalisieren möchten. Mit Unterstützung für offene Datenformate, integrierten Funktionen für Vektoreinbettungen und einer GenAI-gestützten Dialogschnittstelle für Dateneinblicke verbessert watsonx.data Echtzeitanalysen und KI-Anwendungsfälle. Die Plattform lässt sich nahtlos in bestehende Datenbanken und Tools integrieren und bietet gleichzeitig flexible Bereitstellungsoptionen, einschließlich Cloud- und On-Premises-Konfigurationen.
Eine Schlüsselkomponente von IBM watsonx.data ist watsonx.data Milvus, eine Open-Source-Vektordatenbank, die speziell entwickelt wurde, um hochdimensionale Vektordaten wie Vektoreinbettungen zu speichern, zu verwalten und zu übertragen. Diese hochgradig konfigurierbare Vektordatenbank ist für das effiziente Indexieren und Abrufen von Vektoren optimiert, was sie ideal für Anwendungsfälle macht, die Vektorähnlichkeitssuchen in KI-Anwendungen erfordern. watsonx.data Milvus ist besonders vorteilhaft für Kunden, die watsonx.ai nutzen und eine nahtlose Integration mit Vektordatenbankfunktionen benötigen, sowie für diejenigen, die an der Implementierung von Open-Source-Frameworks wie LangChain interessiert sind, die häufig in Retrieval-Augmented Generation (RAG)-Mustern verwendet werden.
IBM watsonx.data ist in drei Bereitstellungsoptionen verfügbar, um unterschiedlichen Anforderungen gerecht zu werden:
Für Organisationen, die Vektordatenbanken nutzen möchten, bietet watsonx.data Unterstützung bei der Integration mit der Open-Source-Plattform Milvus und ermöglicht so erweiterte Funktionen wie die Vektorähnlichkeitssuche, die für KI-Anwendungen in Echtzeit unerlässlich ist.
Um mit der Nutzung von IBM watsonx.data zu beginnen, wählen Sie die Bereitstellungsoption, die am besten zu Ihren Anforderungen passt:
Stellen Sie eine Instanz bereit.
Für die On-Premises-Bereitstellung:
IBM stellt eine umfangreiche Dokumentation zur Verfügung, um erste Schritte mit der Kernplattform watsonx.data und der Vektordatenbank Milvus zu erleichtern:
Durch die Nutzung der offenen Architektur, integrierten Vektordatenbankfunktionen und fortschrittlichen KI-Funktionen von watsonx.data können Unternehmen Data-Engineering-Prozesse optimieren, die Echtzeitanalyse verbessern und neue Erkenntnisse durch KI-gestützte Funktionen freischalten. Diese einheitliche Plattform ermöglicht es Teams, auf innovative Weise mit strukturierten und unstrukturierten Daten zu arbeiten, indem sie traditionelle Analysen und modernste Vektorähnlichkeitssuche in einer einzigen Lösung vereint.
IBM watson Discovery ist ein Tool, das zum Abrufen und Analysieren unstrukturierter Daten entwickelt wurde. Seine Hauptfunktion ist die Stichwortsuche, die es Nutzern ermöglicht, große Datensätze anhand von bestimmten Begriffen oder Phrasen zu durchsuchen. Im Gegensatz zu herkömmlichen Suchmaschinen, die in der Regel Textabgleiche verwenden, nutzt watson Discovery den Kontext hinter den Schlüsselwörtern, um ein relevanteres Ergebnis zu liefern.
Eine weitere wichtige Funktion von watson Discovery ist die Entitätsextraktion. Das bedeutet, dass watson Discovery automatisch wichtige Informationen wie Personen, Orte, Unternehmen und Daten aus unstrukturiertem Text extrahieren kann. Dieser Prozess strukturiert die Daten so, dass sie verdaulich sind und direkt in die RAG-Antworten integriert werden können.
Viele LLM-Anwendungen benötigen benutzerspezifische Daten, die nicht Teil des Trainingsdatensatzes des Modells sind. Dies wird primär durch Retrieval-Augmented Generation (RAG) erreicht. Bei diesem Prozess werden externe Daten abgerufen und beim Generierungsschritt an das LLM weitergegeben.
LangChain unterstützt viele verschiedene Abrufalgorithmen. LangChain unterstützt grundlegende Methoden wie die semantische Suche. Darüber hinaus haben wir jedoch noch eine Reihe weiterer Algorithmen hinzugefügt, um die Leistung zu steigern. Dazu gehören:
Milvus ist eine KI-Plattform zur Automatisierung und Extraktion strukturierter Daten aus unstrukturierten Dokumenten und wird häufig zusammen mit watsonx Discovery für bestimmte Abrufszenarien verwendet. Milvus kann sich an verschiedene Formate anpassen und eignet sich daher ideal für große Workflows. Für KI-Ingenieure bietet es eine skalierbare Lösung, die den manuellen Aufwand bei der Datenextraktion reduziert und gleichzeitig Präzision und Effizienz gewährleistet.
Milvus ist in erster Linie eine Vektordatenbank, die für die Ähnlichkeitssuche in großen Datensätzen entwickelt wurde, besonders bei hochdimensionalen Vektoren. watsonx Discovery hingegen ist auf konversationelle semantische Suche sowie Dokumentenverständnis/-verarbeitung spezialisiert, mit besonderem Schwerpunkt auf konversationeller und semantischer Suche und Funktionen.
Milvus bietet erweiterte Funktionen wie Sparse Vector, Bulk-Vector, gefilterte Suche und hybride Suchfunktionen. Es bietet zudem eine verteilte Architektur, die sowohl das Skalieren nach außen/innen als auch nach oben/unten ermöglicht und somit hochgradig skalierbar für große Datensätze ist.
Milvus kann große Vektordatenmengen verarbeiten und unterstützt leistungsstarke Vektorähnlichkeitssuchen, was für RAG-Lösungen, die Informationen aus großen Datensätzen extrahieren, unerlässlich ist.
Milvus lässt sich nahtlos in watsonx.data integrieren, wodurch es die Datenverwaltung für KI-Modelle und Anwendungen vereinfacht. Dies ermöglicht skalierbare RAG-Anwendungsfälle für große Mengen an verwalteten Daten.
Milvus unterstützt erweiterte Funktionen wie Metadatenfilterung, Verbesserung der Relevanz von Suchergebnissen und Optimierung der Effektivität des RAG-Systems.
Ein einfacher Vektorspeicher funktioniert gut für einfache RAG-Lösungen, aber er funktioniert schnell nicht mehr, wenn das Dokument mehrere ähnliche Informationen enthält (ähnlich ist nicht dasselbe wie relevant), die Informationen zur Beantwortung einer Anfrage auf mehrere Dokumente verteilt sind oder auf mehrere Abschnitte eines Dokuments verteilt ist. Sehen wir uns einige Beispiele zur Veranschaulichung an …
Beispiel 1
Ein Unternehmen betreibt Niederlassungen in mehreren Staaten, von denen jede ihre eigene Personalpolitik hat. Das Unternehmen verwendet in allen seinen Niederlassungen ein einheitliches Dokumentenformat für Personalinformationen. Wenn das Unternehmen seine Personalrichtlinien in eine Vektordatenbank einbetten würde, gäbe es mehrere Blöcke für beispielsweise die Beantragung von Urlaub mit unterschiedlichen unterstützenden Texten, was Halluzinationen sehr wahrscheinlich macht.
Beispiel 2
Ein Dienstleistungsvertrag enthält ein Glossar mit definierten Begriffen, die im Vertrag großgeschrieben werden, um den Verweis auf die Definition zu kennzeichnen, z. B. „the Lessor“, „the Evaluation Period“ usw. Ein naives Parsing und Chunking des Vertrags, das den Vertrag von Anfang bis Ende parsed und in Chunks eingeteilt hat, würde zu Interaktionen wie den folgenden führen:
Anfrage: Wie viel Zeit hat Acme nach Abschluss der Dienstleistungen, bevor ihnen die Rechnung gestellt wird? Antwort: Dem Käufer wird nach Ablauf der Testphase eine Nachfrist von 10 Tagen eingeräumt, bevor ihm die Leistungen in Rechnung gestellt werden.
Hilfreich, aber garantiert Folgefragen und eine schnelle Ergänzung, um eine vollständigere Antwort zu erhalten.
Beispiel 3
Die Regierung eines Staates veröffentlicht Änderungen ihrer Gesetzgebung als „Ergänzungen“ bestehender Gesetze. Zum Beispiel: „Section 12.2 of the Narcotics Control Act is amended to exclude Cannabis and Cannabis-related products.“ Wie kann eine Vektordatenbank feststellen, dass dieser Textabschnitt Vorrang vor allen anderen Abschnitten zum Thema Cannabis haben soll?
Eine Dokumentenhierarchie organisiert Chunks aus Dokumenten in Kategorien, die verwandte Dokumente zusammenfassen, ähnlich wie ein Inhaltsverzeichnis oder eine Reihe von Ordnern auf einem Computer. Durch die Verwendung einer Dokumentenhierarchie kann eine RAG-Lösung das Thema einer Benutzeranfrage eingrenzen, sodass nur die relevantesten Dokumente abgerufen werden können.
Wenn man dies auf das obige Beispiel für ein HR-Dokument mit mehreren Status anwendet, würde eine nützliche Dokumentenhierarchie das Dokument nach Status kategorisieren, sodass die RAG-Lösung nur die Dokumentenabschnitte abrufen kann, die für einen bestimmten Zustand relevant sind. Wie in der untenstehenden Abbildung gezeigt, könnte eine mögliche Hierarchie Dokumente zunächst nach Land, dann nach dem jeweiligen Bundesstaat/Provinz und schließlich nach Politikbereichen oder Themen organisieren. Das bedeutet natürlich, dass die Lösung entweder aus dem angegebenen Wohnsitzstaat des Benutzers auf den entsprechenden Staat schließen muss oder den Benutzer auffordert, den gewünschten Staat anzugeben.
Dokumenthierarchien können in hybriden Vektorspeichern implementiert werden – Vektorspeicher, die Schemata unterstützen, welche numerische und kategorische Datentypen neben Vektoren umfassen, wie beispielsweise Milvus, wobei Kategorie- und Unterkategoriefelder als Teil der Suchkriterien verwendet werden, wie in der unten stehenden Milvus-Schema-Definition gezeigt.
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" )
Wissensgraphen erfassen die Beziehungen zwischen Entitäten in einem Dokument oder zwischen verschiedenen Dokumenten. Im Gegensatz zu einer Ähnlichkeitssuche in einer Vektordatenbank kann ein Wissensgraph relevante Beziehungen und Inhalte konsistent und genau abrufen, was das Auftreten von Halluzinationen erheblich reduzieren kann. In Kombination mit Ähnlichkeitssuchen in Vektordatenbanken versetzen Graphdatenbanken RAG-Lösungen in die Lage, verwandte Inhalte innerhalb eines Dokuments und/oder über einen Dokumentensatz hinweg zusammenzustellen. Die Abbildung unten zeigt einen möglichen Wissensgraphen für einen Dienstleistungsvertrag.
Der beste Wissensgraph für eine RAG-Lösung wäre zwar einer, der von Menschen erstellt und gepflegt wird, aber die Verwendung eines Large Language Model (LLM) zur Analyse der Entitäten und Beziehungen in einem Dokument und zur Erstellung eines Wissensgraphen liefert überraschend gute Ergebnisse.
Neo4j ist eine beliebte Open-Source-Graphdatenbank (GPLv3). Dieses Tutorial führt den Leser durch die Konfiguration und Codierung einer um einen Wissensgraphen erweiterten RAG-Lösung mit neo4j und Langchain.