Erstellen Sie mit Amazon Bedrock einen vereinfachten Korrektur-RAG-Assistenten
Überblick
Amazon Bedrock ist ein vollständig verwalteter Service, der Ihnen leistungsstarke Foundation Models (FMs) von führenden KI-Startups und Amazon über eine einheitliche API zur Nutzung zur Verfügung stellt. Sie können aus einer breiten Palette an Fundamentmodellen auswählen, um das Modell zu finden, das für Ihren Anwendungsfall am besten geeignet ist. Amazon Bedrock bietet außerdem eine breite Palette an Funktionen zum Erstellen generativer KI-Anwendungen mit Sicherheit, Datenschutz und verantwortungsvoller KI. Mit Amazon Bedrock können Sie problemlos mit Top-Grundmodellen für Ihre Anwendungsfälle experimentieren und diese bewerten, sie mithilfe von Techniken wie Feinabstimmung und Retrieval Augmented Generation (RAG) privat an Ihre Daten anpassen und Agenten erstellen, die Aufgaben mithilfe Ihrer Unternehmenssysteme ausführen und Datenquellen.
Große Sprachmodelle (LLMs) weisen unweigerlich Halluzinationen auf, da die Genauigkeit generierter Texte nicht allein durch das in ihnen gekapselte parametrische Wissen sichergestellt werden kann. Obwohl Retrieval Augmented Generation (RAG) eine praktikable Ergänzung zu LLMs ist, hängt es stark von der Relevanz der abgerufenen Dokumente ab und wirft Bedenken hinsichtlich des Verhaltens des Modells auf, wenn der Abruf fehlschlägt.
Zur Verbesserung der Robustheit der Erzeugung wurden fortschrittliche RAG-Techniken wie Corrective RAG vorgeschlagen. In CRAG ist ein leichtgewichtiger Retrieval-Evaluator dafür konzipiert, die Gesamtqualität der abgerufenen Dokumente für eine Abfrage zu bewerten und einen Konfidenzgrad zurückzugeben, auf dessen Grundlage verschiedene Wissensabrufaktionen ausgelöst werden können. Da der Abruf aus statischen und begrenzten Korpora nur suboptimale Dokumente zurückgeben kann, werden groß angelegte Websuchen als Erweiterung zur Erweiterung der Abrufergebnisse genutzt. CRAG ist Plug-and-Play-fähig und kann nahtlos mit verschiedenen RAG-basierten Ansätzen gekoppelt werden.
Dieses Repository enthält Code, der Sie durch den Prozess der Erstellung eines vereinfachten CRAG-basierten Assistenten führt. Wir werden zwei Szenarien für die Abrufphase behandeln:
- (Szenario 1) Ein Dokument, das der angegebenen Abfrage am nächsten kommt, befindet sich in der Wissensdatenbank.
- (Szenario 2) Ein Dokument, das der angegebenen Abfrage weitgehend entspricht, befindet sich nicht in der Wissensdatenbank. Als Ergebnis wird eine Websuche durchgeführt, um passende(s) Dokument(e) abzurufen.
Um anzufangen
- Wählen Sie ein AWS-Konto zur Verwendung aus und stellen Sie sicher, dass alle Ressourcen in diesem Konto erstellt werden.
- Identifizieren Sie eine AWS-Region mit Amazon Bedrock mit den Modellen Anthropic Claude 3 und Titan Embeddings G1 – Text.
- Kopieren Sie in dieser Region die folgende Datei in einen neuen oder vorhandenen Amazon S3-Bucket Ihrer Wahl. Stellen Sie sicher, dass dieser Bucket von AWS CloudFormation gelesen werden kann.
- wikipedia_search_bedrock_agent.zip
- Erstellen Sie die Lambda-Layer-Datei mit dem Namen
py312_opensearch-py_requests_and_requests-aws4auth.zip
mithilfe des folgenden Verfahrens und laden Sie sie in denselben Amazon S3-Bucket hoch wie in Schritt 3.- Unter Windows 10 oder höher:
- Stellen Sie sicher, dass Python 3.12 und pip installiert und in der PATH-Variablen des Benutzers festgelegt sind.
- Laden Sie 7-zip herunter und installieren Sie es unter
C:/Program Files/7-Zip/
. - Öffnen Sie die Windows-Eingabeaufforderung.
- Erstellen Sie ein neues Verzeichnis und
cd
hinein. - Führen Sie lambda_layer_file_create.bat in diesem Verzeichnis aus.
- Dadurch wird die Lambda-Layer-Datei mit dem Namen
py312_opensearch-py_requests_and_requests-aws4auth.zip
erstellt.
- Unter Linux:
- Stellen Sie sicher, dass Python 3.12 und pip installiert und in der PATH-Variablen des Benutzers festgelegt sind.
- Öffnen Sie die Linux-Eingabeaufforderung.
- Erstellen Sie ein neues Verzeichnis und
cd
hinein. - Führen Sie lambda_layer_file_create.sh aus diesem Verzeichnis aus.
- Dadurch wird die Lambda-Layer-Datei mit dem Namen
py312_opensearch-py_requests_and_requests-aws4auth.zip
erstellt.
- Nehmen Sie die bereitgestellte AWS CloudFormation-Vorlage „simplified-corrective-rag-cfn.yaml“ und aktualisieren Sie den folgenden Parameter:
- DeploymentArtifactsS3BucketName – Legen Sie hier den Namen des Amazon S3-Buckets aus Schritt 3 fest.
- Erstellen Sie einen AWS CloudFormation-Stack mit der aktualisierten Vorlage.
- Öffnen Sie das Jupyter-Notizbuch mit dem Namen „simplified-corrective-rag.ipynb“ , indem Sie zur Konsole der Amazon SageMaker-Notebook-Instanzen navigieren und auf den Link „Jupyter öffnen“ für die Instanz mit dem Namen „simplified-crag-instance“ klicken.
Repository-Struktur
- Ein Assets-Ordner, der die AWS CloudFormation-Vorlage und die abhängigen Artefakte enthält.
- Der Python-Code für eine AWS Lambda-Funktion, die vom Bedrock-Agenten aufgerufen wird, um die Websuche durchzuführen. Dies wird auch als abhängiges Artefakt in diese Datei gezippt.
- Ein Notebook-Ordner, der alle Artefakte im Zusammenhang mit dem Jupyter-Notebook enthält, an dem Sie arbeiten werden.
Sicherheit
Weitere Informationen finden Sie unter BEITRAGEN.
Lizenz
Diese Bibliothek ist unter der MIT-0-Lizenz lizenziert. Siehe die LICENSE-Datei.