Retrieval-Augmented Generation mit LangChain, Amazon SageMaker JumpStart und semantischer Suche von MongoDB Atlas | Amazon Web Services

Retrieval-Augmented Generation mit LangChain, Amazon SageMaker JumpStart und semantischer Suche von MongoDB Atlas | Amazon Web Services

Generative KI Modelle haben das Potenzial, Unternehmensabläufe zu revolutionieren, aber Unternehmen müssen sorgfältig überlegen, wie sie ihre Leistungsfähigkeit nutzen und gleichzeitig Herausforderungen wie den Schutz von Daten und die Sicherstellung der Qualität von KI-generierten Inhalten meistern können.

Das RAG-Framework (Retrieval-Augmented Generation) erweitert Eingabeaufforderungen um externe Daten aus mehreren Quellen, wie z. B. Dokumentrepositorys, Datenbanken oder APIs, um Basismodelle für domänenspezifische Aufgaben effektiv zu machen. Dieser Beitrag stellt die Fähigkeiten des RAG-Modells vor und beleuchtet das transformative Potenzial von MongoDB Atlas mit seiner Vektorsuchfunktion.

MongoDB-Atlas ist eine integrierte Suite von Datendiensten, die die Entwicklung datengesteuerter Anwendungen beschleunigen und vereinfachen. Sein Vektordatenspeicher lässt sich nahtlos in die betriebliche Datenspeicherung integrieren, sodass keine separate Datenbank erforderlich ist. Diese Integration ermöglicht leistungsstarke semantische Suchfunktionen Vektorsuche, eine schnelle Möglichkeit, semantische Suche und KI-gestützte Anwendungen zu erstellen.

Amazon Sage Maker ermöglicht es Unternehmen, Modelle für maschinelles Lernen (ML) zu erstellen, zu trainieren und bereitzustellen. Amazon SageMaker-JumpStart stellt vorab trainierte Modelle und Daten bereit, die Ihnen den Einstieg in ML erleichtern. Sie können über die SageMaker JumpStart-Landingpage in auf vorab trainierte Modelle und Daten zugreifen, diese anpassen und bereitstellen Amazon SageMaker-Studio Mit wenigen Klicks.

Amazon Lex ist eine Konversationsschnittstelle, die Unternehmen dabei hilft, Chatbots und Voice-Bots zu erstellen, die natürliche, lebensechte Interaktionen ermöglichen. Durch die Integration von Amazon Lex mit generativer KI können Unternehmen ein ganzheitliches Ökosystem schaffen, in dem Benutzereingaben nahtlos in kohärente und kontextrelevante Antworten übergehen.

Lösungsüberblick

Das folgende Diagramm zeigt die Lösungsarchitektur.

Lösungsüberblick

In den folgenden Abschnitten gehen wir die Schritte zur Implementierung dieser Lösung und ihrer Komponenten durch.

Richten Sie einen MongoDB-Cluster ein

Um einen kostenlosen MongoDB Atlas-Cluster zu erstellen, befolgen Sie die Anweisungen unter Erstellen Sie einen Cluster. Richten Sie die Datenbank ein Zugang und Netzwerk Zugang.

Stellen Sie das SageMaker-Einbettungsmodell bereit

Sie können das Einbettungsmodell (ALL MiniLM L6 v2) auf der Seite auswählen SageMaker JumpStart Modelle, Notebooks, Lösungen

SageMaker JumpStart Modelle, Notebooks, Lösungen

Auswählen Deploy um das Modell bereitzustellen.

Stellen Sie sicher, dass das Modell erfolgreich bereitgestellt wurde und dass der Endpunkt erstellt wurde.

Modell wurde erfolgreich bereitgestellt

Vektoreinbettung

Vektoreinbettung ist ein Prozess der Konvertierung eines Textes oder Bildes in eine Vektordarstellung. Mit dem folgenden Code können wir Vektoreinbettungen mit SageMaker JumpStart generieren und die Sammlung mit dem erstellten Vektor für jedes Dokument aktualisieren:

payload = {"text_inputs": [document[field_name_to_be_vectorized]]}
query_response = query_endpoint_with_json_payload(json.dumps(payload).encode('utf-8'))
embeddings = parse_response_multiple_texts(query_response) # update the document
update = {'$set': {vector_field_name :  embeddings[0]}}
collection.update_one(query, update)

