Infrastruktur für eine RAG-fähige generative KI-Anwendung mit GKE

Last reviewed 2024-04-02 UTC

In diesem Dokument wird eine Referenzarchitektur vorgestellt, mit der Sie die Infrastruktur für den Betrieb einer generativen KI-Anwendung mit Retrieval Augmented Generation (RAG) unter Verwendung von Google Kubernetes Engine (GKE), Cloud SQL und Open-Source-Tools wie Ray, Hugging Face und LangChain entwickeln können. Damit Sie diese Referenzarchitektur ausprobieren können, finden Sie auf GitHub eine Beispielanwendung und eine Terraform-Konfiguration.

Dieses Dokument richtet sich an Entwickler, die mithilfe von Open-Source-Tools und ‑Modellen schnell generative KI-Anwendungen mit RAG erstellen und bereitstellen möchten. Es wird davon ausgegangen, dass Sie Erfahrung mit der Verwendung von GKE und Cloud SQL haben und ein konzeptionelles Verständnis von KI, maschinellem Lernen (ML) und Large Language Models (LLMs) haben. Dieses Dokument bietet keine Anleitung zum Entwerfen und Entwickeln einer generativen KI-Anwendung.

Architektur

Das folgende Diagramm zeigt eine allgemeine Ansicht einer Architektur für eine RAG-fähige generative KI-Anwendung in Google Cloud:

Allgemeine Architektur für eine RAG-fähige generative KI-Anwendung in Google Cloud

Die Architektur umfasst ein Bereitstellungs- und ein Einbettungs-Subsystem.

  • Das Bereitstellungs-Subsystem verarbeitet den Anfrage-Antwort-Fluss zwischen der Anwendung und ihren Nutzern. Das Subsystem umfasst einen Frontend-Server, einen Inferenzserver und einen RAI-Dienst (verantwortungsbewusste Anwendung von KI). Das Bereitstellungssubsystem interagiert über eine Vektordatenbank mit dem Einbettungssubsystem.
  • Das Embedding-Subsystem ermöglicht die RAG-Funktion in der Architektur. Dieses Subsystem führt Folgendes aus:
    • Daten aus Datenquellen in Google Cloud, lokalen Umgebungen und anderen Cloud-Plattformen aufnehmen
    • Wandelt die aufgenommenen Daten in Vektor-Embeddings um.
    • Speichert die Einbettungen in einer Vektordatenbank.

Im folgenden Diagramm sehen Sie eine detaillierte Ansicht der Architektur:

Eine detaillierte Architektur für eine RAG-fähige generative KI-Anwendung in Google Cloud.

Wie im vorherigen Diagramm dargestellt, werden der Frontend-Server, der Inferenzserver und der Einbettungsservice in einem regionalen GKE-Cluster im Autopilot-Modus bereitgestellt. Daten für RAG werden über einen Cloud Storage-Bucket aufgenommen. In der Architektur wird eine Cloud SQL for PostgreSQL-Instanz mit der Erweiterung pgvector als Vektordatenbank verwendet, um Einbettungen zu speichern und semantische Suchanfragen durchzuführen. Vektordatenbanken sind für das effiziente Speichern und Abrufen hochdimensionaler Vektoren konzipiert.

In den folgenden Abschnitten werden die Komponenten und der Datenfluss in jedem Subsystem der Architektur beschrieben.

Einbettungs-Subsystem

Im Folgenden wird der Datenfluss im Einbettungs-Subsystem beschrieben:

  1. Daten aus externen und internen Quellen werden manuell oder programmatisch in den Cloud Storage-Bucket hochgeladen. Die hochgeladenen Daten können sich in Dateien, Datenbanken oder gestreamten Daten befinden.
  2. (Nicht im Architekturdiagramm dargestellt.) Die Datenuploadaktivität löst ein Ereignis aus, das in einem Nachrichtendienst wie Pub/Sub veröffentlicht wird. Der Messaging-Dienst sendet eine Benachrichtigung an den Einbettungsdienst.
  3. Wenn der Embedding-Dienst eine Benachrichtigung über ein Datenuploadereignis erhält, geschieht Folgendes:
    1. Ruft Daten über den CSI-Treiber für Cloud Storage FUSE aus dem Cloud Storage-Bucket ab.
    2. Liest die hochgeladenen Daten und verarbeitet sie mit Ray Data. Die Vorverarbeitung kann das Aufteilen der Daten in Blöcke und die Umwandlung in ein geeignetes Format für die Generierung von Embeds umfassen.
    3. Führt einen Ray-Job aus, um vektorisierte Einbettungen der vorverarbeiteten Daten mithilfe eines Open-Source-Modells wie intfloat/multilingual-e5-small zu erstellen, das auf demselben Cluster bereitgestellt wird.
    4. Schreibt die vektorisierten Einbettungen in die Cloud SQL for PostgreSQL-Vektordatenbank.

