Cloud SQL in Vertex AI einbinden

Auf dieser Seite wird beschrieben, wie Sie Cloud SQL in Vertex AI einbinden. Mit dieser Einbindung können Sie Large Language Models (LLMs), die in Vertex AI gehostet werden, auf eine Cloud SQL for PostgreSQL-Datenbank Version 12 und höher anwenden.

Durch die Einbindung von Cloud SQL in Vertex AI können Sie die semantischen und prädiktiven ML-Modelle (maschinelles Lernen) auf Ihre Daten anwenden. Diese Einbindung erweitert die PostgreSQL-Syntax um zwei Funktionen zum Abfragen von Modellen:

  • Vorhersagen aufrufen, um ein Modell mithilfe von SQL innerhalb einer Transaktion aufzurufen.
  • Einbettungen generieren, damit ein Einbettungsmodell Text-Prompts in numerische Vektoren übersetzt. Anschließend können Sie diese Vektoreinbettungen als Eingaben auf pgvector-Funktionen anwenden. Dazu gehören Methoden zum Vergleichen und Sortieren von Textbeispielen anhand ihrer relativen semantischen Entfernung.

Dadurch können Sie Echtzeitvorhersagen treffen und wertvolle Informationen direkt in der Datenbank gewinnen, wodurch Sie Ihre Workflows optimieren und Ihre Entscheidungsfähigkeiten verbessern können.

Weitere Informationen zu Vertex AI finden Sie unter Einführung in Vertex AI.

Hinweise

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Aktivieren Sie die erforderlichen Google Cloud APIs.

    Console

    1. Rufen Sie die Seite APIs & Dienste auf.
    2. Wählen Sie Ihr Projekt aus der Projektliste aus.
    3. Wenn die API-Bibliothek nicht geöffnet ist, wählen Sie im Navigationsmenü die Option Bibliothek aus.
    4. Klicken Sie auf die APIs, die Sie aktivieren möchten. Aktivieren Sie für dieses Verfahren die Cloud SQL Admin API und die Vertex AI API.

    5. Nachdem Sie die einzelnen APIs ausgewählt haben, klicken Sie auf Aktivieren.

    gcloud

    1. Öffnen Sie Cloud Shell, um direkt über den Browser über die Befehlszeile auf Ihre Google Cloud-Ressourcen zuzugreifen.
    2. Aktivieren Sie die erforderlichen APIs mit dem Befehl gcloud services enable:
      gcloud services enable sqladmin.googleapis.com \
      enable aiplatform.googleapis.com
    3. Mit diesem Befehl werden die folgenden APIs aktiviert:
      • Cloud SQL Admin API
      • Vertex AI API

  7. Gewähren Sie dem Cloud SQL-Dienstkonto IAM-Berechtigungen (Identity and Access Management) für den Zugriff auf Vertex AI.

    gcloud

    Verwenden Sie den Befehl gcloud projects add-iam-policy-binding, um dem Cloud SQL-Dienstkonto für das Projekt, in dem sich die Cloud SQL-Instanz befindet, Vertex AI-Berechtigungen hinzuzufügen:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \
      --role="roles/aiplatform.user"

    Ersetzen Sie die folgenden Werte:
    • PROJECT_ID: ID des Projekts mit dem Vertex AI-Endpunkt. Cloud SQL verwendet diesen Endpunkt, um das in Vertex AI gehostete LLM zuzugreifen.
    • SERVICE_ACCOUNT_EMAIL: die E-Mail-Adresse des Cloud SQL-Dienstkontos.

      Verwenden Sie zum Ermitteln dieser E-Mail-Adresse den Befehl gcloud sql instances describe INSTANCE_NAME und ersetzen Sie INSTANCE_NAME durch den Namen der Cloud SQL-Instanz. Der Wert neben dem Parameter serviceAccountEmailAddress ist die E-Mail-Adresse.

Datenbankeinbindung mit Vertex AI aktivieren

