Qualitätssicherung mit LLM und RAG (Retrieval Augmented Generation)
Bei diesem Projekt handelt es sich um eine Frage-Antwort-Anwendung mit Large Language Models (LLMs) und Amazon Aurora Postgresql unter Verwendung von pgvector. Eine Anwendung, die den RAG-Ansatz (Retrieval Augmented Generation) verwendet, ruft die für die Benutzeranfrage am relevantesten Informationen aus der Wissensdatenbank oder dem Inhalt des Unternehmens ab, bündelt sie als Kontext zusammen mit der Benutzeranfrage als Eingabeaufforderung und sendet sie dann an das LLM, um eine zu erhalten GenAI-Antwort.
LLMs haben Einschränkungen hinsichtlich der maximalen Wortanzahl für die Eingabeaufforderung. Daher hat die Auswahl der richtigen Passagen aus Tausenden oder Millionen von Dokumenten im Unternehmen einen direkten Einfluss auf die Genauigkeit des LLM.
In diesem Projekt wird Amazon Aurora Postgresql mit pgvector für die Wissensdatenbank verwendet.
Die Gesamtarchitektur sieht folgendermaßen aus:
Gesamtworkflow
- Stellen Sie die CDK-Stacks bereit (weitere Informationen finden Sie hier).
- Ein SageMaker Studio in einer privaten VPC.
- Ein SageMaker-Endpunkt für die Textgenerierung.
- Ein SageMaker-Endpunkt zum Generieren von Einbettungen.
- Ein Amazon Aurora Postgresql-Cluster zum Speichern von Einbettungen.
- Die Zugangsdaten des Aurora Postgresql-Clusters (Benutzername und Passwort), die im AWS Secrets Manager als Name wie
RAGPgVectorStackAuroraPostg-xxxxxxxxxxxx
gespeichert sind.
- Öffnen Sie SageMaker Studio und öffnen Sie dann ein neues Systemterminal .
- Führen Sie die folgenden Befehle auf dem Terminal aus, um das Code-Repository für dieses Projekt zu klonen:
git clone --depth=1 https://github.com/ksmin23/rag-with-postgresql-pgvector-and-sagemaker.git
- Öffnen Sie das Notebook
data_ingestion_to_pgvector.ipynb
und führen Sie es aus. (Weitere Informationen finden Sie hier) - Führen Sie die Streamlit-Anwendung aus. (Weitere Informationen finden Sie hier)
Referenzen
- Nutzen Sie pgvector und Amazon Aurora PostgreSQL für die Verarbeitung natürlicher Sprache, Chatbots und Stimmungsanalysen (13.07.2023)
- Beschleunigen Sie die HNSW-Indizierung und -Suche mit pgvector auf der Amazon Aurora PostgreSQL-kompatiblen Edition und Amazon RDS für PostgreSQL (06.11.2023)
- Optimieren Sie generative KI-Anwendungen mit pgvector-Indexierung: Ein tiefer Einblick in IVFFlat- und HNSW-Techniken (15.03.2024)
- Verbessern Sie die Leistung generativer KI-Workloads auf Amazon Aurora mit optimierten Lesevorgängen und pgvector (09.02.2024)
- Aufbau einer KI-gestützten Suche in PostgreSQL mit Amazon SageMaker und pgvector (03.05.2023)
- Erstellen Sie Streamlit-Apps in Amazon SageMaker Studio (11.04.2023)
- Erstellen Sie schnell hochpräzise generative KI-Anwendungen auf Unternehmensdaten mit Amazon Kendra, LangChain und großen Sprachmodellen (03.05.2023)
- (Github) Amazon Kendra Retriver-Beispiele
- Beantwortung von Fragen mithilfe von Retrieval Augmented Generation mit Basismodellen in Amazon SageMaker JumpStart (02.05.2023)
- Verwenden Sie proprietäre Grundmodelle von Amazon SageMaker JumpStart in Amazon SageMaker Studio (27.06.2023)
- LangChain – Ein Framework für die Entwicklung von Anwendungen, die auf Sprachmodellen basieren.
- Streamlit – Eine schnellere Möglichkeit, Daten-Apps zu erstellen und zu teilen
- rag-with-amazon-kendra-and-sagemaker – Frage-Antwort-Anwendung mit Large Language Models (LLMs) und Amazon Kendra
- rag-with-amazon-opensearch-and-sagemaker – Frage-Antwort-Anwendung mit Large Language Models (LLMs) und Amazon OpenSearch Service
- rag-with-amazon-opensearch-serverless – Frage-Antwort-Anwendung mit Large Language Models (LLMs) und Amazon OpenSearch Serverless Service
- Pgvector-Änderungsprotokoll
Die maximalen Abmessungen für Vektoren wurden von 1024 auf 16000 erhöht
Die maximalen Abmessungen für den Index wurden von 1024 auf 2000 erhöht