Wie im folgenden Abschnitt beschrieben, verwendet das Bereitstellungssubsystem Nutzeranfragen mithilfe der Einbettungen in der Vektordatenbank, um relevante domainspezifische Daten abzurufen.

Subsystem für die Bereitstellung

Im Folgenden wird der Anfrage-Antwort-Ablauf im Bereitstellungs-Subsystem beschrieben:

  1. Ein Nutzer sendet über eine webbasierte Chatoberfläche eine Anfrage in natürlicher Sprache an einen Frontend-Server. Der Frontend-Server wird in GKE ausgeführt.
  2. Der Frontend-Server führt einen LangChain-Prozess aus, der Folgendes tut:
    1. Konvertiert die Anfrage in natürlicher Sprache in Einbettungen, indem dasselbe Modell und dieselben Parameter wie vom Einbettungsservice verwendet werden.
    2. Ruft relevante Daten zur Wissensbasis ab, indem eine semantische Suche nach den Einbettungen in der Vektordatenbank durchgeführt wird. Mit der semantischen Suche lassen sich Einbettungen anhand der Absicht eines Prompts und nicht anhand ihres Textinhalts finden.
    3. Erstellt einen kontextbezogenen Prompt, indem die ursprüngliche Anfrage mit den abgerufenen Daten kombiniert wird.
    4. Die kontextbezogene Prompt wird an den Inferenzserver gesendet, der auf GKE ausgeführt wird.
  3. Der Inferenzserver verwendet das Serving-Framework Hugging Face TGI, um ein Open-Source-LLM wie Mistral-7B-Instruct oder ein offenes Gemma-Modell bereitzustellen.
  4. Das LLM generiert eine Antwort auf die Eingabeaufforderung und der Inferenzserver sendet die Antwort an den Frontend-Server.

    Sie können Logs der Anfrage-Antwort-Aktivität in Cloud Logging speichern und aufrufen. Außerdem können Sie mit Cloud Monitoring ein logbasiertes Monitoring einrichten. Sie können die generierten Antworten auch für Offlineanalysen in BigQuery laden.

  5. Der Frontend-Server ruft einen RAI-Dienst auf, um die erforderlichen Sicherheitsfilter auf die Antwort anzuwenden. Sie können Tools wie Sensitive Data Protection und die Cloud Natural Language API verwenden, um sensible Inhalte in den Antworten zu erkennen, zu filtern, zu klassifizieren und zu de-identifizieren.

  6. Der Frontend-Server sendet die gefilterte Antwort an den Nutzer.

Verwendete Produkte

Im Folgenden finden Sie eine Zusammenfassung der Google Cloud- und Open-Source-Produkte, die in der vorherigen Architektur verwendet werden:

Google Cloud-Produkte

  • Google Kubernetes Engine (GKE): Ein Kubernetes-Dienst, mit dem Sie Containeranwendungen in großem Maßstab mithilfe der Infrastruktur von Google bereitstellen und betreiben können.
  • Cloud Storage: Ein kostengünstiger, unbegrenzter Objektspeicher für verschiedene Datentypen. Auf Daten kann von innerhalb und außerhalb von Google Cloud zugegriffen werden. Sie werden zu Redundanzzwecken über Standorte hinweg repliziert.
  • Cloud SQL: Ein vollständig verwalteter relationaler Datenbankdienst, mit dem Sie MySQL-, PostgreSQL- und SQL Server-Datenbanken in Google Cloud bereitstellen, betreiben und verwalten können.

