In diesem Repository -Beispielcode wird der Codegespräch zwischen RE und Inforce 2024 mit Sitzung -ID DAP341 unterstützt. Der Code in diesem Repository ist absichtlich einfach für die Lesbarkeit während der Sitzung zu optimieren und ist nicht für die Verwendung in einer Produktionseinstellung bestimmt.
Das Ziel des Codes in diesem Repository ist es, den funktionalen Kern eines Chatbot (Abruf Augmented Generation) zu demonstrieren, während einige der Datenschutzüberlegungen hervorgehoben werden, die für generative KI -Workloads im Allgemeinen relevant sind.
Wenn Sie einen Gebrauchsfall im Rag Chatbot -Stil mit AWS in der Produktion bereitstellen möchten, sollten Sie eine der folgenden Optionen in Betracht ziehen:
Dieses Repository enthält eine Reihe von Python -Skripten, die ausgeführt werden können, um eine Ideen zu demonstrieren. Die Skripte sind nummeriert, da sie bei nacheinander ausgeführter Ausführung eine Geschichte darüber erzählen, wie ein Lag-Chatbot funktioniert und wie Daten innerhalb einer Genai-basierten Workload geschützt werden können. Die Skripte sind jedoch alle eigenständig und idempotent und müssen nicht nacheinander ausgeführt werden.
Einige der hier bereitgestellten Python -Skripte müssen vor ihrer Ausführung geändert werden. Die Skripte werden hier genau so gespeichert, wie sie in der Re: in -Inforce -Präsentation für Konsistenz gezeigt werden. Instanzen, in denen Sie das Skript aktualisieren müssen, werden mit #UPDATE_TO_RUN_YOURSELF kommuniziert.
Die AWS -Ressourcen, die für die Ausführung der Python -Beispielskripte, z. B. ein Amazon Kendra -Index, Beispieldaten usw., ausführen müssen, können vom Benutzer dieses Repositorys bereitgestellt werden. Nachfolgend finden Sie Anweisungen für die Erstellung dieser Ressourcen.
Die wichtigsten AWS -Ressourcen, die erstellt und verwiesen werden müssen, bevor die Python -Skripte funktionieren, sind ein Amazon Kendra -Index und eine begleitende Kendra -Datenquelle, die auf Daten auf einem Amazon S3 -Bucket hinweist. Beachten Sie, dass ein Amazon Kendra-Index nicht zu vernachlässigbare Kosten hat und darauf geachtet werden sollte, diese Kosten zu verstehen, bevor Sie diese Lösung bereitstellen.
Der in diesem Repository bereitgestellte Code soll zu einer Bereitstellung des generativen AI -Anwendungsbauers für AWS ergänzend sein. Wenn Sie den generativen AI -Anwendungs Builder für AWS bereitstellen und mit der Option "RAG" ein "Text" -Anwendungsfallbereitstellung bereitstellen, kann ein Kendra -Index für Sie erstellt werden, wie im folgenden Abschnitt gezeigt:
Bereitstellen Sie den generativen AI -Anwendungs Builder für AWS -Lösung gemäß dem Bereitstellungshandbuch bereit.
Erwägen Sie, die Lösung mit der aktivierten VPC -Option zu stellen, wodurch der Verkehr über das öffentliche Internet minimiert wird, indem es die VPC -Endpunkte nutzt.
Nach dem Bereitstellen des Bereitstellungs -Dashboard können Sie einen Anwendungsfall bereitstellen.
Wählen Sie bei der Bereitstellung eines Anwendungsfalls die text aus. Wählen Sie im Abschnitt Select knowledge base in der Option RAG yes aus, wählen Sie Kendra als Wissensbasis aus und wählen Sie, wenn Sie noch keinen Kendra -Index haben, no , um zu "Haben Sie einen vorhandenen Kendra -Index?" Einen für Sie erstellt zu haben. Alle anderen Standardwerte sind in Ordnung, aber passen Sie sie an, wenn/Sie nach Bedarf an Ihren Anforderungen gerecht werden.
Sobald Ihr generativer AI -Anwendungsbauer bereitgestellt ist, haben Sie einen Amazon Kendra -Index. Sie müssen diesem Index nun eine Kendra -Datenquelle hinzufügen. Erstellen oder verwenden Sie zunächst einen vorhandenen Amazon S3-Bucket, um Daten zu speichern. Laden Sie den Inhalt des data sowie den src/kendra-acl.json in diesem Repository zu diesem S3-Bucket hoch, so dass die resultierende Struktur so aussieht:
engineering/rootrunner3k-techspecs.txt
wiki/ecorobopotato.txt
kendra-acl.json
Navigieren Sie zu Ihrem Amazon Kendra -Index in der AWS -Verwaltungskonsole und wählen Sie die Option Add Data Sources . Wählen Sie die Option Amazon S3 connector . Geben Sie der Datenquelle einen Namen. Erstellen Sie eine IAM -Rolle oder verwenden Sie eine vorhandene wie gewünscht. Geben Sie in Configure sync settings den Speicherort Ihres S3-Bucket ein, setzen Sie die kendra-acl.json Datei in der Einstellung der Access control list configuration file location auf, Additional configuration und fügen Sie engineering und marketing als zu indizierende Präfixe hinzu. Alle anderen Standardwerte reichen aus, um Ihre Kendra -Datenquelle zu erstellen und bereitzustellen. Sobald die Datenquelle erstellt wurde, müssen Sie mindestens einmal einen sync der Datenquelle einleiten und darauf warten, dass diese Synchronisierung abgeschlossen ist, bevor Sie Python -Skripte ausführen.
Bevor Sie alle Amazon -Grundgesteinsmodelle anrufen können, müssen Sie den Modellzugriff aktivieren. Dieses Repository verwendet Claude 3 Sonnet, sodass dieses Modell zumindest aktiviert sein muss.
Um die CloudWatch -Python -Datei speziell auszuführen, müssen Sie die Protokollierung von Amazon Bedrock -Modellaufruf zur Aufgabe ermöglichen, insbesondere mit einem Ziel von Amazon CloudWatch -Protokollen.
Im Rahmen dieses Prozesses erstellen Sie eine CloudWatch -Protokolle, die im begleitenden Python -Skript aktualisiert werden muss.
Um die Python -Skripte im Zusammenhang mit Grundgesteins -Leitplanken zu betreiben, müssen Sie eine Grundgesteinung erstellen. Navigieren Sie dazu mit der AWS -Management -Konsole zum Amazon -Grundgestein und wählen Sie den Abschnitt "Leitplanken" aus. Wählen Sie Create guardrail . Geben Sie ihm einen Namen und richten Sie ihn mit Standardeinstellungen oder den Optionen ein, die Sie bevorzugen. Stellen Sie jedoch sicher, dass Sie im Abschnitt Add sensitive information filters , den Address PII -Typ hinzuzufügen und Mask als Leitplankenverhalten auszuwählen. Dies stellt sicher, dass Ihre Leitplanke das Verhalten repliziert, das in den Python -Skripten in diesem Projekt demonstriert werden soll.
Die Markdown -Dateien, Bilder und Python -Codedatei im src -Verzeichnis sollen in der Reihenfolge, die in ihrem Nummerierungsschema angegeben ist, zu sehen und ausgeführt werden. Wie folgt ist eine Erklärung für jede Datei, die den Leser durch die Absicht der Präsentation hilft, die diese Code -Beispiele begleitet.
Gibt den Hauptpunkt dieser Code -Snippets an, nämlich den sehr vereinfachten Python -Code zu zeigen, der lesbar ist und zeigt, wie Lag auf grundlegender Ebene funktioniert und gleichzeitig Datenschutzüberlegungen für Genai -Workloads im weiteren Sinne hervorhebt.
Bild verwendet zur Einführung des fiktiven Produkts und der Organisation, deren Daten wir verwenden. Die Daten sind absichtlich absurd, sodass LLMs keine schädlichen Schulungsdaten mit diesem fiktiven Produkt oder einer Organisation haben. Da dieses begleitende Repository jetzt Open Source ist, ist es möglich, dass ein LLM dieses Repository möglicherweise als Trainingsdatenquelle verwendet, was möglicherweise diese Annahme brechen kann!
Zeigt einfach den Inhalt des Amazon S3 -Bucket an, den wir eingerichtet haben, der unsere Quelldaten enthält. Es wird auch den Verschlüsselungstyp für diese Daten zu S3 hervorgehoben, um die Bedeutung der Verschlüsselung von Daten in Ruhe zu betonen.
Drucken Sie einige der grundlegenden Informationen zu unserem Amazon Kendra -Index aus, um das Konzept von Kendra einzuführen und wie er semantische Suchanfragen gegen unsere Datenquellen durchführen kann.
Demonstriert einen einfachen API retrieve von API gegen unseren Kendra -Index, der den Kontext basierend auf der von uns gestellten Frage abholt.
Ruft das Amazon -Grundgestein an und stellt eine Frage, die nicht mit unseren fiktiven proprietären Daten zu tun hat. Dies soll demonstrieren, wie ein LLM in der Lage ist, viele Fragen zu öffentlich verfügbaren Dingen zu beantworten, da LLM häufig an massiven Datenmengen aus dem offenen Internet geschult wird.
Ruft Fundrock an und stellt eine Frage zu unseren proprietären Daten. Zeigt, wie ein LLM keine Fragen zu Daten beantworten kann, die proprietär und nicht Teil seines Trainingsdatensatzes waren.
Ruft Kendra zuerst auf, den relevanten Kontext aus unseren proprietären Daten abzurufen, und verwendet dann diesen Kontext, wenn Sie ein LLM im Amazon -Grundgestein aufrufen. Dieses Muster wird als Abruf -Augmented -Generation oder Lappen bezeichnet.
Fügt in der Liste der Access Control im Anruf zu Amazon Kendra hinzu. Da unsere "Marketing" -Gruppe nicht auf das Dokument für technische Spezifikationen von Kendra zugreifen darf, enthält unsere Antwort keine Details zu Inhalten, die Marketing nicht zu sehen ist. Dies zeigt, wie wir bei Verwendung eines rappenbasierten Ansatzes eine Autorisierung auf Dokumentebene erreichen können. Wenn Sie stattdessen Ihre proprietären Daten verwenden, um eine Feinabstimmung auszuführen, oder vor der Ausbildung zum Anpassen eines LLM ausführen, verlieren Sie diese Fähigkeit, auf einer Dokumentebene eine feinkörnige Genehmigung durchzuführen. Ihre Benutzer haben entweder Zugriff auf dieses angepasste Modell oder sie nicht.
Führt eine Lappenabfrage durch, die eine bestimmte Adresse enthält. Aber vielleicht wollen wir keine Adressen oder andere Arten von PII oder sensiblen/schädlichen Inhalten, die in unserem Chatbot aufgenommen werden sollen ...
Listet einfach unsere einige der Attribute einer vorbehandelten Amazon -Grundlage auf, die wir im folgenden Schritt verwenden werden. Insbesondere sehen wir, dass unsere Leitplanken Adressdatentypen reduziert.
Führt den gleichen rappenbasierten Anruf wie 09_Rag_Address.py durch, fügt jedoch als Teil des Anrufs zum Grundgestein in die Grundgesteinung hinzu. Dies reduziert wiederum die spezifischen Adresse PII -Daten aus der Antwort.
Listet 3 aktuelle CloudTrail -Instanzen zum Aufrufen von Grundgestein auf. Dies zeigt einfach, wie CloudTrail verwendet werden kann, um die Nutzung des Amazon -Grundgesteinsdienstes zu prüfen. Andere AWS -Dienste generieren auch CloudTrail -Ereignisse, und diese Daten können zur Prüfung und Schutz Ihrer AWS -Ressourcen verwendet werden.
Listet 3 aktuelle CloudWatch -Modell -Invocation -Protokolle auf. Dies zeigt, wie Ihre Daten in CloudWatch -Modellaufrufprotokolle aufgenommen werden können. Wenn Sie also Modellinformationsprotokolle aktivieren, müssen Sie sie mit der gleichen Sorgfaltsgrenze schützen, die Sie die Datenquelle selbst schützen.
Nachdem Sie die Python -Skripte ausgeführt haben, wurden Sie einige Beispiele geleitet, die Datenschutzüberlegungen für generative KI -Workloads demonstrieren. Einige der wichtigsten Einnahmen sind:
Die Grundlagen des Datenschutzes gelten weiterhin.
Generative AI führt einige neue Überlegungen ein
Weitere Informationen finden Sie unter Beitrag.
Diese Bibliothek ist im Rahmen der MIT-0-Lizenz lizenziert. Siehe die Lizenzdatei.