Retriever für RAG-Workflows - AWS Präskriptive Leitlinien

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Retriever für RAG-Workflows

In diesem Abschnitt wird erklärt, wie Sie einen Retriever erstellen. Sie können eine vollständig verwaltete semantische Suchlösung wie Amazon Kendra verwenden oder mithilfe einer Vektordatenbank eine benutzerdefinierte semantische Suche erstellen. AWS

Bevor Sie sich mit den Retrieveroptionen befassen, stellen Sie sicher, dass Sie die drei Schritte des Vektorsuchprozesses verstanden haben:

  1. Sie teilen die Dokumente, die indexiert werden müssen, in kleinere Teile auf. Dies wird als Chunking bezeichnet.

  2. Sie verwenden einen Prozess namens Einbetten, um jeden Chunk in einen mathematischen Vektor umzuwandeln. Anschließend indizieren Sie jeden Vektor in einer Vektordatenbank. Der Ansatz, mit dem Sie die Dokumente indizieren, beeinflusst die Geschwindigkeit und Genauigkeit der Suche. Der Indizierungsansatz hängt von der Vektordatenbank und den von ihr bereitgestellten Konfigurationsoptionen ab.

  3. Sie konvertieren die Benutzerabfrage mit demselben Verfahren in einen Vektor. Der Retriever durchsucht die Vektordatenbank nach Vektoren, die dem Abfragevektor des Benutzers ähnlich sind. Die Ähnlichkeit wird anhand von Metriken wie der euklidischen Distanz, der Kosinusdistanz oder dem Punktprodukt berechnet.

In diesem Handbuch wird beschrieben, wie Sie mit den folgenden Diensten AWS-Services oder Diensten von Drittanbietern eine benutzerdefinierte Abruf-Ebene erstellen können: AWS

Amazon Kendra

Amazon Kendra ist ein vollständig verwalteter, intelligenter Suchservice, der natürliche Sprachverarbeitung und fortschrittliche Algorithmen für maschinelles Lernen verwendet, um spezifische Antworten auf Suchfragen aus Ihren Daten zurückzugeben. Amazon Kendra hilft Ihnen dabei, Dokumente aus mehreren Quellen direkt aufzunehmen und die Dokumente abzufragen, nachdem sie erfolgreich synchronisiert wurden. Durch den Synchronisierungsprozess wird die erforderliche Infrastruktur geschaffen, um eine Vektorsuche im aufgenommenen Dokument zu erstellen. Daher benötigt Amazon Kendra nicht die traditionellen drei Schritte des Vektorsuchprozesses. Nach der ersten Synchronisierung können Sie einen definierten Zeitplan verwenden, um die laufende Datenaufnahme zu handhaben.

Im Folgenden sind die Vorteile der Verwendung von Amazon Kendra for RAG aufgeführt:

  • Sie müssen keine Vektordatenbank verwalten, da Amazon Kendra den gesamten Vektorsuchprozess abwickelt.

  • Amazon Kendra enthält vorgefertigte Konnektoren für beliebte Datenquellen wie Datenbanken, Website-Crawler, Amazon S3 S3-Buckets, Microsoft SharePoint Instances und Instances. Atlassian Confluence Von AWS Partnern entwickelte Konnektoren sind verfügbar, z. B. Konnektoren für und. Box GitLab

  • Amazon Kendra bietet eine ACL-Filterung (Access Control List), die nur Dokumente zurückgibt, auf die der Endbenutzer Zugriff hat.

  • Amazon Kendra kann Antworten auf der Grundlage von Metadaten wie Datum oder Quell-Repository beschleunigen.

Die folgende Abbildung zeigt eine Beispielarchitektur, die Amazon Kendra als Abruf-Ebene des RAG-Systems verwendet. Weitere Informationen finden Sie unter Schnelles Erstellen hochgenauer generativer KI-Anwendungen auf Unternehmensdaten mithilfe von Amazon Kendra und großen Sprachmodellen (AWS Blogbeitrag). LangChain

Verwendung von Amazon Kendra als Abruf-Ebene für ein RAG-System auf. AWS

Für das Foundation-Modell können Sie Amazon Bedrock oder ein über Amazon SageMaker AI bereitgestelltes LLM verwenden. JumpStart Sie können AWS Lambda with verwenden LangChain, um den Fluss zwischen dem Benutzer, Amazon Kendra und dem LLM zu orchestrieren. Informationen zum Erstellen eines RAG-Systems, das Amazon Kendra und andere verwendet LangChain LLMs, finden Sie im Amazon Kendra LangChain Extensions GitHub Repository.