Der obige Code zeigt, wie ein einzelnes Objekt in einer Sammlung aktualisiert wird. Um alle Objekte zu aktualisieren, folgen Sie den Anweisungen Anleitung.

MongoDB-Vektordatenspeicher

MongoDB Atlas-Vektorsuche ist eine neue Funktion, mit der Sie Vektordaten in MongoDB speichern und durchsuchen können. Vektordaten sind Datentypen, die einen Punkt in einem hochdimensionalen Raum darstellen. Diese Art von Daten wird häufig in ML- und künstlichen Intelligenzanwendungen verwendet. MongoDB Atlas Vector Search verwendet eine Technik namens k-nächste Nachbarn (k-NN), um nach ähnlichen Vektoren zu suchen. k-NN funktioniert, indem es die k Vektoren findet, die einem bestimmten Vektor am ähnlichsten sind. Die ähnlichsten Vektoren sind diejenigen, die dem gegebenen Vektor im Hinblick auf den euklidischen Abstand am nächsten kommen.

Das Speichern von Vektordaten neben Betriebsdaten kann die Leistung verbessern, indem die Notwendigkeit verringert wird, Daten zwischen verschiedenen Speichersystemen zu verschieben. Dies ist besonders vorteilhaft für Anwendungen, die Echtzeitzugriff auf Vektordaten erfordern.

Erstellen Sie einen Vektorsuchindex

Der nächste Schritt ist das Erstellen eines MongoDB-Vektorsuchindex auf dem Vektorfeld, das Sie im vorherigen Schritt erstellt haben. MongoDB verwendet die knnVector Geben Sie ein, um Vektoreinbettungen zu indizieren. Das Vektorfeld sollte als Array von Zahlen dargestellt werden (nur BSON-Datentypen int32, int64 oder double).

Beziehen auf Lesen Sie die Einschränkungen des knnVector-Typs Weitere Informationen zu den Einschränkungen des knnVector Art.

Der folgende Code ist eine Beispielindexdefinition:

{ "mappings": { "dynamic": true, "fields": { "egVector": { "dimensions": 384, "similarity": "euclidean", "type": "knnVector" } } }
}

Beachten Sie, dass die Dimension mit der Dimension Ihres Einbettungsmodells übereinstimmen muss.

Fragen Sie den Vektordatenspeicher ab

Sie können den Vektordatenspeicher mit abfragen Vector Search-Aggregationspipeline. Es verwendet den Vector Search-Index und führt a aus semantische Suche im Vektordatenspeicher.

Der folgende Code ist eine Beispielsuchdefinition:

