Instrução CREATE MODEL para modelos remotos em modelos hospedados pela Vertex AI
Neste documento, descrevemos a instrução CREATE MODEL
para criar modelos remotos
no BigQuery em modelos implantados na
Vertex AI.
Sintaxe 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
Cria e treina um modelo novo no conjunto de dados especificado. Se o nome do modelo
existir, CREATE MODEL
retornará um erro.
CREATE MODEL IF NOT EXISTS
Cria e treina um novo modelo somente quando ele não existe no conjunto de dados especificado.
CREATE OR REPLACE MODEL
Cria e treina um modelo e substitui um modelo atual com o mesmo nome no conjunto de dados especificado.
model_name
O nome do modelo que você está criando ou substituindo. O nome do modelo precisa ser exclusivo no conjunto de dados: nenhum outro modelo ou tabela pode ter o mesmo nome. O nome do modelo precisa seguir as mesmas regras de nomenclatura de uma tabela do BigQuery. Um nome de modelo pode:
- conter até 1.024 caracteres;
- conter letras (maiúsculas e minúsculas), números e sublinhados;
model_name
não diferencia maiúsculas de minúsculas.
Se você não tiver um projeto padrão configurado, use o ID do projeto como prefixo no nome do modelo no seguinte formato, incluindo acentos graves:
`[PROJECT_ID].[DATASET].[MODEL]`
Por exemplo, "myproject.mydataset.mymodel".
Cláusulas INPUT
e OUTPUT
É necessário especificar as cláusulas INPUT
e OUTPUT
ao criar um modelo
remoto com um endpoint HTTPS. A cláusula INPUT
precisa conter os campos necessários
para a solicitação de endpoint da Vertex AI, e a OUTPUT
precisa
conter os campos necessários para a resposta de endpoint da Vertex AI.
Tipos de dados compatíveis
É possível usar os seguintes tipos de dados do BigQuery nas cláusulas INPUT
e OUTPUT
:
Formato do nome do campo
Os nomes dos campos INPUT
e OUTPUT
precisam ser idênticos aos da solicitação e da resposta de endpoint da Vertex AI. Para um endpoint da Vertex AI com um único OUTPUT
, não há nome de campo na resposta e, portanto, é possível especificar qualquer nome de campo na instrução OUTPUT
.
Exemplo
Se a solicitação da Vertex AI for semelhante ao exemplo a seguir:
{
"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] },
]
}
A instrução INPUT
precisa ser:
INPUT(f1 INT64, f2 FLOAT64, f3 STRING, f4 ARRAY<INT64>)
Se a resposta da Vertex AI for semelhante ao exemplo a seguir:
{
"predictions": [
{
"out1": 300,
"out2": 40
},
{
"out1": 200,
"out2": 30
}
]
}
A instrução OUTPUT
precisa ser:
OUTPUT(out1 INT64, out2 INT64)
REMOTE WITH CONNECTION
Sintaxe
`[PROJECT_ID].[LOCATION].[CONNECTION_ID]`
O BigQuery usa uma conexão de recursos do Cloud para interagir com o endpoint da Vertex AI.
Os elementos de conexão são estes:
PROJECT_ID
: o ID do projeto que contém a conexão.LOCATION
: o local usado pela conexão. A conexão precisa estar no mesmo local que o conjunto de dados que contém o modelo.CONNECTION_ID
: o ID da conexão. Por exemplo,myconnection
.Para encontrar o ID da conexão, confira os detalhes da conexão no console do Google Cloud. O ID da conexão é o valor na última seção do ID da conexão totalmente qualificado mostrado em ID da conexão, por exemplo,
projects/myproject/locations/connection_location/connections/myconnection
.
Você precisa conceder a função de usuário da Vertex AI à conta de serviço da conexão no projeto em que você cria o modelo.
Exemplo
`myproject.us.my_connection`
ENDPOINT
Sintaxe
ENDPOINT = vertex_ai_https_endpoint
Descrição
Em vertex_ai_https_endpoint
, especifique o
endpoint HTTPS
que representa um modelo implantado na Vertex AI.
Depois de criar um modelo remoto com base em um modelo implantado na
Vertex AI, é possível usá-lo com
ML.PREDICT
para fazer a inferência.
O exemplo a seguir mostra como criar um modelo remoto que usa um endpoint HTTPS:
ENDPOINT = 'https://us-central1-aiplatform.googleapis.com/v1/projects/myproject/locations/us-central1/endpoints/1234'
Exemplo
O exemplo a seguir cria um modelo remoto do BigQuery ML em um modelo implantado em um endpoint da 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')
A seguir
Para mais informações sobre as instruções e funções SQL compatíveis com modelos remotos que usam endpoints HTTPS, consulte Jornada do usuário completa para cada modelo.