AWS Germany – Amazon Web Services in Deutschland
Vorschau – Verbinden Sie Ihre Unternehmensdaten mit Amazon Bedrock Agents
von Antje Barth, übersetzt von Tobias Nitzsche.
Im Juli haben wir Agenten für Amazon Bedrock als Vorschau vorgestellt. Diese bilden eine neue Funktion in Amazon Bedrock, die es Entwickler:innen ermöglicht, generative KI-Anwendungen zu erstellen, die Aufgaben selbst erledigen können. Heute freue ich mich, Ihnen ein neues Feature vorstellen zu dürfen: die sichere Anbindung von Grundlagenmodellen (engl. Foundation Models, FMs) an Ihre Unternehmensdatenquellen mithilfe sogenannter Agenten.
Mit einer Wissensdatenbank können Sie Agenten verwenden, um den FMs in Bedrock Zugriff auf zusätzliche Daten zu ermöglichen. Diese zusätzlichen Daten helfen dem Modell relevantere, kontextspezifische und genauere Antworten zu generieren, ohne das FM ständig neu trainieren zu müssen. Basierend auf den Eingaben der Nutzer:innen identifizieren die Agenten die geeignete Wissensdatenbank, rufen die relevanten Informationen ab und fügen diese der Prompt (engl. für Eingabeaufforderung) hinzu. Dadurch erhält das Modell mehr Kontextinformationen für die Generierung einer Antwort.
Die Agenten für Amazon Bedrock verwenden hierzu ein Konzept, welches als Retrieval Augmented Generation (RAG) bekannt ist. Um eine Wissensdatenbank zu erstellen, geben Sie den Speicherort Ihrer Daten im Amazon Simple Storage Service (Amazon S3) an, wählen ein Einbettungsmodell aus und geben die Details Ihrer Vektordatenbank an. Amazon Bedrock wandelt Ihre Daten in Einbettungen um und speichert diese in der Vektordatenbank. Anschließend können Sie die Wissensdatenbank den Agenten hinzufügen, um RAG-Abfragen zu ermöglichen.
Für die Vektordatenbank haben Sie die Wahl zwischen der Vektor-Engine für Amazon OpenSearch Serverless [EN], Pinecone [EN, Extern] und Redis Enterprise Cloud [EN, Extern]. Ich werde im weiteren Verlauf des Posts auf die Details hierzu und zu Retrieval Augmented Generation eingehen.
Grundlagen zu Retrieval Augmented Generation, Einbettungen und Vektordatenbanken
RAG ist kein spezifisches Technologiepaket, sondern ein Konzept, das FMs Zugang zu Daten ermöglicht, die sie während des Trainings nicht gesehen haben. Mit RAG können Sie FMs mit zusätzlichen Informationen erweitern, einschließlich unternehmensspezifischer Daten, ohne Ihr Modell ständig neu trainieren zu müssen.
Das häufige Aktualisieren Ihres Modells ist sowohl zeitaufwendig als auch teuer. Während dieser Zeit könnte Ihr Unternehmen bereits neue Daten produziert haben, sodass das trainiertes Modell dann auf bereits veralteten Informationen basiert. RAG behebt dieses Problem, indem es Ihrem Modell während der Laufzeit Zugang zu zusätzlichen externen Daten ermöglicht. Relevante Daten werden dann dem Prompt hinzugefügt, um sowohl die Relevanz als auch die Genauigkeit der Generierungen zu verbessern.
Diese Daten können aus verschiedenen Quellen stammen, beispielsweise aus Dokumentenspeichern oder Datenbanken. Eine gängige Implementierung für die Dokumentensuche besteht darin, Ihre Dokumente oder Teile davon in Vektoreinbettungen mit einem Einbettungsmodell umzuwandeln und diese Vektoreinbettungen dann in einer Vektordatenbank zu speichern, wie in der folgenden Abbildung dargestellt.
Die Vektoreinbettung umfasst die numerischen Repräsentationen der Textdaten innerhalb Ihrer Dokumente. Jede Einbettung zielt darauf ab, die semantische oder kontextuelle Bedeutung der Daten abzubilden. Jede Vektoreinbettung wird oft zusammen mit zusätzlichen Metadaten, wie einem Verweis auf den ursprünglichen Inhalt, aus dem die Einbettung erstellt wurde, in einer Vektordatenbank abgelegt. Die Vektordatenbank indiziert dann die Vektoren, was auf verschiedene Weisen erfolgen kann. Diese Indizierung ermöglicht die schnelle Wiedergewinnung relevanter Daten.
Im Vergleich zur traditionellen Stichwortsuche kann die Vektorsuche relevante Ergebnisse finden, ohne dass eine exakte Übereinstimmung mit dem Stichwort erforderlich ist. Wenn Sie beispielsweise nach „Was kostet Produkt X?“ suchen und Ihre Dokumente sagen „Der Preis von Produkt X beträgt […]“, funktioniert die Stichwortsuche möglicherweise nicht, da „Preis“ und „Kosten“ zwei unterschiedliche Wörter sind. Bei der Vektorsuche wird jedoch das genaue Ergebnis zurückgegeben, da „Preis“ und „Kosten“ semantisch ähnlich sind; sie haben die gleiche Bedeutung. Die Ähnlichkeit von Vektoren wird mithilfe von Distanzmetriken wie euklidischer Distanz, Kosinus-Ähnlichkeit oder Skalarprodukts-Ähnlichkeit berechnet.
Die Vektordatenbank wird dann im Ablauf des Prompts verwendet, um basierend auf einem Prompt, der effizient externe Informationen abruft:
Der Ablauf beginnt mit einem Prompt der Nutzer:innen ,welcher an das Einbettungs-Modell geleitet wird. Dieses erstellt daraufhin eine Vektor-Einbettung, welche dann verwendet wird, um die Datenbank nach ähnlichen Vektoreinbettungen abzufragen und den relevantesten Text als Abfrageergebnis zurückzugeben.Das Abfrageergebnis wird dann dem Prompt hinzugefügt und die erweiterte Aufforderung wird an das FM weitergeleitet. Das Modell verwendet den zusätzlichen Kontext im Prompt, um die Generierung abzuschließen:
Ähnlich wie bei dem vollständig verwalteten Agentenerlebnis, das ich im Blogbeitrag über Agenten für Amazon Bedrock beschrieben habe, verwaltet die Wissensdatenbank für Amazon Bedrock den Ablauf der Datenzufuhr und die Agenten steuern den RAG-Ablauf für Sie.
Erste Schritte mit Wissensdatenbanken für Amazon Bedrock
Sie können eine Wissensdatenbank hinzufügen, indem Sie eine Datenquelle wie Amazon S3 spezifizieren, ein Einbettungsmodell wie Amazon Titan Embeddings auswählen, um die Daten in Vektoreinbettungen umzuwandeln, und eine Ziel-Vektordatenbank auswählen, in der die Vektordaten gespeichert werden sollen. Amazon Bedrock übernimmt die Erstellung, Speicherung, Verwaltung und Aktualisierung Ihrer Einbettungen in der Vektordatenbank für Sie.
Wenn Sie einer Agentenkonfiguration Wissensdatenbanken hinzufügen, identifiziert der Agent basierend auf den Eingaben der Nutzer:innen die passende Wissensdatenbank, ruft die relevanten Informationen ab und fügt diese der Eingabeaufforderung hinzu. Dies versorgt das Modell mit mehr Kontextinformationen für die Antwortgenerierung, wie in der unterstehenden Abbildung gezeigt. Alle von Wissensdatenbanken abgerufenen Informationen werden mit Quellenangaben versehen, um die Transparenz zu erhöhen und Halluzinationen zu minimieren.
Lassen Sie mich diese Schritte im Detail erläutern.
Eine Wissensdatenbank für Amazon Bedrock erstellen
Nehmen wir an, Sie sind Entwickler:in in einer Steuerberatungsfirma und möchten den Nutzer:innen eine generative KI-Anwendung – einen SteuerBot – zur Verfügung stellen, der Fragen zur US-Steuererklärung beantworten kann. Zuerst erstellen Sie eine Wissensdatenbank, die die relevanten Steuerdokumente enthält. Dann konfigurieren Sie einen Agenten in Bedrock mit Zugang zu dieser Wissensdatenbank und integrieren den Agenten in Ihre SteuerBot-Anwendung.
Um zu beginnen, öffnen Sie die Bedrock-Konsole [EN], wählen im linken Navigationsbereich “Knowledge base” (Wissensdatenbank) und dann “Create knowledge base” (Wissensdatenbank erstellen).
Schritt 1 – Angaben zu einer Wissensdatenbank umformen
Geben Sie einen Namen für die Wissensdatenbank und eine optionale Beschreibung ein. Sie müssen auch eine AWS Identity and Access Management (IAM) Laufzeitrolle mit einer Trust Policy für Amazon Bedrock auswählen, die Berechtigungen für den Zugriff auf den S3-Bucket, den Sie für die Wissensdatenbank verwenden möchten, sowie Lese-/Schreibberechtigungen für Ihre Vektordatenbank hat. Tags können nach Bedarf zugewiesen werden.
Schritt 2 – Datenquelle einrichten
Geben Sie einen Namen für die Datenquelle an und spezifizieren Sie den Amazon S3-Speicherort für Ihre Daten. Unterstützte Datenformate sind .txt, .md, .html, .doc und .docx, .csv, .xls und .xlsx sowie .pdf. Sie können auch einen AWS Key Management Service (AWS KMS) Schlüssel bereitstellen, damit Bedrock Ihre Daten entschlüsseln und verschlüsseln kann, sowie einen weiteren AWS KMS Schlüssel für die temporäre Datenspeicherung, während Bedrock Ihre Daten in Einbettungen umwandelt.
Wählen Sie das Einbettungsmodell, zum Beispiel “Amazon Titan Embeddings – Text”, und Ihre Vektordatenbank. Für die Vektordatenbank können Sie, wie bereits erwähnt, zwischen dem Vektor-Engine für Amazon OpenSearch Serverless, Pinecone oder Redis Enterprise Cloud wählen.
Wichtiger Hinweis zur Vektordatenbank: Amazon Bedrock erstellt keine Vektordatenbank in Ihrem Namen. Sie müssen eine neue, leere Vektordatenbank aus der Liste der unterstützten Optionen erstellen und den Namen des Vektor-Indexes sowie die Zuordnungen für die Index- und Metadatenfelder angeben. Diese Vektordatenbank muss ausschließlich für die Verwendung mit Amazon Bedrock reserviert sein.
Lassen Sie mich Ihnen nun zeigen, wie die Einrichtung für die Vektor-Engine für Amazon OpenSearch Serverless aussieht. Voraussetzung hierfür ist, dass Sie bereits eine OpenSearch Serverless-Sammlung eingerichtet haben. Dies wird in diesem Entwicklerhandbuch und in diesem AWS Big Data Blog-Beitrag [EN] beschrieben.
Geben Sie Ihre Amazon-Ressourcenname (ARN) der OpenSearch Serverless-Sammlung an, spezifizieren Sie den Vektor-Indexnamen und die Zuordnungen für Vektor- und Metadatenfelder.
Die Konfiguration für Pinecone und Redis Enterprise Cloud ist ähnlich. Weitere Einzelheiten zur Einrichtung und Vorbereitung ihrer Vektordatenbank für Bedrock finden Sie in diesem Pinecone-Blogbeitrag [EN, Extern] und diesem Redis Inc.-Blogbeitrag [EN, Extern].
Schritt 3 – Überprüfen und erstellen
Überprüfen Sie Ihre Wissensdatenbankkonfiguration und wählen “Create knowledge database” (Wissensdatenbank erstellen).
Zurück auf der Detailseite der Wissensdatenbank wählen Sie “Sync” (Synchronisieren) für die neu erstellte Datenquelle, und immer wenn Sie der Datenquelle neue Daten hinzufügen, beginnt der Ingestions-Workflow, der Ihre Amazon S3-Daten in Vektoreinbettungen umwandelt und diese Einbettungen in der Vektordatenbank aktualisiert. Je nach Datenmenge kann dieser gesamte Workflow einige Zeit in Anspruch nehmen.
Im nächsten Teil zeige ich Ihnen, wie Sie die Wissensdatenbank zu einer Agentenkonfiguration hinzufügen.
Wissensdatenbanken in Agenten für Amazon Bedrock integrieren
Sie können eine Wissensdatenbank hinzufügen, wenn Sie einen Agenten für Amazon Bedrock erstellen oder aktualisieren. Erstellen Sie einen Agenten gemäß den Anweisungen in diesem AWS News Blog-Beitrag über Agenten für Amazon Bedrock.
In meinem Beispiel mit dem SteuerBot habe ich einen Agenten namens „SteuerBot“ erstellt, ein FM ausgewählt und in Schritt 2 folgende Anweisungen für den Agenten vorgegeben (sinngemäß übersetzt): „Du bist ein hilfreicher und freundlicher Agent, der Fragen zur US-Steuererklärung beantwortet.“ In Schritt 4 können Sie nun eine zuvor erstellte Wissensdatenbank auswählen und Anweisungen für den Agenten verfassen, die beschreiben, wann diese Wissensdatenbank verwendet werden soll.
Diese Anweisungen sind sehr wichtig, da sie dem Agenten helfen zu entscheiden, ob eine bestimmte Wissensdatenbank für die Informationsbeschaffung herangezogen werden sollte. Der Agent wird anhand der Eingaben der Nutzer:innen und der verfügbaren Anweisungen für die Wissensdatenbank die passende Wissensdatenbank identifizieren.
In meinem SteuerBot-Beispiel habe ich die Wissensdatenbank „SteuerBot-Wissensdatenbank“ zusammen mit folgenden Anweisungen hinzugefügt (sinngemäß übersetzt): „Verwende diese Wissensdatenbank, um Fragen zur Steuererklärung zu beantworten.“
Nachdem Sie die Agentenkonfiguration abgeschlossen haben, können Sie testen, wie Ihr Agent die hinzugefügte Wissensdatenbank nutzt. Beachten Sie, dass der Agent eine Quellenangabe für Informationen aus Wissensdatenbanken bereitstellt.
Grundlagen der Generativen KI erlernen
Generative KI mit großen Sprachmodellen (LLMs) [EN, Extern] ist ein dreiwöchiger On-Demand-Kurs für Data Scientists und Ingenieur:innen, die lernen möchten, wie man generative KI-Anwendungen mit LLMs, einschließlich RAG, erstellt. Es ist die perfekte Grundlage, um mit Amazon Bedrock zu beginnen. Melden Sie sich noch heute für den Kurs in generativer KI mit LLMs an [EN, Extern].
Mehr über die Vorschau von Amazon Bedrock erfahren
Amazon Bedrock [EN] ist derzeit als Vorschau verfügbar. Wenden Sie sich an Ihre üblichen AWS-Supportkontakte, wenn Sie im Rahmen der Vorschau Zugang zu Wissensdatenbanken für Amazon Bedrock erhalten möchten. Wir ermöglichen regelmäßig neuen Kund:innen den Zugang. Besuchen Sie die Amazon Bedrock Features-Seite [EN] und melden Sie sich an, um mehr über Amazon Bedrock zu erfahren [EN].