Open-Source-Produkte

  • Hugging Face Text Generation Inference (TGI): Ein Toolkit zum Bereitstellen von LLMs.
  • Ray: Ein einheitliches Open-Source-Compute-Framework, mit dem sich KI- und Python-Arbeitslasten skalieren lassen.
  • LangChain: Ein Framework für die Entwicklung und Bereitstellung von Anwendungen, die auf LLMs basieren.

Anwendungsfälle

RAG ist eine effektive Technik, um die Qualität der von einem LLM generierten Ausgabe zu verbessern. In diesem Abschnitt finden Sie Beispiele für Anwendungsfälle, in denen Sie RAG-fähige generative KI-Anwendungen verwenden können.

Personalisierte Produktempfehlungen

Eine Online-Shopping-Website verwendet möglicherweise einen LLM-gestützten Chatbot, um Kunden bei der Suche nach Produkten oder bei der Hilfe beim Einkaufen zu unterstützen. Die Fragen eines Nutzers können mithilfe von Verlaufsdaten zum Kaufverhalten des Nutzers und zu Website-Interaktionsmustern erweitert werden. Die Daten können Nutzerrezensionen und -feedback enthalten, die in einem unstrukturierten Datenspeicher oder suchbezogenen Messwerten, die in einem Webanalyse-Data-Warehouse gespeichert werden. Die erweiterte Frage kann dann vom LLM verarbeitet werden, um personalisierte Antworten zu generieren, die für den Nutzer ansprechender und ansprechender sind.

Klinische Unterstützungssysteme

Ärzte in Krankenhäusern müssen den Gesundheitszustand eines Patienten schnell analysieren und diagnostizieren, um Entscheidungen über eine angemessene Versorgung und Medikamente treffen zu können. Eine generative KI-Anwendung, die ein medizinisches LLM wie Med-PaLM verwendet, kann verwendet werden, um Ärzte bei ihrem klinischen Diagnoseprozess zu unterstützen. Die von der Anwendung generierten Antworten können auf historischen Patientenakten basieren, indem die Aufforderungen der Ärzte mit Daten aus der EHR-Datenbank (Electronic Health Record) des Krankenhauses oder aus einer externen Wissensdatenbank wie PubMed in Beziehung gesetzt werden:

Mit der generativen KI-basierten Rechtsforschung können Anwälte große Mengen von Gesetzen und Fallgesetzen schnell abfragen, um relevante Prädikate zu ermitteln oder komplexe rechtliche Konzepte zusammenzufassen. Das Ergebnis einer solchen Forschungsarbeit kann durch die Erweiterung der Aufforderungen eines Anwalts mit Daten aus dem proprietären Korpus von Verträgen, früheren rechtlichen Mitteilungen und internen Fallaufzeichnungen der Anwaltskanzlei ergänzt werden. Durch diesen Designansatz wird sichergestellt, dass die generierten Antworten für das Fachgebiet relevant sind, auf das der Anwalt spezialisiert ist.

Designaspekte

Dieser Abschnitt enthält eine Anleitung zum Entwickeln und Ausführen einer von GKE gehosteten RAG-fähigen generativen KI-Architektur, die Ihre spezifischen Anforderungen an Sicherheit und Compliance, Zuverlässigkeit, Kosten und Leistung erfüllt. Die Anleitung in diesem Abschnitt ist nicht vollständig. Abhängig von den spezifischen Anforderungen Ihrer Anwendung und der von Ihnen verwendeten Google Cloud-Produkte und -Features müssen Sie möglicherweise zusätzliche Designfaktoren und Kompromisse berücksichtigen.

Designrichtlinien zu den Open-Source-Tools in dieser Referenzarchitektur, z. B. Hugging Face TGI, finden Sie in der Dokumentation zu diesen Tools.

Sicherheit, Datenschutz und Compliance

In diesem Abschnitt werden Faktoren beschrieben, die Sie beim Entwerfen und Erstellen einer RAG-fähigen generativen KI-Anwendung in Google Cloud berücksichtigen sollten, die Ihre Sicherheits-, Datenschutz- und Compliance-Anforderungen erfüllt.