Führen Sie folgende Schritte aus, um die Datenbankeinbindung in Vertex AI zu aktivieren:

  1. Erstellen oder aktualisieren Sie eine Cloud SQL-Instanz, damit die Instanz in Vertex AI eingebunden werden kann.

    gcloud

    Die Instanz erstellen

    Verwenden Sie den Befehl gcloud sql instances create, um die Cloud SQL-Instanz zu erstellen.

    gcloud sql instances create INSTANCE_NAME \
    --database-version=DATABASE_VERSION \
    --tier=MACHINE_TYPE \
    --region=REGION_NAME \
    --enable-google-ml-integration \
    --database-flags cloudsql.enable_google_ml_integration=on
    

    Ersetzen Sie die folgenden Werte:

    • INSTANCE_NAME: Name der Instanz
    • DATABASE_VERSION: Datenbankversion für die Instanz (z. B. POSTGRES_13)
    • MACHINE_TYPE: der gewünschte Maschinentyp für die Instanz
    • REGION_NAME: Name der Region für die Instanz

    Instanz aktualisieren

    Verwenden Sie zum Aktualisieren der Instanz den Befehl gcloud sql instances patch.

    gcloud sql instances patch INSTANCE_NAME \
    --enable-google-ml-integration \
    --database-flags cloudsql.enable_google_ml_integration=on
    

    Wenn diese Aktualisierung einen Wert ändert, der einen Neustart notwendig macht, werden Sie aufgefordert, mit der Änderung fortzufahren oder sie abzubrechen.

    .

    REST Version 1

    Die Instanz erstellen

    Verwenden Sie dieses Beispiel, um die Instanz zu erstellen. Eine vollständige Liste der Parameter für diesen Aufruf finden Sie auf der Seite Instanzen: insert. Informationen zu den Instanzeinstellungen, einschließlich der gültigen Werte für die Region, finden Sie unter Instanzeinstellungen.

    Ersetzen Sie diese Werte in den folgenden Anfragedaten:

    • PROJECT_ID: die ID oder Projektnummer des Google Cloud-Projekts, das die Instanz enthält
    • INSTANCE_NAME: Name der Instanz
    • REGION_NAME: Name der Region für die Instanz
    • DATABASE_VERSION: Enum-String der Datenbankversion (z. B. POSTGRES_13)
    • PASSWORD: Passwort für den root-Nutzer
    • MACHINE_TYPE: Enum-String des Maschinentyps (Stufe), z. B.: db-custom-[CPUS]-[MEMORY_MBS]
    • EDITION_TYPE: Ihre Cloud SQL-Version.

    Darüber hinaus müssen Sie in die Anfrage das Objekt enableGoogleMlIntegration aufnehmen. Legen Sie nach Bedarf die folgenden Parameter fest:

    • enableGoogleMlIntegration: Wenn dieser Parameter auf true gesetzt ist, können Cloud SQL-Instanzen eine Verbindung zu Vertex AI herstellen, um Anfragen für Echtzeitvorhersagen und Statistiken an die KI zu übergeben.
    • cloudsql.enable_google_ml_integration: Wenn dieser Parameter auf on gesetzt ist, kann Cloud SQL in Vertex AI eingebunden werden.

    HTTP-Methode und URL:

    POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances

    JSON-Text anfordern:

    {
      "name": "INSTANCE_NAME",
      "region": "REGION_NAME",
      "databaseVersion": "DATABASE_VERSION",
      "rootPassword": "PASSWORD",
      "settings": {
        "tier": "MACHINE_TYPE",
        "edition": "EDITION_TYPE",
        "enableGoogleMlIntegration": "true" | "false"
        "databaseFlags":
          {
            "name": "cloudsql.enable_google_ml_integration",
            "value": "on" | "off"
          }
      }
    }
    

    Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

    Sie sollten in etwa folgende JSON-Antwort erhalten:

    {
      "kind": "sql#operation",
      "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
      "status": "PENDING",
      "user": "user@example.com",
      "insertTime": "2019-09-25T22:19:33.735Z",
      "operationType": "CREATE",
      "name": "OPERATION_ID",
      "targetId": "INSTANCE_ID",
      "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
      "targetProject": "PROJECT_ID"
    }
    

    Instanz aktualisieren

    Verwenden Sie dieses Beispiel, um die Instanz zu aktualisieren. Eine vollständige Liste der Parameter für diesen Aufruf finden Sie auf der Seite instances.patch.

    Wenn diese Aktualisierung einen Wert ändert, der einen Neustart notwendig macht, werden Sie aufgefordert, mit der Änderung fortzufahren oder sie abzubrechen.

    Ersetzen Sie diese Werte in den folgenden Anfragedaten:

    • PROJECT_ID: die ID oder Projektnummer des Google Cloud-Projekts, das die Instanz enthält
    • INSTANCE_NAME: Name der Instanz

    HTTP-Methode und URL:

    PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME

    JSON-Text anfordern:

    {
      "settings": {
        "enableGoogleMlIntegration": true,
        "databaseFlags":
          {
            "name": "cloudsql.enable_google_ml_integration",
            "value": "on"
          }
       }
    }

    Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

    Sie sollten in etwa folgende JSON-Antwort erhalten:

    {
      "kind": "sql#operation",
      "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME",
      "status": "PENDING",
      "user": "user@example.com",
      "insertTime": "2020-01-16T02:32:12.281Z",
      "operationType": "UPDATE",
      "name": "OPERATION_ID",
      "targetId": "INSTANCE_NAME",
      "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
      "targetProject": "PROJECT_ID"
    }
    

    REST v1beta4

    Die Instanz erstellen

    Verwenden Sie dieses Beispiel, um die Instanz zu erstellen. Eine vollständige Liste der Parameter für diesen Aufruf finden Sie auf der Seite Instanzen: insert. Informationen zu den Instanzeinstellungen, einschließlich der gültigen Werte für die Region, finden Sie unter Instanzeinstellungen.

    Ersetzen Sie diese Werte in den folgenden Anfragedaten:

    • PROJECT_ID: die ID oder Projektnummer des Google Cloud-Projekts, das die Instanz enthält
    • INSTANCE_NAME: Name der Instanz
    • REGION_NAME: Name der Region für die Instanz
    • DATABASE_VERSION: Enum-String der Datenbankversion (z. B. POSTGRES_13)
    • PASSWORD: Passwort für den root-Nutzer
    • MACHINE_TYPE: Enum-String des Maschinentyps (Stufe), z. B.: db-custom-[CPUS]-[MEMORY_MBS]
    • EDITION_TYPE: Ihre Cloud SQL-Version.

    Darüber hinaus müssen Sie in die Anfrage das Objekt enableGoogleMlIntegration aufnehmen. Legen Sie nach Bedarf die folgenden Parameter fest:

    • enableGoogleMlIntegration: Wenn dieser Parameter auf true gesetzt ist, können Cloud SQL-Instanzen eine Verbindung zu Vertex AI herstellen, um Anfragen für Echtzeitvorhersagen und Statistiken an die KI zu übergeben.
    • cloudsql.enable_google_ml_integration: Wenn dieser Parameter auf on gesetzt ist, kann Cloud SQL in Vertex AI eingebunden werden.

    HTTP-Methode und URL:

    POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances

    JSON-Text anfordern:

    {
      "name": "INSTANCE_NAME",
      "region": "REGION_NAME",
      "databaseVersion": "DATABASE_VERSION",
      "rootPassword": "PASSWORD",
      "settings": {
        "tier": "MACHINE_TYPE",
        "edition": "EDITION_TYPE",
        "enableGoogleMlIntegration": "true" | "false"
        "databaseFlags":
          {
            "name": "cloudsql.enable_google_ml_integration",
            "value": "on" | "off"
          }
      }
    }
    

    Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

    Sie sollten in etwa folgende JSON-Antwort erhalten:

    {
      "kind": "sql#operation",
      "targetLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
      "status": "PENDING",
      "user": "user@example.com",
      "insertTime": "2019-09-25T22:19:33.735Z",
      "operationType": "CREATE",
      "name": "OPERATION_ID",
      "targetId": "INSTANCE_ID",
      "selfLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
      "targetProject": "PROJECT_ID"
    }
    

    Instanz aktualisieren

    Verwenden Sie dieses Beispiel, um die Instanz zu aktualisieren. Eine vollständige Liste der Parameter für diesen Aufruf finden Sie auf der Seite instances.patch.

    Wenn diese Aktualisierung einen Wert ändert, der einen Neustart notwendig macht, werden Sie aufgefordert, mit der Änderung fortzufahren oder sie abzubrechen.

    Ersetzen Sie diese Werte in den folgenden Anfragedaten:

    • PROJECT_ID: die ID oder Projektnummer des Google Cloud-Projekts, das die Instanz enthält
    • INSTANCE_NAME: Name der Instanz

    HTTP-Methode und URL:

    PATCH https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME

    JSON-Text anfordern:

    {
      "settings": {
        "enableGoogleMlIntegration": true,
        "databaseFlags":
          {
            "name": "cloudsql.enable_google_ml_integration",
            "value": "on"
          }
       }
    }

    Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

    Sie sollten in etwa folgende JSON-Antwort erhalten:

    {
      "kind": "sql#operation",
      "targetLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME",
      "status": "PENDING",
      "user": "user@example.com",
      "insertTime": "2020-01-16T02:32:12.281Z",
      "operationType": "UPDATE",
      "name": "OPERATION_ID",
      "targetId": "INSTANCE_NAME",
      "selfLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
      "targetProject": "PROJECT_ID"
    }
    
  2. Installieren Sie die Erweiterung google_ml_integration in einer Datenbank der primären Cloud SQL-Instanz. Diese Datenbank enthält Daten, für die Sie Vorhersagen erhalten möchten.
    1. Stellen Sie eine Verbindung von einem psql-Client zur primären Instanz her, wie unter Verbindung über einen psql-Client herstellen beschrieben.
    2. Stellen Sie über die Eingabeaufforderung psql eine Verbindung zur Datenbank her:
      \c DB_NAME

      Ersetzen Sie DB_NAME durch den Namen der Datenbank, in der Sie die Erweiterung installieren möchten.

    3. Erweiterung installieren:
      CREATE EXTENSION IF NOT EXISTS google_ml_integration CASCADE;

