L'istruzione CREATE MODEL per i modelli remoti rispetto ai modelli ospitati da Vertex AI

Questo documento descrive l'istruzione CREATE MODEL per creare modelli remoti in BigQuery rispetto ai modelli di cui è stato eseguito il deployment in Vertex AI.

Sintassi CREATE MODEL

{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

Crea e addestra un nuovo modello nel set di dati specificato. Se il nome del modello esiste, CREATE MODEL restituisce un errore.

CREATE MODEL IF NOT EXISTS

Crea e addestra un nuovo modello solo se non esiste nel set di dati specificato.

CREATE OR REPLACE MODEL

Crea e addestra un modello e sostituisce un modello esistente con lo stesso nome nel set di dati specificato.

model_name

Il nome del modello che stai creando o sostituendo. Il nome del modello deve essere univoco nel set di dati: nessun altro modello o tabella può avere lo stesso nome. Il nome del modello deve seguire le stesse regole di denominazione di una tabella BigQuery. Il nome di un modello può:

  • Contiene fino a 1024 caratteri
  • Contenere lettere (maiuscole o minuscole), numeri e trattini bassi.

model_name non è sensibile alle maiuscole.

Se non hai configurato un progetto predefinito, devi anteporre l'ID progetto al nome del modello nel seguente formato, inclusi gli apici inversi:

"[ID_PROGETTO].[SET DI DATI].[MODEL]"

Ad esempio, "myproject.mydataset.mymodel".

Clausole INPUT e OUTPUT

Devi specificare le clausole INPUT e OUTPUT quando crei un modello remoto con un endpoint HTTPS. La clausola INPUT deve contenere i campi necessari per la richiesta dell'endpoint Vertex AI e la clausola OUTPUT deve contenere i campi necessari per la risposta dell'endpoint di Vertex AI.

Tipi di dati supportati

Puoi utilizzare i seguenti tipi di dati BigQuery nelle clausole INPUT e OUTPUT:

Formato del nome del campo

I nomi dei campi INPUT e OUTPUT devono essere identici ai nomi dei campi della richiesta e della risposta dell'endpoint di Vertex AI. Per un endpoint Vertex AI con un singolo valore OUTPUT, non esiste un nome di campo nella risposta, quindi puoi specificare qualsiasi nome di campo nell'istruzione OUTPUT.

Esempio

Se la richiesta Vertex AI è simile al seguente esempio:

{
  "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] },
  ]
}

L'istruzione INPUT deve essere:

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

Se la risposta di Vertex AI è simile al seguente esempio:

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

L'istruzione OUTPUT deve essere:

OUTPUT(out1 INT64, out2 INT64)

REMOTE WITH CONNECTION

Sintassi

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

BigQuery utilizza una connessione risorse cloud per interagire con l'endpoint Vertex AI.

Gli elementi di connessione sono i seguenti:

  • PROJECT_ID: l'ID del progetto che contiene la connessione.
  • LOCATION: la località utilizzata dalla connessione. La connessione deve trovarsi nella stessa località del set di dati che contiene il modello.
  • CONNECTION_ID: l'ID connessione, ad esempio myconnection.

    Per trovare l'ID connessione, visualizza i dettagli della connessione nella console Google Cloud. L'ID connessione è il valore nell'ultima sezione dell'ID connessione completo mostrato in ID connessione, ad esempio projects/myproject/locations/connection_location/connections/myconnection.

Devi concedere il ruolo Utente Vertex AI all'account di servizio della connessione nel progetto in cui crei il modello.

Esempio

`myproject.us.my_connection`

ENDPOINT

Sintassi

ENDPOINT = vertex_ai_https_endpoint

Description

Per vertex_ai_https_endpoint, specifica l'endpoint HTTPS che rappresenta un modello di cui è stato eseguito il deployment in Vertex AI.

Dopo aver creato un modello remoto basato su un modello di cui è stato eseguito il deployment in Vertex AI, puoi utilizzare il modello con ML.PREDICT per eseguire l'inferenza.

L'esempio seguente mostra come creare un modello remoto che utilizza un endpoint HTTPS:

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

Esempio

L'esempio seguente crea un modello remoto BigQuery ML su un modello di cui è stato eseguito il deployment in un endpoint Vertex AI:

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')

Passaggi successivi

Per saperne di più sulle istruzioni e sulle funzioni SQL supportate per i modelli remoti che utilizzano endpoint HTTPS, consulta Percorso dell'utente end-to-end per ogni modello.