Sentencia CREATE MODEL para modelos remotos mediante modelos alojados en Vertex AI
En este documento, se describe la sentencia CREATE MODEL
para crear modelos remotos en BigQuery en lugar de modelos implementados en Vertex AI.
Sintaxis de 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 y entrena un modelo nuevo en el conjunto de datos especificado. Si el nombre del modelo existe, CREATE MODEL
muestra un error.
CREATE MODEL IF NOT EXISTS
Crea y entrena un modelo nuevo solo si el modelo no existe en el conjunto de datos especificado.
CREATE OR REPLACE MODEL
Crea y entrena un modelo y reemplaza el existente con el mismo nombre en el conjunto de datos especificado.
model_name
El nombre del modelo que estás creando o reemplazando. El nombre del modelo debe ser único en el conjunto de datos: ningún otro modelo o tabla puede tener el mismo nombre. El nombre del modelo debe seguir las mismas reglas de denominación que una tabla de BigQuery. Estas son las características de un nombre de modelo:
- Contiene hasta 1,024 caracteres
- Contiene letras (mayúsculas o minúsculas), números o guiones bajos.
model_name
no distingue entre mayúsculas y minúsculas.
Si no tienes un proyecto predeterminado configurado, debes anteponer el ID del proyecto al nombre del modelo en el siguiente formato, incluidos los acentos graves:
`[PROJECT_ID].[DATASET].[MODEL]`
Por ejemplo, “myproject.mydataset.mymodel”.
Cláusulas INPUT
y OUTPUT
Debes especificar las cláusulas INPUT
y OUTPUT
cuando creas un modelo remoto con un extremo HTTPS. La cláusula INPUT
debe contener los campos necesarios para la solicitud de extremo de Vertex AI, y la cláusula OUTPUT
debe contener los campos necesarios para la respuesta de extremo de Vertex AI.
Tipos de datos admitidos
Puedes usar los siguientes tipos de datos de BigQuery en las cláusulas INPUT
y OUTPUT
:
Formato del nombre de campo
Los nombres de campo INPUT
y OUTPUT
deben ser idénticos a los nombres de campo de la solicitud y la respuesta de extremo de Vertex AI. Para un extremo de Vertex AI con un solo OUTPUT
, no hay un nombre de campo en la respuesta y, por lo tanto, puedes especificar cualquier nombre de campo en la sentencia OUTPUT
.
Ejemplo
Si la solicitud de Vertex AI se ve como el siguiente ejemplo:
{
"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] },
]
}
La sentencia INPUT
debe ser la siguiente:
INPUT(f1 INT64, f2 FLOAT64, f3 STRING, f4 ARRAY<INT64>)
Si la respuesta de Vertex AI se ve como el siguiente ejemplo:
{
"predictions": [
{
"out1": 300,
"out2": 40
},
{
"out1": 200,
"out2": 30
}
]
}
La sentencia OUTPUT
debe ser la siguiente:
OUTPUT(out1 INT64, out2 INT64)
REMOTE WITH CONNECTION
Sintaxis
`[PROJECT_ID].[LOCATION].[CONNECTION_ID]`
BigQuery usa una conexión de recursos de Cloud para interactuar con el extremo de Vertex AI.
Los elementos de conexión son los siguientes:
PROJECT_ID
: ID del proyecto que contiene la conexión.LOCATION
: Es la ubicación que usa la conexión. La conexión debe estar en la misma ubicación que el conjunto de datos que contiene el modelo.CONNECTION_ID
: el ID de conexión, por ejemplo,myconnection
.Para encontrar el ID de conexión, consulta los detalles de la conexión en la consola de Google Cloud. El ID de conexión es el valor de la última sección del ID de conexión completamente calificado que se muestra en el ID de conexión, por ejemplo,
projects/myproject/locations/connection_location/connections/myconnection
.
Debes otorgar el rol de usuario de Vertex AI a la cuenta de servicio de la conexión en el proyecto en el que creas el modelo.
Ejemplo
`myproject.us.my_connection`
ENDPOINT
Sintaxis
ENDPOINT = vertex_ai_https_endpoint
Descripción
En vertex_ai_https_endpoint
, especifica el extremo HTTPS que representa un modelo implementado en Vertex AI.
Después de crear un modelo remoto basado en un modelo implementado en Vertex AI, puedes usar el modelo con ML.PREDICT
para realizar inferencias.
En el siguiente ejemplo, se muestra cómo crear un modelo remoto que use un extremo HTTPS:
ENDPOINT = 'https://us-central1-aiplatform.googleapis.com/v1/projects/myproject/locations/us-central1/endpoints/1234'
Ejemplo
En el siguiente ejemplo, se crea un modelo remoto de BigQuery ML sobre un modelo implementado en un extremo de 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')
¿Qué sigue?
Si deseas obtener más información sobre las instrucciones y funciones de SQL compatibles para modelos remotos que usan extremos HTTPS, consulta Recorrido del usuario de extremo a extremo para cada modelo.