Fehlerbehebung

Dieser Abschnitt enthält Informationen zu Problemen bei der Einbindung von Cloud SQL in Vertex AI sowie Schritte zur Fehlerbehebung.

Problem Fehlerbehebung
Fehlermeldung: Google ML integration API is supported only on Postgres version 12 or above. Zum Aktivieren der Vertex AI-Einbindung in Cloud SQL benötigen Sie die Cloud SQL for PostgreSQL-Datenbank Version 12 oder höher. Informationen zum Upgrade der Datenbank auf diese Version finden Sie unter Direktes Upgrade der Datenbank-Hauptversion durchführen.
Fehlermeldung: Google ML Integration API is not supported on shared core instance. Please upsize your machine type. Wenn Sie für den Maschinentyp Ihrer Instanz einen freigegebenen Kern ausgewählt haben, können Sie die Vertex AI-Einbindung nicht in Cloud SQL aktivieren. Führen Sie ein Upgrade Ihres Maschinentyps auf einen dedizierten Kern durch. Weitere Informationen finden Sie unter Maschinentyp.
Fehlermeldung: Google ML Integration is unsupported for this maintenance version. Please follow https://cloud.google.com/sql/docs/postgres/self-service-maintenance to update the maintenance version of the instance. Zum Aktivieren der Vertex AI-Einbindung in Cloud SQL muss die Wartungsversion Ihrer Instanz R20240130 oder höher sein. Informationen zum Upgrade Ihrer Instanz auf diese Version finden Sie unter Selfservice-Wartung.
Fehlermeldung: Cannot invoke ml_predict_row if 'cloudsql.enable_google_ml_integration' is off. Das Datenbank-Flag cloudsql.enable_google_ml_integration ist deaktiviert. Cloud SQL kann nicht in Vertex AI eingebunden werden.