Produkt Designaspekte
GKE

Im Autopilot-Modus konfiguriert GKE Ihren Cluster vorab und verwaltet die Knoten gemäß den Best Practices für die Sicherheit. So können Sie sich auf die arbeitslastspezifische Sicherheit konzentrieren. Hier finden Sie weitere Informationen:

Mit Identity-Aware Proxy (IAP) können Sie eine erweiterte Zugriffssteuerung für Ihre in GKE ausgeführten Anwendungen sicherstellen. IAP wird in die GKE-Ingress-Ressource eingebunden und sorgt dafür, dass nur authentifizierte Nutzer mit der richtigen IAM-Rolle (Identity and Access Management) auf die Anwendungen zugreifen können. Weitere Informationen finden Sie unter IAP für GKE aktivieren.

Standardmäßig werden Ihre Daten in GKE mit Google-eigenen und von Google verwalteten Schlüsseln ruhend und in Übertragung verschlüsselt. Als zusätzliche Sicherheitsebene für sensible Daten können Sie Daten auf Anwendungsebene mit einem Schlüssel verschlüsseln, der Ihnen gehört und den Sie mit Cloud KMS verwalten. Weitere Informationen finden Sie unter Secrets auf Anwendungsebene verschlüsseln.

Wenn Sie einen GKE-Standardcluster verwenden, können Sie die folgenden zusätzlichen Datenverschlüsselungsfunktionen nutzen:

Cloud SQL

Die Cloud SQL-Instanz in der Architektur muss nicht über das öffentliche Internet zugänglich sein. Wenn ein externer Zugriff auf die Cloud SQL-Instanz erforderlich ist, können Sie externe Verbindungen mit SSL/TLS oder dem Cloud SQL Auth-Proxy-Connector verschlüsseln. Der Auth-Proxy-Connector bietet eine IAM-basierte Verbindungsautorisierung. Der Connector verwendet eine TLS 1.3-Verbindung mit einer 256-Bit-AES-Chiffre, um Client- und Serveridentitäten zu überprüfen und den Datentraffic zu verschlüsseln. Verwenden Sie für Verbindungen, die mit Java, Python, Go oder Node.js erstellt wurden, den entsprechenden Sprach-Connector anstelle des Auth-Proxy-Connectors.

Standardmäßig verwendet Cloud SQL von Google verwaltete Datenverschlüsselungsschlüssel (Data Encryption Keys, DEKs) und Schlüsselverschlüsselungsschlüssel (Key Encryption Keys, KEKs), um inaktive Daten zu verschlüsseln. Wenn Sie KEKs verwenden müssen, die Sie selbst steuern und verwalten, können Sie dazu vom Kunden verwaltete Verschlüsselungsschlüssel (CMEKs) verwenden.

Um unbefugten Zugriff auf die Cloud SQL Admin API zu verhindern, können Sie mit VPC Service Controls einen Dienstperimeter erstellen.

Informationen zum Konfigurieren von Cloud SQL zur Erfüllung der Anforderungen an den Datenstandort finden Sie unter Datenspeicherort – Übersicht.

Cloud Storage

Standardmäßig werden in Cloud Storage gespeicherte Daten mit Google-eigenen und von Google verwalteten Schlüsseln verschlüsselt. Bei Bedarf können Sie CMEKs oder Ihre eigenen Schlüssel verwenden, die Sie mithilfe einer externen Verwaltungsmethode wie vom Kunden bereitgestellte Verschlüsselungsschlüssel (Customer-Supplied Encryption Keys, CSEKs) verwalten. Weitere Informationen finden Sie unter Datenverschlüsselungsoptionen.

Cloud Storage bietet Ihnen zwei Systeme, um die Nutzerberechtigung zum Zugriff auf Ihre Buckets und Objekte zu steuern: IAM und Access Control Lists (ACLs). In den meisten Fällen empfehlen wir die Verwendung von IAM, mit dem Sie Berechtigungen auf Bucket- und Projektebene erteilen können. Weitere Informationen finden Sie unter Zugriffssteuerung.