OpenSearch Amazon-Dienst

Amazon OpenSearch Service bietet integrierte ML-Algorithmen für die Suche nach k-Nearest Neighbours (k-NN), um eine Vektorsuche durchzuführen. OpenSearch Der Service bietet auch eine Vektor-Engine für Amazon EMR Serverless. Mit dieser Vektor-Engine können Sie ein RAG-System erstellen, das über skalierbare und leistungsstarke Vektorspeicher- und Suchfunktionen verfügt. Weitere Informationen zum Erstellen eines RAG-Systems mithilfe von OpenSearch Serverless finden Sie unter Erstellen skalierbarer und serverloser RAG-Workflows mit einer Vektor-Engine für Amazon OpenSearch Serverless- und Amazon Bedrock Claude-Modelle (AWS Blogbeitrag).

Im Folgenden sind die Vorteile der Verwendung von OpenSearch Service für die Vektorsuche aufgeführt:

  • Es bietet die vollständige Kontrolle über die Vektordatenbank, einschließlich der Erstellung einer skalierbaren Vektorsuche mithilfe von OpenSearch Serverless.

  • Es bietet die Kontrolle über die Chunking-Strategie.

  • Es verwendet ANN-Algorithmen (Approximate Nearest Neighbor) aus den Bibliotheken Non-Metric Space Library (NMSLIB), Faiss und Apache Lucene, um eine k-NN-Suche durchzuführen. Sie können den Algorithmus je nach Anwendungsfall ändern. Weitere Informationen zu den Optionen für die Anpassung der Vektorsuche über OpenSearch Service finden Sie unter Erläuterung der Funktionen der Amazon OpenSearch Service-Vektordatenbank (AWS Blogbeitrag).

  • OpenSearch Serverless lässt sich als Vektorindex in die Wissensdatenbanken von Amazon Bedrock integrieren.

Amazon Aurora PostgreSQL und pgvector

Amazon Aurora PostgreSQL-Compatible Edition ist eine vollständig verwaltete relationale Datenbank-Engine, die Sie bei der Einrichtung, dem Betrieb und der Skalierung von PostgreSQL-Bereitstellungen unterstützt. pgvector ist eine Open-Source-PostgreSQL-Erweiterung, die Funktionen zur Suche nach Vektorähnlichkeit bietet. Diese Erweiterung ist sowohl für Aurora PostgreSQL-kompatibel als auch für Amazon Relational Database Service (Amazon RDS) für PostgreSQL verfügbar. Weitere Informationen zum Aufbau eines RAG-basierten Systems, das Aurora PostgreSQL-kompatibel und pgvector verwendet, finden Sie in den folgenden Blogbeiträgen: AWS

Im Folgenden sind die Vorteile der Verwendung von pgvector und Aurora PostgreSQL-kompatibel aufgeführt:

Amazon Neptune Analytics

Amazon Neptune Analytics ist eine speicheroptimierte Graphdatenbank-Engine für Analysen. Sie unterstützt eine Bibliothek mit optimierten Algorithmen für die Graphanalyse, Grafikabfragen mit geringer Latenz und Vektorsuchfunktionen innerhalb von Graphendurchläufen. Es verfügt auch über eine integrierte Vektorähnlichkeitssuche. Es bietet einen Endpunkt, um ein Diagramm zu erstellen, Daten zu laden, Abfragen aufzurufen und eine Vektorähnlichkeitssuche durchzuführen. Weitere Informationen zum Erstellen eines RAG-basierten Systems, das Neptune Analytics verwendet, finden Sie unter Verwenden von Wissensgraphen zur Erstellung von GraphRag-Anwendungen mit Amazon Bedrock und Amazon Neptune (Blogbeitrag).AWS

Im Folgenden sind die Vorteile der Verwendung von Neptune Analytics aufgeführt:

  • Sie können Einbettungen in Grafikabfragen speichern und durchsuchen.

  • Wenn Sie Neptune Analytics mit integrierenLangChain, unterstützt diese Architektur Graphabfragen in natürlicher Sprache.

  • Diese Architektur speichert große Graphdatensätze im Speicher.

Amazon MemoryDB

