Instruction CREATE MODEL pour les modèles distants en comparaison aux modèles hébergés Vertex AI
Ce document décrit l'instruction CREATE MODEL
pour créer des modèles distants dans BigQuery en comparaison aux modèles déployés sur Vertex AI.
Syntaxe 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
Crée et entraîne un modèle dans l'ensemble de données spécifié. Si le nom du modèle existe, CREATE MODEL
renvoie une erreur.
CREATE MODEL IF NOT EXISTS
Crée et entraîne un modèle uniquement si celui-ci n'existe pas dans l'ensemble de données spécifié.
CREATE OR REPLACE MODEL
Crée et entraîne un modèle. Permet également de remplacer un modèle existant du même nom dans l'ensemble de données spécifié.
model_name
Nom du modèle que vous créez ou remplacez. Le nom du modèle doit être unique dans l'ensemble de données. Aucun autre modèle, ni table ne peut porter le même nom. Le nom du modèle doit respecter les mêmes règles de dénomination que celles des tables BigQuery. Un nom de modèle peut :
- contenir jusqu'à 1 024 caractères ;
- contenir des lettres (majuscules ou minuscules), des chiffres et des traits de soulignement.
model_name
n'est pas sensible à la casse.
Si aucun projet par défaut n'est configuré, vous devez préfixer le nom du modèle par l'ID du projet en respectant le format suivant (y compris les accents graves) :
`[PROJECT_ID].[DATASET].[MODEL]`
par exemple, `myproject.mydataset.mymodel`.
Clauses INPUT
et OUTPUT
Vous devez spécifier les clauses INPUT
et OUTPUT
lorsque vous créez un modèle distant avec un point de terminaison HTTPS. La clause INPUT
doit contenir les champs nécessaires à la requête de point de terminaison Vertex AI, et la clause OUTPUT
doit contenir les champs nécessaires à la réponse du point de terminaison Vertex AI.
Types de données acceptés
Vous pouvez utiliser les types de données BigQuery suivants dans les clauses INPUT
et OUTPUT
:
BOOL
INT64
FLOAT64
NUMERIC
BIGNUMERIC
STRING
- Un
ARRAY
contenant l'un des types mentionnés ci-dessus.
Format de nom des champs
Les noms des champ INPUT
et OUTPUT
doivent être identiques aux noms de champs de la requête et de la réponse du point de terminaison Vertex AI. Pour un point de terminaison Vertex AI avec un seul OUTPUT
, il n'y a pas de nom de champ dans la réponse. Vous pouvez donc spécifier n'importe quel nom de champ dans l'instruction OUTPUT
.
Exemple
Si la requête Vertex AI se présente comme suit :
{
"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'instruction INPUT
doit être :
INPUT(f1 INT64, f2 FLOAT64, f3 STRING, f4 ARRAY<INT64>)
Si la réponse Vertex AI se présente comme suit :
{
"predictions": [
{
"out1": 300,
"out2": 40
},
{
"out1": 200,
"out2": 30
}
]
}
L'instruction OUTPUT
doit être :
OUTPUT(out1 INT64, out2 INT64)
REMOTE WITH CONNECTION
Syntaxe
`[PROJECT_ID].[LOCATION].[CONNECTION_ID]`
BigQuery utilise une connexion à une ressource cloud pour interagir avec le point de terminaison Vertex AI.
Les éléments de connexion sont les suivants :
PROJECT_ID
: ID du projet contenant la connexion.LOCATION
: emplacement utilisé par la connexion. La connexion doit se trouver au même emplacement que l'ensemble de données contenant le modèle.CONNECTION_ID
: ID de connexion, par exemplemyconnection
Pour trouver votre ID de connexion, affichez les détails de la connexion dans la console Google Cloud. L'ID de connexion correspond à la valeur de la dernière section de l'ID de connexion complet affiché dans la section ID de connexion (par exemple,
projects/myproject/locations/connection_location/connections/myconnection
).
Vous devez attribuer le rôle d'utilisateur Vertex AI au compte de service de la connexion dans le projet dans lequel vous créez le modèle.
Exemple
`myproject.us.my_connection`
ENDPOINT
Syntaxe
ENDPOINT = vertex_ai_https_endpoint
Description
Pour vertex_ai_https_endpoint
, spécifiez le point de terminaison HTTPS qui représente un modèle déployé sur Vertex AI.
Après avoir créé un modèle distant basé sur un modèle déployé sur Vertex AI, vous pouvez utiliser le modèle avec ML.PREDICT
pour effectuer l'inférence.
L'exemple suivant montre comment créer un modèle distant utilisant un point de terminaison HTTPS :
ENDPOINT = 'https://us-central1-aiplatform.googleapis.com/v1/projects/myproject/locations/us-central1/endpoints/1234'
Exemple
L'exemple suivant crée un modèle distant BigQuery ML basé sur un modèle déployé sur un point de terminaison 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')
Étapes suivantes
Pour en savoir plus sur les fonctions et les instructions SQL compatibles avec les modèles distants utilisant des points de terminaison HTTPS, consultez la section Processus utilisateur de bout en bout pour chaque modèle.