Dieser Artikel bietet eine Referenzarchitektur für das Design von Infrastrukturen zur Ausführung von Retrieval-Augmented Generation (RAG)-Funktionen mithilfe von Google Kubernetes Engine (GKE) und Cloud SQL sowie Open-Source-Tools wie Ray und Hugging Face. Er beschreibt die Komponenten der Architektur, den Datenfluss und praktische Anwendungsfälle in verschiedenen Domänen.
Hauptpunkte
einzigartige Erkenntnisse
praktische Anwendungen
Schlüsselthemen
wichtige Einsichten
Lernergebnisse
• Hauptpunkte
1
Umfassende Architekturübersicht für RAG-fähige Anwendungen
2
Praktische Anwendungsfälle, die reale Anwendungen demonstrieren
3
Integration mehrerer Google Cloud- und Open-Source-Tools
• einzigartige Erkenntnisse
1
Detaillierte Erklärung des Datenflusses im Embedding-Untersystem
2
Innovative Nutzung semantischer Suche zur Verbesserung von Benutzerinteraktionen
• praktische Anwendungen
Der Artikel dient als praktischer Leitfaden für Entwickler, die RAG-Funktionen in Generative AI-Anwendungen mit GKE und Cloud SQL implementieren möchten.
• Schlüsselthemen
1
RAG-Architekturdesign
2
Integration von GKE und Cloud SQL
3
Anwendungsfälle für Generative AI-Anwendungen
• wichtige Einsichten
1
Detaillierte Untersuchung der RAG-Architekturkomponenten
2
Praktische Beispiele aus verschiedenen Branchen
3
Anleitung zur Optimierung von Leistung und Kosten in Cloud-Umgebungen
• Lernergebnisse
1
Verständnis der Architektur für RAG-fähige Generative AI-Anwendungen
2
Erlernen der Integration von GKE und Cloud SQL mit Open-Source-Tools
3
Erkundung praktischer Anwendungsfälle und Best Practices für die Implementierung
Dieser Artikel untersucht eine Referenzarchitektur für die Bereitstellung von Retrieval Augmented Generation (RAG)-Anwendungen auf Google Cloud, unter Nutzung von Google Kubernetes Engine (GKE), Cloud SQL und gängigen Open-Source-Tools. RAG verbessert die Qualität von Generative AI-Ausgaben, indem es sie auf abgerufene Kenntnisse stützt, was es ideal für Anwendungen macht, die genaue und kontextbezogene Antworten erfordern. Diese Anleitung richtet sich an Entwickler, die mit GKE und Cloud SQL vertraut sind und ein konzeptionelles Verständnis von KI, maschinellem Lernen (ML) und großen Sprachmodellen (LLMs) haben. Wir werden uns mit den Komponenten der Architektur, dem Datenfluss und wichtigen Überlegungen für den Aufbau eines robusten und effizienten RAG-Systems befassen.
“ Architekturübersicht: Embedding- und Service-Untersysteme
Die Architektur besteht aus zwei Hauptuntersystemen: dem Embedding-Untersystem und dem Service-Untersystem. Das Embedding-Untersystem ist für die Aufnahme von Daten aus verschiedenen Quellen, deren Umwandlung in Vektor-Embeddings und die Speicherung dieser Embeddings in einer Vektordatenbank zuständig. Das Service-Untersystem bearbeitet Benutzeranfragen, ruft relevante Informationen mithilfe semantischer Suche aus der Vektordatenbank ab und generiert Antworten mithilfe eines LLM. Diese Trennung der Zuständigkeiten ermöglicht eine effiziente Datenverarbeitung und skalierbare Servicebereitstellung.
“ Detaillierter Datenfluss im Embedding-Untersystem
Daten aus internen und externen Quellen werden in Cloud Storage hochgeladen. Dieser Upload löst ein Ereignis aus, das den Embedding-Service benachrichtigt. Der Embedding-Service ruft dann die Daten ab, verarbeitet sie mit Ray Data (was Chunking und Formatierung beinhalten kann) und generiert Vektor-Embeddings mithilfe von Open-Source-Modellen wie intfloat/multilingual-e5-small. Diese Embeddings werden dann in eine Cloud SQL for PostgreSQL-Vektordatenbank geschrieben, die für die Speicherung und Abfrage von hochdimensionalen Vektoren optimiert ist.
“ Anfrage-Antwort-Fluss im Service-Untersystem
Ein Benutzer sendet eine natürlichsprachliche Anfrage über eine webbasierte Chat-Oberfläche. Der Front-End-Server, der auf GKE läuft, verwendet LangChain, um die Anfrage in ein Embedding umzuwandeln. Dieses Embedding wird verwendet, um eine semantische Suche in der Vektordatenbank durchzuführen und relevante Daten abzurufen. Die ursprüngliche Anfrage wird dann mit den abgerufenen Daten kombiniert, um einen kontextualisierten Prompt zu erstellen, der an den Inference-Server gesendet wird. Der Inference-Server, der von Hugging Face TGI angetrieben wird, verwendet ein Open-Source-LLM (z. B. Mistral-7B-Instruct oder Gemma), um eine Antwort zu generieren. Die Antwort wird mithilfe von Responsible AI (RAI)-Diensten auf Sicherheit gefiltert, bevor sie an den Benutzer zurückgesendet wird.
“ Verwendete wichtige Google Cloud- und Open-Source-Produkte
Diese Architektur nutzt mehrere wichtige Google Cloud- und Open-Source-Produkte. Google Kubernetes Engine (GKE) bietet die Container-Orchestrierungsplattform. Cloud Storage bietet skalierbaren Objektspeicher. Cloud SQL for PostgreSQL, erweitert mit der pgvector-Erweiterung, dient als Vektordatenbank. Zu den Open-Source-Tools gehören Hugging Face Text Generation Inference (TGI) für LLM-Serving, Ray für verteilte Berechnungen und LangChain für die Erstellung von LLM-gestützten Anwendungen.
“ Anwendungsfälle: Personalisierung, klinische Assistenz und juristische Recherche
RAG ist für verschiedene Szenarien anwendbar. Für personalisierte Produktempfehlungen kann ein Chatbot historische Benutzerdaten nutzen, um relevantere Vorschläge zu machen. In der klinischen Assistenz können Ärzte RAG nutzen, um auf Patientenhistorien und externe Wissensdatenbanken zuzugreifen, um Diagnosen zu verbessern. In der juristischen Recherche können Anwälte schnell Vorschriften und Fallrecht abfragen, ergänzt durch Daten aus internen Verträgen und Fallakten.
“ Alternative Designoptionen: Vertex AI und AlloyDB
Für eine vollständig verwaltete Vektorsuchlösung sollten Sie Vertex AI und Vector Search in Betracht ziehen. Alternativ können Sie die Vektorspeicherfunktionen anderer Google Cloud-Datenbanken wie AlloyDB for PostgreSQL nutzen. Diese Alternativen bieten unterschiedliche Kompromisse in Bezug auf Verwaltungsaufwand und Leistung.
“ Sicherheits-, Datenschutz- und Compliance-Überlegungen
Sicherheit hat oberste Priorität. Nutzen Sie die integrierten Sicherheitsfunktionen von GKE Autopilot. Implementieren Sie Identity-Aware Proxy (IAP) für die Zugriffskontrolle. Verschlüsseln Sie Daten im Ruhezustand und während der Übertragung mit Cloud KMS. Erzwingen Sie für Cloud SQL sichere Verbindungen über SSL/TLS oder den Cloud SQL Auth Proxy. Verwenden Sie Sensitive Data Protection, um sensible Daten in Cloud Storage zu identifizieren und zu anonymisieren. Nutzen Sie VPC Service Controls, um Datenexfiltration zu verhindern. Stellen Sie die Einhaltung von Datenresidenzanforderungen sicher, indem Sie die entsprechende Region für die Datenspeicherung angeben.
“ Design für Zuverlässigkeit und hohe Verfügbarkeit
Stellen Sie eine hohe Verfügbarkeit sicher, indem Sie regionale GKE-Cluster verwenden und Cloud SQL-Instanzen mit hoher Verfügbarkeit konfigurieren. Nutzen Sie regionale oder multiregionale Speicheroptionen von Cloud Storage für Datenredundanz. Erwägen Sie die Nutzung reservierter Kapazitäten für GPU-Ressourcen, um die Verfügbarkeit während Autoskalierungsereignissen zu gewährleisten.
“ Kostenoptimierungsstrategien
Optimieren Sie die Kosten, indem Sie die Effizienz von GKE Autopilot nutzen. Berücksichtigen Sie Committed Use Discounts für vorhersehbare Workloads. Verwenden Sie Spot-VMs für GKE-Knoten, um die Compute-Kosten zu senken. Verwenden Sie für Cloud SQL eigenständige Instanzen, wenn keine hohe Verfügbarkeit erforderlich ist. Nutzen Sie die Kosteneinsichten von Cloud SQL, um überdimensionierte Instanzen zu identifizieren. Wählen Sie die entsprechende Cloud Storage-Klasse basierend auf der Zugriffshäufigkeit und den Aufbewahrungsanforderungen der Daten.
“ Leistungsoptimierung und -abstimmung
Wählen Sie die geeignete Compute-Kategorie für GKE-Pods basierend auf den Leistungsanforderungen. Verwenden Sie GPU-Maschinentypen für Inference-Server und Embedding-Dienste. Optimieren Sie die Cloud SQL-Leistung, indem Sie ausreichend CPU und Speicher zuweisen. Verwenden Sie IVFFlat- oder HNSW-Indizes für eine schnellere ungefähre Nächste-Nachbar-Suche (ANN). Nutzen Sie das Query Insights-Tool von Cloud SQL, um Leistungsengpässe zu identifizieren und zu beheben. Für große Datei-Uploads nach Cloud Storage sollten Sie parallele Composite-Uploads in Betracht ziehen.
“ Bereitstellung und nächste Schritte
Ein Beispiel-Code ist auf GitHub verfügbar, um diese Architektur bereitzustellen. Dieser Code ist für Experimente und nicht für den Produktionseinsatz gedacht. Er stellt Cloud SQL bereit, deployt Ray, JupyterHub und Hugging Face TGI auf GKE und deployt eine Beispiel-Chatbot-Anwendung. Denken Sie daran, alle ungenutzten Ressourcen nach dem Experimentieren zu entfernen. Erkunden Sie weiter, indem Sie GKE-Best Practices überprüfen, die Generative AI-Grounding-Optionen von Google Cloud untersuchen und Architekturen mit Vertex AI und Vector Search oder AlloyDB studieren. Konsultieren Sie das Well-Architected Framework für KI und maschinelles Lernen für Architekturprinzipien und Empfehlungen.
Wir verwenden Cookies, die für die Funktionsweise unserer Website unerlässlich sind. Um unsere Website zu verbessern, möchten wir zusätzliche Cookies verwenden, die uns helfen zu verstehen, wie Besucher sie nutzen, den Verkehr von sozialen Medienplattformen zu unserer Website zu messen und Ihr Erlebnis zu personalisieren. Einige der von uns verwendeten Cookies werden von Drittanbietern bereitgestellt. Klicken Sie auf 'Akzeptieren', um alle Cookies zu akzeptieren. Um alle optionalen Cookies abzulehnen, klicken Sie auf 'Ablehnen'.
Kommentar(0)