Die Daten, die Sie über Cloud Storage in das Datenaufnahmesubsystem laden, können sensible Daten enthalten. Zum Schutz solcher Daten können Sie die Daten mithilfe von Sensitive Data Protection ermitteln, klassifizieren und de-identifizieren. Weitere Informationen finden Sie unter Sensitive Data Protection mit Cloud Storage verwenden.

Sie können mit VPC Service Controls einen Dienstperimeter erstellen, um das Risiko einer Daten-Exfiltration aus Cloud Storage zu verringern.

Cloud Storage unterstützt Sie dabei, die Anforderungen an den Datenstandort zu erfüllen. Die Daten werden in den von Ihnen angegebenen Regionen gespeichert oder repliziert.

Alle Produkte in dieser Architektur

Audit-Logs zur Administratoraktivität sind standardmäßig für alle Google Cloud-Dienste aktiviert, die in dieser Referenzarchitektur verwendet werden. Sie können über Cloud Logging auf die Logs zugreifen und mithilfe der Logs API-Aufrufe oder andere Aktionen überwachen, die die Konfiguration oder Metadaten von Google Cloud-Ressourcen ändern.

Audit-Logs für den Datenzugriff sind standardmäßig auch für alle Google Cloud-Dienste in dieser Architektur aktiviert. Mit diesen Logs können Sie Folgendes überwachen:

  • API-Aufrufe, die die Konfiguration oder Metadaten von Ressourcen lesen.
  • Nutzeranfragen zum Erstellen, Ändern oder Lesen der von Nutzern bereitgestellten Ressourcendaten

Allgemeine Anleitungen zu Sicherheitsgrundsätzen für KI-Anwendungen finden Sie unter Einführung in das Secure AI Framework von Google.

Zuverlässigkeit

In diesem Abschnitt werden Designfaktoren beschrieben, die Sie beim Erstellen und Betrieb einer zuverlässigen Infrastruktur für eine RAG-fähige generative KI-Anwendung in Google Cloud berücksichtigen sollten.

Produkt Designaspekte
GKE

Mit dem in dieser Architektur verwendeten Autopilot-Betriebsmodus bietet GKE die folgenden integrierten Zuverlässigkeitsfunktionen:

  • Ihre Arbeitslast verwendet einen regionalen GKE-Cluster. Die Steuerungsebene und die Worker-Knoten sind auf drei verschiedene Zonen innerhalb einer Region verteilt. Ihre Arbeitslasten sind robust gegen Zonenausfälle. Regionale GKE-Cluster haben eine höhere SLA als zonale Cluster.
  • Sie müssen keine Knoten erstellen oder Knotenpools verwalten. GKE erstellt die Knotenpools automatisch und skaliert sie automatisch entsprechend den Anforderungen Ihrer Arbeitslasten.

Damit für das Autoscaling des GKE-Cluster immer ausreichend GPU-Kapazität verfügbar ist, können Sie reservations erstellen und verwenden. Eine Reservierung bietet zugesicherte Kapazität in einer bestimmten Zone für eine bestimmte Ressource. Eine Reservierung kann für ein Projekt spezifisch sein oder für mehrere Projekte freigegeben sein. Für reservierte Ressourcen fallen auch dann Gebühren an, wenn die Ressourcen nicht bereitgestellt oder verwendet werden. Weitere Informationen finden Sie unter Reservierte zonale Ressourcen nutzen.

Cloud SQL

Damit die Vektordatenbank robust gegen Datenbankfehler und Zonenausfälle ist, verwenden Sie eine für Hochverfügbarkeit konfigurierte Cloud SQL-Instanz. Bei einem Ausfall der primären Datenbank oder einem Zonenausfall führt Cloud SQL automatisch ein Failover auf die Standby-Datenbank in einer anderen Zone aus. Sie müssen die IP-Adresse für den Datenbankendpunkt nicht ändern.

Beachten Sie die empfohlenen Betriebsrichtlinien, damit Ihre Cloud SQL-Instanzen vom SLA abgedeckt sind. Achten Sie beispielsweise darauf, dass CPU und Arbeitsspeicher für die Arbeitslast richtig dimensioniert sind, und aktivieren Sie die automatische Speichererweiterung. Weitere Informationen finden Sie unter Betriebsrichtlinien.

