Auf dieser Seite erfahren Sie, wie Sie anhand einer Spanner-Datenbank. ML-Vorhersagen funktionieren sowohl mit GoogleSQL- und PostgreSQL-Datenbanken.
Durch die Einbindung von Spanner Vertex AI können Sie mithilfe Ihrer
durch Aufrufen der Methode
ML.PREDICT
für GoogleSQL oder die
spanner.ML_PREDICT_ROW
für PostgreSQL. Weitere Informationen zur Einbindung von Spanner Vertex AI finden Sie unter Einbindung von Spanner Vertex AI.
Hinweise
Bevor Sie Vorhersagen aus einer Spanner-Instanz generieren können, müssen Sie Ihre Datenbank vorbereiten und ein Modell auswählen.
Zugriff für die Einbindung von Spanner Vertex AI in Vertex AI-Endpunkte konfigurieren
Spanner erstellt den Dienst-Agent und gewährt die erforderlichen Berechtigungen wenn Spanner die erste MODEL-DDL-Anweisung ausführt. Wenn sowohl die Spanner-Datenbank als auch der Vertex AI-Endpunkt in im selben Projekt erstellen, ist keine zusätzliche Einrichtung erforderlich.
Wenn das Spanner-Dienst-Agent-Konto für Ihr Spanner-Projekt zu erstellen, erstellen Sie es durch Ausführen des folgenden Befehl:
gcloud beta services identity create --service=spanner.googleapis.com --project={PROJECT}`
Führen Sie die Schritte unter Einzelne Rolle zuweisen aus.
Weisen Sie dem Nutzer die Rolle Spanner API Service Agent
zu
Spanner-Dienst-Agent-Konto
service-PROJECT_ID@gcp-sa-spanner.iam.gserviceaccount.com
auf Ihrem
Vertex AI-Projekt.
Modell auswählen
Wenn Sie die Funktion ML.PREDICT
(für GoogleSQL) oder spanner.ML_PREDICT_ROW
(für PostgreSQL) verwenden, müssen Sie den Speicherort des ML-Modells angeben. Das ausgewählte Modell kann eines der folgenden sein:
Ein Modell, das in der Vertex AI Model Garden
Ein Vertex AI-Modell mit einem aktiven Endpunkt, den Ihr Der Spanner-Dienst-Agent hat IAM-Zugriffsberechtigungen.
Weitere Informationen zur Einbindung von Spanner Vertex AI finden Sie unter Wie funktioniert die Einbindung von Spanner Vertex AI?
Vorhersagen generieren
Je nach Typ des ausgewählten Modells werden sich Ihre Vorhersagen unterscheiden.
Modell in Vertex AI Model Garden verwenden
Um eine Vorhersage mit einem Modell aus dem Vertex AI Model Garden zu generieren, ein Modell aus dem Model Garden auswählen.
GoogleSQL
Bevor Sie ein Modell mit ML.PREDICT()
verwenden können, müssen Sie es registrieren
mit der CREATE MODEL
-Anweisung.
CREATE MODEL 'MODEL_NAME'
INPUT (INPUT_COLUMN_NAME INPUT_COLUMN_TYPE)
OUTPUT (OUTPUT_COLUMN_NAME OUTPUT_COLUMN_TYPE)
REMOTE
OPTIONS (
endpoint = '//aiplatform.googleapis.com/projects/PROJECT_ID/locations/LOCATION_ID/publishers/google/models/model_id'
);
Ersetzen Sie Folgendes:
MODEL_NAME
: der Name, den Sie Ihrem Modell geben möchtenINPUT_COLUMN_NAME
: der Name Ihrer Eingabespalte. Beispiel: Bei Verwendung des Modellsgemini-pro
lautet der Name der Eingabespalteprompt
.INPUT_COLUMN_TYPE
: Datentyp fürINPUT_COLUMN_NAME
OUTPUT_COLUMN_NAME
: der Name Ihrer Ausgabespalte. Wenn Sie beispielsweise das Modellgemini-pro
verwenden, lautet der Ausgabespaltennamecontent
.OUTPUT_COLUMN_TYPE
: der Datentyp fürOUTPUT_COLUMN_NAME
PROJECT_ID
ist die ID Ihres Google Cloud-ProjektsREGION_ID
: die ID der Google Cloud-Region, in der sich das Modell befindet sich befindet, z. B.us-central1
MODEL_ID
: die ID des ML-Modells, das Sie verwenden möchten, z. B.gemini-pro
Weitere Informationen zu Modellen finden Sie unter Model API-Referenz für Generative AI
Verwenden Sie die GoogleSQL-Funktion ML.PREDICT
mit dem Modell, das Sie in der Model Garden ausgewählt haben, um eine Vorhersage zu generieren.
SELECT * FROM ML.PREDICT(
MODEL `MODEL_NAME`,
`INPUT_RELATION`[, `PARAMETERS`])
Ersetzen Sie Folgendes:
MODEL_NAME
: der Name, den Sie Ihrem Modell geben möchtenWeitere Informationen zu Modellen finden Sie unter Model API-Referenz für Generative AI
INPUT_RELATION
: EntwederTABLE table_name
oder eine Unterabfrage der Tabelle oder Unterabfrage, die Daten liefert für die ML-Vorhersage ausgeführt werden soll.PARAMETERS
: EinSTRUCT
-Wert, der Parameter enthält. unterstützt vonmodel_id
.
Sie können auch SAFE.ML.PREDICT
verwenden, um null
anstelle eines Fehlers in
für Ihre Vorhersagen. Das ist hilfreich, wenn Sie große Abfragen ausführen, bei denen einige fehlgeschlagene Vorhersagen tolerabel sind.
PostgreSQL
Die PostgreSQL-Funktion ML_PREDICT_ROW
mit dem ausgewählten Modell verwenden
aus dem Model Garden,
um Ihre Vorhersage zu generieren.
SELECT spanner.ml_predict_row(
'projects/PROJECT_ID/locations/REGION_ID/publishers/google/models/MODEL_ID'::text,
'{
"instances": [ INSTANCES ],
"parameters": { PARAMETERS }
}'::jsonb);
Ersetzen Sie Folgendes:
PROJECT_ID
ist die ID Ihres Google Cloud-ProjektsREGION_ID
: die ID der Google Cloud-Region, in der sich das Modell befindet sich befindet, z. B.us-central1
MODEL_ID
: die ID des zu verwendenden ML-Modells, z. B.gemini-pro
Weitere Informationen zu Modellen finden Sie in der Modell API-Referenz für generative KI.
INSTANCES
: die Eingaben für den Vorhersageaufruf im JSON-FormatPARAMETERS
: optionale Parameter für den Vorhersageaufruf im JSON-Format
Diese Abfrage erzeugt eine JSON-Antwort. Weitere Informationen zur JSON-Antwortnachrichten des Modells erhalten Sie unter PredictResponse.
Vertex AI-Modellendpunkt verwenden
Wenn Sie ein trainiertes oder heruntergeladenes Modell mit Einbindung von Spanner Vertex AI verwenden möchten, müssen Sie das Modell bereitstellen zu Vertex AI. Weitere Informationen dazu, wie Sie wie Sie ein Modell auf einem Endpunkt in Vertex AI bereitstellen, siehe Modell auf einem Endpunkt bereitstellen
GoogleSQL
Verwenden Sie die GoogleSQL-Funktion ML.PREDICT
mit dem Modell in einem
Vertex AI-Endpunkt zum Generieren Ihrer Vorhersage. Vor der Verwendung eines
mit ML.PREDICT()
, müssen Sie das Modell mit
Das CREATE MODEL
. Jedes bereitgestellte Modell hat ein eigenes Schema. Hier sehen Sie ein Beispielschema aus
Klassifizierung und Regression – Übersicht
CREATE MODEL MyClassificationModel
INPUT (
length FLOAT64,
material STRING(MAX),
tag_array ARRAY<STRING(MAX)>
)
OUTPUT (
scores ARRAY<FLOAT64>,
classes ARRAY<STRING(MAX)>
)
REMOTE
OPTIONS (
endpoint = '//aiplatform.googleapis.com/projects/PROJECT/locations/LOCATION/endpoints/ENDPOINT_ID'
)
Ersetzen Sie Folgendes:
PROJECT_ID
ist die ID Ihres Google Cloud-ProjektsLOCATION
: die ID der Google Cloud-Region, in der sich das Modell befindet sich befindet, z. B.us-central1
ENDPOINT_ID
: die ID des ML-Modells, das Sie verwenden möchten, z. B.gemini-pro
Weitere Informationen zu Modellen finden Sie unter Model API-Referenz für Generative AI
Verwenden Sie die GoogleSQL-Funktion ML.PREDICT
mit dem Modell, das Sie in der Model Garden ausgewählt haben, um eine Vorhersage zu generieren.
SELECT * FROM ML.PREDICT(
`MODEL_ID`,
`INPUT_RELATION`[, `PARAMETERS`])
Ersetzen Sie Folgendes:
MODEL_ID
: die ID des zu verwendenden ML-Modells.INPUT_RELATION
: die gewünschte Tabelle oder Unterabfrage für die ML-Vorhersage ausgeführt werden soll.PARAMETERS
: einSTRUCT
-Wert, der vonmodel_name
unterstützte Parameter enthält.
Diese Abfrage erzeugt eine Beziehung, die alle Ausgabespalten des Modells und Spalten der Eingabebeziehung.
PostgreSQL
Die PostgreSQL-Funktion ML.PREDICT
mit dem Modell in einem
Vertex AI-Endpunkt zum Generieren Ihrer Vorhersage.
SELECT spanner.ml_predict_row(
'projects/PROJECT_ID/locations/REGION_ID/endpoints/ENDPOINT_ID'::text,
'{
"instances": [ INSTANCES ],
"parameters": { PARAMETERS }
}'::jsonb);
```
Replace the following:
PROJECT_ID
: die ID des Google Cloud-Projekts, das das Modell ist inREGION_ID
: die ID der Google Cloud-Region, in der das Modell verwendet wird sich befindet, z. B.us-central1
ENDPOINT_ID
: die ID des ModellendpunktsINSTANCES
: Die Eingaben für den Vorhersageaufruf im JSON-FormatPARAMETERS
: optionale Parameter für den Vorhersageaufruf im JSON-Format
Diese Abfrage führt zu einer JSON-Antwort. Weitere Informationen zu den JSON-Antwortnachrichten des Modells finden Sie unter PredictResponse.
Beispiele für die Verwendung von ML-Funktionen zum Generieren von Vorhersagen
Im folgenden Beispiel wird die Methode gemini-pro-Modell aus Model Garden, um anhand eines kurzen Prompts Text zu generieren. das als Argument angegeben wird. Dieses Modell ist als Teil von Gemini in Spanner.
GoogleSQL
Modell gemini-pro
registrieren
CREATE MODEL GeminiPro
INPUT (prompt STRING(MAX))
OUTPUT (content STRING(MAX))
REMOTE
OPTIONS (
endpoint = '//aiplatform.googleapis.com/projects/PROJECT/locations/LOCATION/publishers/google/models/gemini-pro',
default_batch_size = 1
);
Ersetzen Sie Folgendes:
PROJECT
: die Projekt-IDLOCATION
: Region, in der Sie Vertex AI verwenden
Modell ausführen
SELECT content
FROM ML.PREDICT(
MODEL GeminiPro,
(SELECT "Is 7 a prime number?" AS prompt),
STRUCT(256 AS maxOutputTokens, 0.2 AS temperature, 40 as topK, 0.95 AS topP)
);
Erwartete Ausgabe
Das erwartete Ergebnis ist:
+--------------------+
| content |
+--------------------+
| "Yes" |
+--------------------+
PostgreSQL
Modell ausführen
select spanner.ml_predict_row(
'{
"endpoint": "projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-pro",
"default_batch_size": 1
}'::jsonb,
'{
"instances":[{"prompt": "Is 7 a prime number?"}],
"parameters":{"maxOutputTokens":256, "topK": 40, "topP":0.96, "temperature":0.2}
}'
);
Erwartete Ausgabe
Das erwartete Ergebnis ist:
+--------------------+
| content |
+--------------------+
| "Yes" |
+--------------------+