CREATE MODEL-Anweisung für Remote-Modelle über von Vertex AI gehostete Modelle

In diesem Dokument wird die CREATE MODEL-Anweisung zum Erstellen von Remote-Modellen in BigQuery über Modelle beschrieben, die in Vertex AI bereitgestellt werden.

CREATE MODEL-Syntax

{CREATE MODEL | CREATE MODEL IF NOT EXISTS | CREATE OR REPLACE MODEL}
`project_id.dataset.model_name`
INPUT (field_name field_type)
OUTPUT (field_name field_type)
REMOTE WITH CONNECTION `project_id.region.connection_id`
OPTIONS(ENDPOINT = vertex_ai_https_endpoint);

CREATE MODEL

Erstellt und trainiert ein neues Modell im angegebenen Dataset. Wenn der Modellname vorhanden ist, gibt CREATE MODEL einen Fehler zurück.

CREATE MODEL IF NOT EXISTS

Erstellt und trainiert ein neues Modell nur, wenn das Modell nicht im angegebenen Dataset vorhanden ist.

CREATE OR REPLACE MODEL

Erstellt und trainiert ein Modell und ersetzt ein vorhandenes Modell mit demselben Namen im angegebenen Dataset.

model_name

Der Name des Modells, das Sie erstellen oder ersetzen. Der Modellname muss im Dataset eindeutig sein: Kein anderes Modell und keine andere Tabelle darf denselben Namen haben. Der Modellname muss denselben Benennungsregeln wie eine BigQuery-Tabelle folgen. Ein Modellname kann:

  • bis zu 1.024 Zeichen enthalten.
  • Buchstaben (groß- oder kleingeschrieben), Ziffern und Unterstriche enthalten.

model_name unterscheidet nicht zwischen Groß- und Kleinschreibung.

Wenn Sie kein Standardprojekt konfiguriert haben, müssen Sie die Projekt-ID dem Modellnamen im folgenden Format voranstellen, einschließlich der Graviszeichen:

`[PROJECT_ID].[DATASET].[MODEL]`

Beispielsweise `myproject.mydataset.mymodel`.

Klauseln INPUT und OUTPUT

Sie müssen die Klauseln INPUT und OUTPUT angeben, wenn Sie ein Remote-Modell mit einem HTTPS-Endpunkt erstellen. Die Klausel INPUT muss die Felder enthalten, die für die Vertex AI-Endpunktanfrage erforderlich sind, und die Klausel OUTPUT die Felder, die für die Vertex AI-Endpunktantwort erforderlich sind.

Unterstützte Datentypen

Sie können die folgenden BigQuery-Datentypen in den Klauseln INPUT und OUTPUTverwenden:

Feldnameformat

Die Feldnamen INPUT und OUTPUT müssen mit den Feldnamen der Endpunktanfrage und -antwort von Vertex AI übereinstimmen. Für einen Vertex AI-Endpunkt mit einem einzelnen OUTPUT ist in der Antwort kein Feldname vorhanden. Daher können Sie in der Anweisung OUTPUT einen beliebigen Feldnamen angeben.

Beispiel

Wenn die Vertex AI-Anfrage so aussieht:

{
  "instances": [
    { "f1": 10, "f2": 12.3, "f3": "abc", "f4": [1, 2, 3, 4] },
    { "f1": 40, "f2": 32.5, "f3": "def", "f4": [11, 12, 13, 14] },
  ]
}

Die Anweisung INPUT muss so lauten:

INPUT(f1 INT64, f2 FLOAT64, f3 STRING, f4 ARRAY<INT64>)

Wenn die Vertex AI-Antwort so aussieht:

{
  "predictions": [
    {
      "out1": 300,
      "out2": 40
    },
    {
      "out1": 200,
      "out2": 30
    }
  ]
}

Die Anweisung OUTPUT muss so lauten:

OUTPUT(out1 INT64, out2 INT64)

REMOTE WITH CONNECTION

Syntax

`[PROJECT_ID].[LOCATION].[CONNECTION_ID]`

BigQuery verwendet eine Cloud-Ressourcenverbindung, um mit dem Vertex AI-Endpunkt zu interagieren.

Die Verbindungselemente sind:

  • PROJECT_ID: die Projekt-ID, das die Verbindung enthält.
  • LOCATION: der Standort, der von der Verbindung verwendet wird. Die Verbindung muss sich am selben Standort wie das Dataset befinden, das das Modell enthält.
  • CONNECTION_ID: die Verbindungs-ID, z. B. myconnection.

    Rufen Sie die Verbindungsdetails in der Google Cloud Console auf, um Ihre Verbindungs-ID zu ermitteln. Die Verbindungs-ID ist der Wert im letzten Abschnitt der vollständig qualifizierten Verbindungs-ID, der unter Verbindungs-ID angezeigt wird, z. B. projects/myproject/locations/connection_location/connections/myconnection.

Sie müssen dem Dienstkonto der Verbindung in dem Projekt, in dem Sie das Modell erstellen, die Rolle Vertex AI-Nutzer zuweisen.

Beispiel

`myproject.us.my_connection`

ENDPOINT

Syntax

ENDPOINT = vertex_ai_https_endpoint

Beschreibung

Geben Sie unter vertex_ai_https_endpoint den HTTPS-Endpunkt an, der ein in Vertex AI bereitgestelltes Modell darstellt.

Nachdem Sie ein Remote-Modell basierend auf einem Modell erstellt haben, das in Vertex AI bereitgestellt ist, können Sie das Modell mit ML.PREDICT für Inferenzen verwenden.

Das folgende Beispiel zeigt, wie ein Remote-Modell erstellt wird, das einen HTTPS-Endpunkt verwendet:

ENDPOINT = 'https://us-central1-aiplatform.googleapis.com/v1/projects/myproject/locations/us-central1/endpoints/1234'

Beispiel

Im folgenden Beispiel wird ein BigQuery ML-Remote-Modell über einem Modell erstellt, das auf einem Vertex AI-Endpunkt bereitgestellt wird:

CREATE MODEL `project_id.mydataset.mymodel`
 INPUT(f1 INT64, f2 FLOAT64, f3 STRING, f4 ARRAY)
 OUTPUT(out1 INT64, out2 INT64)
 REMOTE WITH CONNECTION `myproject.us.test_connection`
 OPTIONS(ENDPOINT = 'https://us-central1-aiplatform.googleapis.com/v1/projects/myproject/locations/us-central1/endpoints/1234')

Nächste Schritte

Weitere Informationen zu den unterstützten SQL-Anweisungen und -Funktionen für Remote-Modelle, die HTTPS-Endpunkte verwenden, finden Sie unter End-to-End-Nutzerpfad für jedes Modell.