Onlinevorhersagen aus Cloud SQL-Instanzen aufrufen

Auf dieser Seite wird beschrieben, wie Sie Onlinevorhersagen aus einer Cloud SQL for PostgreSQL-Instanz aufrufen.

Mit Cloud SQL können Sie durch Aufrufen der Funktion ml_predict_row() Onlinevorhersagen in Ihrem SQL-Code abrufen. Weitere Informationen finden Sie unter Generative AI Anwendungen mit Cloud SQL erstellen.

Hinweise

Bevor Sie Onlinevorhersagen aus einer Cloud SQL-Instanz aufrufen können, müssen Sie Ihre Datenbank vorbereiten und ein geeignetes ML-Modell auswählen.

Datenbank vorbereiten

Führen Sie die folgenden Schritte aus, um Ihre Datenbank vorzubereiten:

  1. Einbindung zwischen Cloud SQL und Vertex AI einrichten.

  2. Datenbankbenutzern die Berechtigung dazu erteilen, die ml_predict_row()-Funktion zur Ausführung von Vorhersagen zu verwenden:

    1. Einen psql-Client mit der primären Instanz verbinden, z. B. wie unter Verbindung über einen psql-Client herstellen beschrieben.

    2. An der psql-Eingabeaufforderung eine Verbindung zur Datenbank herstellen und Berechtigungen gewähren:

      \c DB_NAME
      
      GRANT EXECUTE ON FUNCTION ml_predict_row TO USER_NAME;
      

      Ersetzen Sie Folgendes:

      • DB_NAME: der Name der Datenbank, für die Sie Berechtigungen gewähren

      • USER_NAME: der Name des Nutzers, dem Sie die Berechtigungen erteilen

ML-Modell auswählen

Wenn Sie die Funktion ml_predict_row() aufrufen, müssen Sie den Speicherort eines ML-Modells angeben. Das von Ihnen angegebene Modell kann eines der folgenden sein:

  • Ein Modell, das in Vertex AI Model Garden ausgeführt wird.

    Die Funktion ml_predict_row() unterstützt das Aufrufen von Vorhersagen nur für tabellarische oder benutzerdefinierte Modelle.

  • Ein Vertex AI-Modell mit einem aktiven Endpunkt, für den Sie die IAM-Berechtigung (Identity and Access Management) haben.

    Cloud SQL unterstützt keine privaten Endpunkte für das Abrufen von Onlinevorhersagen.

Onlinevorhersagen aufrufen

Mit der SQL-Funktion ml_predict_row() haben Sie die Möglichkeit, Onlinevorhersagen für Ihre Daten aufzurufen.

Das Format des Anfangsarguments der Funktion hängt davon ab, ob das ML-Modell, das Sie verwenden möchten, sich im Vertex AI Model Garden befindet oder ein Endpunkt ist, der in einem Google Cloud-Projekt ausgeführt wird.

Modell in Vertex AI Model Garden verwenden

Zum Aufrufen einer Onlinevorhersage mit einem ML-Modell, das in Vertex AI Model Garden ausgeführt wird, verwenden Sie die folgende Syntax für die SQL-Funktion ml_predict_row():

SELECT ml_predict_row('publishers/google/models/MODEL_ID', '{ "instances": [ INSTANCES ], "parameters":
PARAMETERS }');

Ersetzen Sie die folgenden Werte:

  • MODEL_ID: die ID des zu verwendenden ML-Modells (z. B. text-bison für PaLM 2 für Text)

  • INSTANCES: Die Eingaben für den Vorhersageaufruf im JSON-Format

  • PARAMETERS: Die Parameter für den Vorhersageaufruf im JSON-Format

SELECT ml_predict_row('publishers/google/models/MODEL_ID', '{ "instances": [ INSTANCES ], "parameters":
PARAMETERS }');

Informationen zu den JSON-Antwortnachrichten des Modells finden Sie in der Referenz zum Foundation Model der generativen KI. Beispiele finden Sie unter Beispielaufrufe.

Vertex AI-Modellendpunkt verwenden

Verwenden Sie die folgende Syntax für die SQL-Funktion ml_predict_row(), um eine Onlinevorhersage mit einem Vertex AI-Modellendpunkt aufzurufen:

SELECT ml_predict_row('endpoints/ENDPOINT_ID', '{ "instances": [ INSTANCES ], "parameters":
PARAMETERS }');

Ersetzen Sie die folgenden Werte:

  • ENDPOINT_ID: die ID des Modellendpunkts

  • INSTANCES: Die Eingaben für den Vorhersageaufruf im JSON-Format

  • PARAMETERS: die Parameter für den Vorhersageaufruf im JSON-Format

Informationen zu den JSON-Antwortnachrichten des Modells finden Sie unter PredictResponse.

Beispielaufrufe

Im folgenden Beispiel wird PaLM 2 for Text verwendet, das im Model Garden verfügbar ist, um Text basierend auf einem kurzen Prompt zu generieren, der als Literalargument für ml_predict_row() bereitgestellt wird:

select ML_PREDICT_ROW('projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-bison', '{"instances":[{"prompt": "What are three advantages of using Cloud SQL as my SQL database server?"}], "parameters":{"maxOutputTokens":1024, "topK": 40, "topP":0.8, "temperature":0.2}}');

Die Antwort ist ein JSON-Objekt. Weitere Informationen zum Format des Objekts finden Sie unter Antworttext.

Im nächsten Beispiel wird das vorherige so geändert:

  • Im Beispiel wird der Inhalt der Spalte messages.message der aktuellen Datenbank als Eingabe verwendet.

  • Im Beispiel wird die Verwendung der json_build_object()-Funktion als Unterstützung bei der Formatierung der Funktionsparameter veranschaulicht.

select ML_PREDICT_ROW('projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-bison', json_build_object('instances', json_build_object('prompt', message), 'parameters', json_build_object('maxOutputTokens', 1024,'topK', 40,'topP', 0.8,'temperature', 0.2))) from messages;

Für jede Zeile in der Tabelle messages enthält das zurückgegebene JSON-Objekt jetzt einen Eintrag im Array predictions.

Da die Antwort ein JSON-Objekt ist, können Sie bestimmte Felder mit dem PostgreSQL-Pfeiloperator abrufen:

SELECT ML_PREDICT_ROW('projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-bison',json_build_object('instances', json_build_object('prompt',message), 'parameters', json_build_object('maxOutputTokens', 1024,'topK', 40,'topP', 0.8,'temperature', 0.2)))->'predictions'->0->'content' FROM messages;

Weitere Beispielargumente für ml_predict_row() finden Sie unter Vertex AI Gemini testen. API.

Nächste Schritte