{ $search: { "index": "<index name>", // optional, defaults to "default" "knnBeta": { "vector": [<array-of-numbers>], "path": "<field-to-search>", "filter": {<filter-specification>}, "k": <number>, "score": {<options>} } }
}

Stellen Sie das große Sprachmodell von SageMaker bereit

SageMaker JumpStart-Grundlagenmodelle sind vorab trainierte große Sprachmodelle (LLMs), die zur Lösung einer Vielzahl von Aufgaben der Verarbeitung natürlicher Sprache (NLP) verwendet werden, wie z. B. Textzusammenfassung, Beantwortung von Fragen und Rückschluss auf natürliche Sprache. Sie sind in verschiedenen Größen und Konfigurationen erhältlich. In dieser Lösung verwenden wir die Gesicht umarmen Modell FLAN-T5-XL.

Suchen Sie in SageMaker JumpStart nach dem Modell FLAN-T5-XL.

Suchen Sie nach dem FLAN-T5-XL

Auswählen Deploy um das Modell FLAN-T5-XL einzurichten.

Deploy

Stellen Sie sicher, dass das Modell erfolgreich bereitgestellt wurde und der Endpunkt aktiv ist.

Retrieval-Augmented Generation mit LangChain, Amazon SageMaker JumpStart und semantischer Suche von MongoDB Atlas | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Erstellen Sie einen Amazon Lex-Bot

Um einen Amazon Lex-Bot zu erstellen, führen Sie die folgenden Schritte aus:

  1. Wählen Sie in der Amazon Lex-Konsole Bot erstellen.

Bot erstellen

  1. Aussichten für Bot Name, Geben Sie einen Namen ein.
  2. Aussichten für LaufzeitrolleWählen Erstellen Sie eine Rolle mit grundlegenden Amazon Lex-Berechtigungen.
    Retrieval-Augmented Generation mit LangChain, Amazon SageMaker JumpStart und semantischer Suche von MongoDB Atlas | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.
  3. Geben Sie Ihre Spracheinstellungen an und wählen Sie dann Erledigt .
    Retrieval-Augmented Generation mit LangChain, Amazon SageMaker JumpStart und semantischer Suche von MongoDB Atlas | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.
  4. Fügen Sie eine Beispieläußerung hinzu NewIntent Benutzeroberfläche und wählen Sie Absicht speichern.
    Retrieval-Augmented Generation mit LangChain, Amazon SageMaker JumpStart und semantischer Suche von MongoDB Atlas | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.
  5. Navigieren Sie zu der FallbackIntent das standardmäßig für Sie erstellt wurde und umschalten Aktives der Erfüllung .
    Aktiv umschalten
  6. Auswählen Bauen und nachdem der Build erfolgreich war, wählen Sie Test.
    Erstellen und testen
  7. Wählen Sie vor dem Testen das Zahnradsymbol.
    Retrieval-Augmented Generation mit LangChain, Amazon SageMaker JumpStart und semantischer Suche von MongoDB Atlas | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.
  8. Präzisiere das AWS Lambda Funktion, die mit MongoDB Atlas und dem LLM interagiert, um Antworten bereitzustellen. Um die Lambda-Funktion zu erstellen, folgen Sie den Anweisungen diese Schritte.
    9. Geben Sie die AWS Lambda-Funktion an
  9. Sie können jetzt mit dem LLM interagieren.

Aufräumen

Führen Sie die folgenden Schritte aus, um Ihre Ressourcen zu bereinigen:

  1. Löschen Sie den Amazon Lex-Bot.
  2. Löschen Sie die Lambda-Funktion.
  3. Löschen Sie den LLM SageMaker-Endpunkt.
  4. Löschen Sie den SageMaker-Endpunkt des Einbettungsmodells.
  5. Löschen Sie den MongoDB Atlas-Cluster.

Zusammenfassung

In dem Beitrag haben wir gezeigt, wie man einen einfachen Bot erstellt, der die semantische Suche von MongoDB Atlas nutzt und sich in ein Modell von SageMaker JumpStart integrieren lässt. Mit diesem Bot können Sie schnell Prototypen für Benutzerinteraktionen mit verschiedenen LLMs in SageMaker Jumpstart erstellen und diese gleichzeitig mit dem Kontext aus MongoDB Atlas koppeln.

Wie immer freut sich AWS über Feedback. Bitte hinterlassen Sie Ihr Feedback und Ihre Fragen im Kommentarbereich.


Über die Autoren

Retrieval-Augmented Generation mit LangChain, Amazon SageMaker JumpStart und semantischer Suche von MongoDB Atlas | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Igor Alexejew ist Senior Partner Solution Architect bei AWS im Bereich Data and Analytics. In seiner Funktion arbeitet Igor mit strategischen Partnern zusammen und hilft ihnen beim Aufbau komplexer, AWS-optimierter Architekturen. Bevor er zu AWS kam, implementierte er als Data/Solution Architect viele Projekte im Bereich Big Data, darunter mehrere Data Lakes im Hadoop-Ökosystem. Als Data Engineer war er an der Anwendung von KI/ML zur Betrugserkennung und Büroautomatisierung beteiligt.


Retrieval-Augmented Generation mit LangChain, Amazon SageMaker JumpStart und semantischer Suche von MongoDB Atlas | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Babu Srinivasan
ist Senior Partner Solutions Architect bei MongoDB. In seiner derzeitigen Rolle arbeitet er mit AWS zusammen, um die technischen Integrationen und Referenzarchitekturen für die AWS- und MongoDB-Lösungen zu erstellen. Er verfügt über mehr als zwei Jahrzehnte Erfahrung in Datenbank- und Cloud-Technologien. Seine Leidenschaft gilt der Bereitstellung technischer Lösungen für Kunden, die mit mehreren globalen Systemintegratoren (GSIs) in mehreren Regionen zusammenarbeiten.

Zeitstempel:

Mehr von AWS Maschinelles Lernen