Cloud Storage Sie können Cloud Storage-Buckets an einem von drei Standorttypen erstellen: regional, biregional oder multiregional. In regionalen Buckets gespeicherte Daten werden synchron über mehrere Zonen innerhalb einer Region repliziert. Für eine höhere Verfügbarkeit können Sie Buckets mit zwei oder mehr Regionen verwenden, bei denen Daten asynchron über Regionen hinweg repliziert werden.

Kostenoptimierung

Dieser Abschnitt enthält Anleitungen zum Optimieren der Kosten für die Einrichtung und den Betrieb einer RAG-fähigen generativen KI-Anwendung in Google Cloud.

Produkt Designaspekte
GKE

Im Autopilot-Modus optimiert GKE die Effizienz der Clusterinfrastruktur basierend auf den Arbeitslastanforderungen. Sie müssen die Ressourcenauslastung nicht ständig überwachen oder die Kapazität verwalten, um die Kosten zu kontrollieren.

Wenn Sie die CPU-, Arbeitsspeicher- und sitzungsspezifischen Speichernutzung Ihres GKE Autopilot-Clusters vorhersagen können, können Sie Geld sparen, weil Sie Rabatte für die zugesicherte Nutzung erhalten. Weitere Informationen finden Sie unter Rabatte für zugesicherte Nutzung in GKE.

Um die Kosten für die Ausführung Ihrer Anwendung zu senken, können Sie Spot-VMs für Ihre GKE-Knoten verwenden. Spot-VMs sind günstiger als Standard-VMs, bieten aber keine Verfügbarkeitsgarantie. Informationen zu den Vorteilen von Knoten, die Spot-VMs verwenden, wie sie in GKE funktionieren und wie Sie Arbeitslasten auf solchen Knoten planen, finden Sie unter Spot-VMs.

Weitere Informationen zur Kostenoptimierung finden Sie unter Best Practices zum Ausführen kostenoptimierter Kubernetes-Anwendungen in GKE.

Cloud SQL

Mit einer Hochverfügbarkeitskonfiguration (HA) lassen sich Ausfallzeiten für Ihre Cloud SQL-Datenbank reduzieren, wenn die Zone oder Instanz nicht mehr verfügbar ist. Die Kosten einer HA-konfigurierten Instanz sind jedoch höher als die einer eigenständigen Instanz. Wenn Sie keine Hochverfügbarkeit für die Vektordatenbank benötigen, können Sie die Kosten senken, indem Sie eine eigenständige Instanz verwenden, die nicht robust gegen Zonenausfälle ist.

Mithilfe von Cloud SQL-Kosteninformationen und ‑Empfehlungen, die auf Active Assist basieren, können Sie feststellen, ob Ihre Cloud SQL-Instanz überdimensioniert ist, und die Abrechnung optimieren. Weitere Informationen finden Sie unter Überdimensionierte Cloud SQL-Instanzen reduzieren.

Wenn Sie die CPU- und Arbeitsspeicheranforderungen Ihrer Cloud SQL-Instanz vorhersagen können, können Sie Geld sparen, weil Sie Rabatte für die zugesicherte Nutzung erhalten. Weitere Informationen finden Sie unter Rabatte für zugesicherte Nutzung von Cloud SQL.

Cloud Storage Wählen Sie für den Cloud Storage-Bucket, den Sie zum Laden von Daten in das Datenaufnahme-Subsystem verwenden, eine geeignete Speicherklasse aus. Berücksichtigen Sie bei der Auswahl der Speicherklasse die Anforderungen an die Datenaufbewahrung und die Zugriffshäufigkeit Ihrer Arbeitslasten. Sie können beispielsweise die Speicherklasse „Standard“ auswählen und die Verwaltung des Objektlebenszyklus verwenden, um die Speicherkosten zu steuern. So können Sie Objekte automatisch auf eine kostengünstigere Speicherklasse herabstufen oder basierend auf den von Ihnen festgelegten Bedingungen löschen.

Mit dem Google Cloud-Preisrechner können Sie die Kosten für Ihre Google Cloud-Ressourcen schätzen.

Leistungsoptimierung

