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 :

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 exemple myconnection

    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.