Amazon MemoryDB ist ein langlebiger In-Memory-Datenbankservice, der ultraschnelle Leistung bietet. Alle Ihre Daten werden im Speicher gespeichert, der Lesevorgänge im Mikrosekundenbereich, Schreiblatenz im einstelligen Millisekundenbereich und hohen Durchsatz unterstützt. Die Vektorsuche für MemoryDB erweitert die Funktionalität von MemoryDB und kann in Verbindung mit vorhandenen MemoryDB-Funktionen verwendet werden. Weitere Informationen finden Sie unter Fragen beantworten mit LLM und RAG-Repository auf. GitHub

Das folgende Diagramm zeigt eine Beispielarchitektur, die MemoryDB als Vektordatenbank verwendet.

Eine generative KI-Anwendung, die Kontext aus einer MemoryDB-Vektordatenbank abruft.

Im Folgenden sind die Vorteile der Verwendung von MemoryDB aufgeführt:

  • Es unterstützt sowohl Flat- als auch HNSW-Indizierungsalgorithmen. Weitere Informationen finden Sie unter Die Vektorsuche für Amazon MemoryDB ist jetzt allgemein im News-Blog verfügbar AWS

  • Es kann auch als Pufferspeicher für das Foundation-Modell dienen. Dies bedeutet, dass zuvor beantwortete Fragen aus dem Puffer abgerufen werden, anstatt den Abruf- und Generierungsprozess erneut zu durchlaufen. Das folgende Diagramm zeigt diesen Prozess.

    Speichern einer Antwort in einer MemoryDB-Datenbank, sodass sie aus dem Pufferspeicher abgerufen werden kann.
  • Da sie eine In-Memory-Datenbank verwendet, bietet diese Architektur eine Abfragezeit im einstelligen Millisekundenbereich für die semantische Suche.

  • Sie ermöglicht bis zu 33.000 Abfragen pro Sekunde bei einem Erinnerungsvermögen von 95— 99% und 26.500 Abfragen pro Sekunde bei einem Wiedererkennungswert von mehr als 99% Weitere Informationen finden Sie im Video AWS re:Invent 2023 — Vektorsuche mit extrem niedriger Latenz für Amazon MemoryDB auf. YouTube

Amazon DocumentDB

Amazon DocumentDB (mit MongoDB-Kompatibilität) ist ein schneller, zuverlässiger und vollständig verwalteter Datenbankservice. Er macht es einfach, MongoDB kompatible Datenbanken in der Cloud einzurichten, zu betreiben und zu skalieren. Die Vektorsuche für Amazon DocumentDB kombiniert die Flexibilität und die umfangreichen Abfragefunktionen einer JSON-basierten Dokumentendatenbank mit der Leistungsfähigkeit der Vektorsuche. Weitere Informationen finden Sie unter Fragen beantworten mit dem LLM - und RAG-Repository unter. GitHub

Das folgende Diagramm zeigt eine Beispielarchitektur, die Amazon DocumentDB als Vektordatenbank verwendet.

Eine generative KI-Anwendung, die Kontext aus einer Amazon DocumentDB DocumentDB-Vektordatenbank abruft.

Das Diagramm zeigt den folgenden Workflow:

  1. Der Benutzer sendet eine Anfrage an die generative KI-Anwendung.

  2. Die generative KI-Anwendung führt eine Ähnlichkeitssuche in der Amazon DocumentDB DocumentDB-Vektordatenbank durch und ruft die entsprechenden Dokumentauszüge ab.

  3. Die generative KI-Anwendung aktualisiert die Benutzerabfrage mit dem abgerufenen Kontext und leitet die Aufforderung an das Ziel-Foundation-Modell weiter.

  4. Das Foundation-Modell verwendet den Kontext, um eine Antwort auf die Frage des Benutzers zu generieren, und gibt die Antwort zurück.

  5. Die generative KI-Anwendung gibt die Antwort an den Benutzer zurück.

Im Folgenden sind die Vorteile der Verwendung von Amazon DocumentDB aufgeführt:

  • Es unterstützt sowohl HNSW- als auch IVFFlat Indexierungsmethoden.

  • Es unterstützt bis zu 2.000 Dimensionen in den Vektordaten und unterstützt die Entfernungsmetriken Euklid, Kosinus und Punktprodukt.

  • Es bietet Reaktionszeiten im Millisekundenbereich.

Pinecone

Pineconeist eine vollständig verwaltete Vektordatenbank, mit der Sie Produktionsanwendungen um die Vektorsuche erweitern können. Sie ist über die verfügbar AWS Marketplace. Die Abrechnung basiert auf der Nutzung. Die Gebühren werden berechnet, indem der Pod-Preis mit der Pod-Anzahl multipliziert wird. Weitere Informationen zum Aufbau eines RAG-basierten Systems, das Folgendes verwendetPinecone, finden Sie in den folgenden AWS Blogbeiträgen:

Das folgende Diagramm zeigt eine Beispielarchitektur, die Pinecone als Vektordatenbank verwendet wird.

Eine generative KI-Anwendung, die Kontext aus einer Pinecone Vektordatenbank abruft.

Das Diagramm zeigt den folgenden Workflow:

  1. Der Benutzer sendet eine Anfrage an die generative KI-Anwendung.

  2. Die generative KI-Anwendung führt eine Ähnlichkeitssuche in der Pinecone Vektordatenbank durch und ruft die entsprechenden Dokumentenauszüge ab.

  3. Die generative KI-Anwendung aktualisiert die Benutzerabfrage mit dem abgerufenen Kontext und sendet die Aufforderung an das Ziel-Foundation-Modell.

  4. Das Foundation-Modell verwendet den Kontext, um eine Antwort auf die Frage des Benutzers zu generieren, und gibt die Antwort zurück.

  5. Die generative KI-Anwendung gibt die Antwort an den Benutzer zurück.

Im Folgenden sind die Vorteile der Verwendung von aufgeführtPinecone:

  • Es handelt sich um eine vollständig verwaltete Vektordatenbank, die Ihnen den Aufwand für die Verwaltung Ihrer eigenen Infrastruktur nimmt.

  • Sie bietet zusätzliche Funktionen wie Filterung, Live-Indexaktualisierungen und Keyword-Boosting (Hybridsuche).

MongoDB Atlas

MongoDB Atlasist eine vollständig verwaltete Cloud-Datenbank, die die gesamte Komplexität der Bereitstellung und Verwaltung Ihrer Bereitstellungen bewältigt. AWS Sie können Vector Search for verwendenMongoDB Atlas, um Vektor-Einbettungen in Ihrer Datenbank zu speichern. MongoDB Amazon Bedrock Knowledge Bases unterstützt MongoDB Atlas Vektorspeicher. Weitere Informationen finden Sie in der MongoDB Dokumentation unter Erste Schritte mit der Amazon Bedrock Knowledge Base-Integration.

Weitere Informationen zur Verwendung der MongoDB Atlas Vektorsuche für RAG finden Sie unter Retrieval-Augmented Generation withLangChain, Amazon SageMaker AI JumpStart und MongoDB Atlas Semantic Search (AWS Blogbeitrag). Das folgende Diagramm zeigt die Lösungsarchitektur, die in diesem Blogbeitrag detailliert beschrieben wird.

Verwendung der MongoDB Atlas Vektorsuche zum Abrufen des Kontextes für eine RAG-basierte generative KI-Anwendung.

Im Folgenden sind die Vorteile der Verwendung der MongoDB Atlas Vektorsuche aufgeführt:

  • Sie können Ihre bestehende Implementierung von verwendenMongoDB Atlas, um Vektoreinbettungen zu speichern und zu durchsuchen.

  • Sie können die MongoDBAbfrage-API verwenden, um die Vektoreinbettungen abzufragen.

  • Sie können die Vektorsuche und die Datenbank unabhängig voneinander skalieren.

  • Vektoreinbettungen werden in der Nähe der Quelldaten (Dokumente) gespeichert, was die Indizierungsleistung verbessert.

Weaviate

Weaviateist eine beliebte Open-Source-Vektordatenbank mit niedriger Latenz, die multimodale Medientypen wie Text und Bilder unterstützt. In der Datenbank werden sowohl Objekte als auch Vektoren gespeichert, wodurch die Vektorsuche mit strukturierter Filterung kombiniert wird. Weitere Informationen zur Verwendung von Weaviate Amazon Bedrock zur Erstellung eines RAG-Workflows finden Sie unter Erstellen unternehmensfähiger generativer KI-Lösungen mit Cohere Foundation-Modellen in Amazon Bedrock und Weaviate Vector Database auf AWS Marketplace (Blogbeitrag).AWS

Im Folgenden sind die Vorteile der Verwendung von: Weaviate

  • Es ist Open Source und wird von einer starken Community unterstützt.

  • Es ist für die Hybridsuche (sowohl Vektoren als auch Schlüsselwörter) konzipiert.

  • Sie können es AWS als verwaltetes Software-as-a-Service (SaaS) -Angebot oder als Kubernetes-Cluster bereitstellen.