Verwenden Sie den Befehl gcloud sql instances patch, um dieses Flag zu aktivieren:

gcloud sql instances patch INSTANCE_NAME --database-flags cloudsql.enable_google_ml_integration=on

Ersetzen Sie INSTANCE_NAME durch den Namen der primären Cloud SQL-Instanz.
Fehlermeldung: Failed to connect to remote host: Connection refused. Die Einbindung zwischen Cloud SQL und Vertex AI ist nicht aktiviert. Verwenden Sie zum Aktivieren dieser Einbindung den gcloud sql instances patch-Befehl:

gcloud sql instances patch INSTANCE_NAME
--enable-google-ml-integration


Ersetzen Sie INSTANCE_NAME durch den Namen der primären Cloud SQL-Instanz.
Fehlermeldung: Vertex AI API has not been used in project PROJECT_ID before or it is disabled. Enable it by visiting /apis/api/aiplatform.googleapis.com/overview?project=PROJECT_ID then retry. Die Vertex AI-API ist nicht aktiviert. Weitere Informationen zum Aktivieren dieser API finden Sie unter Datenbankeinbindung mit Vertex AI aktivieren.
Fehlermeldung: Permission 'aiplatform.endpoints.predict' denied on resource. Vertex AI-Berechtigungen werden dem Cloud SQL-Dienstkonto für das Projekt, in dem sich die Cloud SQL-Instanz befindet, nicht hinzugefügt. Weitere Informationen zum Hinzufügen dieser Berechtigungen zum Dienstkonto finden Sie unter Datenbankeinbindung mit Vertex AI aktivieren.
Fehlermeldung: Publisher Model `projects/PROJECT_ID/locations/REGION_NAME/publishers/google/models/MODEL_NAME` not found. Das ML-Modell oder das LLM sind in Vertex AI nicht vorhanden.
Fehlermeldung: Resource exhausted: grpc: received message larger than max. Die Größe der Anfrage, die Cloud SQL an Vertex AI übergibt, überschreitet das gRPC-Limit von 4 MB pro Anfrage.
Fehlermeldung: Cloud SQL attempts to send a request to Vertex AI. However, the instance is in the %s region, but the Vertex AI endpoint is in the %s region. Make sure the instance and endpoint are in the same region. Cloud SQL versucht, eine Anfrage an Vertex AI zu senden. Die Instanz befindet sich jedoch in einer, der Vertex AI-Endpunkt in einer anderen Region. Um dieses Problem zu beheben, müssen sich die Instanz und der Endpunkt in derselben Region befinden.
Fehlermeldung: The Vertex AI endpoint isn't formatted properly. Der Vertex AI-Endpunkt ist nicht richtig formatiert. Weitere Informationen finden Sie unter Private Endpunkte für Onlinevorhersagen verwenden.
Fehlermeldung: Quota exceeded for aiplatform.googleapis.com/online_prediction_requests_per_base_model with base model: textembedding-gecko. Die Anzahl der Anfragen, die Cloud SQL an Vertex AI übergibt, überschreitet das Limit von 1.500 Anfragen pro Minute, Region, Modell und Projekt.

Nächste Schritte