In diesem Abschnitt werden die Faktoren beschrieben, die Sie beim Entwerfen und Erstellen einer RAG-fähigen generativen KI-Anwendung in Google Cloud berücksichtigen sollten, die Ihre Leistungsanforderungen erfüllt.

Produkt Designaspekte
GKE Wählen Sie basierend auf den Leistungsanforderungen der Arbeitslasten geeignete Compute-Klassen für Ihre Pods aus. Für die Pods, in denen der Inferenzserver und der Einbettungsservice ausgeführt werden, empfehlen wir einen GPU-Maschinentyp wie nvidia-l4.
Cloud SQL

Um die Leistung Ihrer Cloud SQL-Instanz zu optimieren, müssen die CPU und der Arbeitsspeicher, die der Instanz zugewiesen sind, für die Arbeitslast ausreichen. Weitere Informationen finden Sie unter Unterdimensionierte Cloud SQL-Instanzen optimieren.

Verwenden Sie den Index Inverted File with Flat Compression (IVFFlat) oder den Index Hierarchical Navigable Small World (HNSW), um die Reaktionszeit für die ANN-Vektorsuche (Approximate Nearest Neighbour) zu verbessern.

Mit Cloud SQL können Sie die Abfrageleistung der Datenbanken analysieren und verbessern. Mit diesem Tool können Sie die Leistung überwachen und die Quelle einer problematischen Abfrage verfolgen. Weitere Informationen finden Sie unter Abfragestatistiken verwenden, um die Abfrageleistung zu verbessern.

Um einen Überblick über den Status und die Leistung Ihrer Datenbanken zu erhalten und detaillierte Messwerte wie Spitzenverbindungen und maximale Laufwerkauslastung anzuzeigen, verwenden Sie das System Insights-Dashboard. Weitere Informationen finden Sie unter Systemstatistiken zur Verbesserung der Systemleistung verwenden.

Cloud Storage Zum Hochladen großer Dateien können Sie eine Mathode namens parallele zusammengesetzte Uploads verwenden. Bei dieser Strategie wird die große Datei in Blöcke unterteilt. Die Blöcke werden parallel in Cloud Storage hochgeladen und dann die Daten in der Cloud neu zusammengesetzt. Wenn Netzwerkbandbreite und Laufwerksgeschwindigkeit keine einschränkenden Faktoren darstellen, können parallele zusammengesetzte Uploads schneller sein als reguläre Uploadvorgänge. Diese Strategie hat jedoch einige Einschränkungen und Auswirkungen auf die Kosten. Weitere Informationen finden Sie unter Parallele zusammengesetzte Uploads.

Bereitstellung

Wenn Sie eine Topologie bereitstellen möchten, die auf dieser Referenzarchitektur basiert, können Sie den Open-Source-Beispielcode herunterladen und verwenden, der in einem Repository auf GitHub verfügbar ist. Der Beispielcode ist nicht für Produktionsanwendungen vorgesehen. Mit dem Code können Sie die Einrichtung der KI-Infrastruktur für eine generative KI-Anwendung mit RAG testen.

Dieser Beispielcode tut Folgendes:

  1. Stellt eine Cloud SQL for PostgreSQL-Instanz als Vektordatenbank bereit.
  2. Stellt Ray, JupyterHub und Hugging Face TGI in einem von Ihnen angegebenen GKE-Cluster bereit.
  3. Stellt eine webbasierte Chatbot-Beispielanwendung in Ihrem GKE-Cluster bereit, damit Sie die RAG-Funktion prüfen können.

Eine Anleitung zur Verwendung des Beispielcodes finden Sie in der README für den Code. Wenn bei der Verwendung des Beispielcodes Fehler auftreten und keine offenen GitHub-Probleme für die Fehler vorhanden sind, erstellen Sie Probleme in GitHub.

Im Beispielcode werden abrechenbare Google Cloud-Ressourcen bereitgestellt. Wenn Sie den Code nicht mehr verwenden, entfernen Sie alle Ressourcen, die Sie nicht mehr benötigen.

Nächste Schritte

Beitragende

Autor: Kumar Dhanagopal | Cross-product Solution Developer

Weitere Beitragende: