Instruction CREATE MODEL pour l'entraînement de modèles AutoML Tables

AutoML Tables vous permet de créer automatiquement, plus rapidement et à plus grande échelle des modèles de machine learning avancés sur des données structurées. Pour en savoir plus sur le type de modèle, consultez la documentation AutoML Tables.

Instruction CREATE MODEL pour les modèles AutoML Tables

Pour entraîner un modèle AutoML Tables dans BigQuery, utilisez l'instruction BigQuery ML CREATE MODEL avec l'un des types de modèle AutoML Tables.

Syntaxe de CREATE MODEL

{CREATE MODEL | CREATE MODEL IF NOT EXISTS | CREATE OR REPLACE MODEL}
model_name
OPTIONS(MODEL_TYPE = { 'AUTOML_REGRESSOR' | 'AUTOML_CLASSIFIER' }
         , BUDGET_HOURS = float64_value)
        [, INPUT_LABEL_COLS = string_array ]
        [, DATA_SPLIT_COL = string ]
[AS query_statement];

CREATE MODEL

Crée un modèle BigQuery ML dans l'ensemble de données spécifié. Dans le cas des modèles AutoML Tables, BigQuery ML entraîne et compresse le modèle AutoML Tables, puis le convertit en modèle BigQuery ML. Si le nom du modèle existe, CREATE MODEL renvoie une erreur.

CREATE MODEL IF NOT EXISTS

Ne crée un modèle que s'il n'existe pas déjà dans l'ensemble de données spécifié.

CREATE OR REPLACE MODEL

Crée un modèle et remplace tout modèle existant portant le même nom dans l'ensemble de données spécifié.

Options du modèle

BigQuery ML utilise actuellement les valeurs par défaut pour les options d'entraînement AutoML Tables, y compris la division automatique des données et la fonction d'optimisation par défaut.

model_name

model_name correspond au nom du modèle BigQuery ML que vous créez ou remplacez. Le nom du modèle doit être unique pour chaque 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 les éléments suivants :

  • Jusqu'à 1 024 caractères
  • 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é, ajoutez l'ID du projet au début du nom du modèle au format suivant, en intégrant les accents graves :

`[PROJECT_ID].[DATASET].[MODEL]`

Exemple :

`myproject.mydataset.mymodel`

CREATE MODEL accepte les options suivantes :

MODEL_TYPE

Syntaxe

MODEL_TYPE = { 'AUTOML_REGRESSOR' | 'AUTOML_CLASSIFIER' }

Description

Spécifie le type de modèle. Cette option est obligatoire. Dans le cas d'un modèle de régression, le type doit être "AUTOML_REGRESSOR" et le type de la colonne d'étiquette doit être numérique. Dans le cas d'un modèle de classification, le type doit être "AUTOML_CLASSIFIER" et la colonne d'étiquette peut être une chaîne ou une valeur numérique.

BUDGET_HOURS

Syntaxe

BUDGET_HOURS = float64_value

Description

Définit le budget d'entraînement pour AutoML Tables, spécifié en heures. La valeur par défaut est 1.0. Sa valeur doit être comprise entre 1.0 et 72.0. Cette option ne peut être utilisée que si MODEL_TYPE est AUTOML_REGRESSOR ou AUTOML_CLASSIFIER.

Après avoir entraîné les modèles AutoML Tables, BigQuery ML compresse le modèle pour s'assurer qu'il est suffisamment petit pour l'importation, ce qui peut prendre jusqu'à 50 % du temps d'entraînement. Le temps de compression du modèle n'est pas inclus dans le budget d'entraînement.

Arguments

L'élément float64_value appartient au groupe FLOAT64.

OPTIMIZATION_OBJECTIVE

Syntaxe

OPTIMIZATION_OBJECTIVE = string_value

Description

Définit la fonction d'objectif d'optimisation à utiliser pour l'entraînement AutoML Tables. Dans le cas de la régression, les valeurs autorisées sont : MINIMIZE_RMSE (valeur par défaut), MINIMIZE_MAE et MINIMIZE_RMSLE. Dans le cas de la classification binaire, les valeurs autorisées sont MAXIMIZE_AU_ROC (valeur par défaut), MINIMIZE_LOG_LOSS et MAXIMIZE_AU_PRC. Dans le cas de la classification multiclasses, la seule valeur autorisée est MINIMIZE_LOG_LOSS.

Pour en savoir plus sur les fonctions d'objectif d'optimisation, consultez la documentation AutoML Tables.

Arguments

string_value est l'un des éléments suivants : MAXIMIZE_AU_ROC, MINIMIZE_LOG_LOSS, MAXIMIZE_AU_PRC, MINIMIZE_RMSE, MINIMIZE_MAE, ou MINIMIZE_RMSLE.

INPUT_LABEL_COLS

Syntaxe

INPUT_LABEL_COLS = string_array

Description

Nom de la colonne d'étiquette dans les données d'entraînement. La valeur par défaut est "label".

Arguments

string_array est une table (ARRAY) de chaînes (STRING). Les types de modèles AutoML Tables n'acceptent que les valeurs string_array contenant un seul élément.

DATA_SPLIT_COL

Syntaxe

DATA_SPLIT_COL = string_value

Description

Nom de la colonne répartie dans les données d'entraînement. La répartition automatique est effectuée par défaut.

Arguments

string_value est l'une des colonnes des données d'entraînement et doit être une colonne d'horodatage ou de chaîne. Cette colonne est transmise directement à AutoML Tables. Dans une colonne de chaîne, vous spécifiez les lignes à utiliser pour l'entraînement, la validation et le test à l'aide des valeurs TRAIN, VALIDATE, TEST et UNASSIGNED. Pour en savoir plus sur l'utilisation de ces valeurs, consultez la colonne de répartition des données d'AutoML Tables. Les horodatages sont traités comme des colonnes Heures d'AutoML Tables.

Entrées compatibles

L'instruction CREATE MODEL accepte les types de données suivants pour l'étiquette d'entrée et les colonnes de répartition des données.

Types de données compatibles avec les colonnes d'étiquette d'entrée

BigQuery ML est compatible avec différents types de données du langage SQL standard en fonction du type de modèle. Les types de données compatibles avec input_label_cols incluent :

Model type Supported label types
automl_regressor INT64
NUMERIC
BIGNUMERIC
FLOAT64
automl_classifier N'importe quel type de données groupable

Types de données compatibles avec les autres colonnes

Pour les colonnes autres que la colonne d'étiquette, tout type de données groupable est accepté. Le type de colonne BigQuery sera utilisé pour déterminer le type de colonne de caractéristiques dans AutoML Tables.

BigQuery type AutoML type
INT64
NUMERIC
BIGNUMERIC
FLOAT64
NUMERIC ou TIMESTAMP si AutoML Tables détermine qu'il s'agit d'un horodatage UNIX
BOOL CATEGORICAL
STRING
BYTES
Soit CATEGORICAL, soit TEXT, sélectionné automatiquement par AutoML Tables.
TIMESTAMP
DATETIME
TIME
DATE
Soit TIMESTAMP, soit CATEGORICAL, soit TEXT, sélectionné automatiquement par AutoML Tables.

Pour forcer le traitement d'une colonne numérique comme colonne catégorielle, utilisez CAST pour la transformer en chaîne BigQuery. Les tableaux de types compatibles sont autorisés et resteront des tableaux pendant l'entraînement AutoML Tables.

Limites

Les instructions CREATE MODEL pour les modèles AutoML Tables doivent respecter les règles suivantes :

  • Les données d'entrée dans AutoML Tables doivent être comprises entre 1 000 et 100 millions de lignes, et inférieures à 100 Go.
  • À l'heure actuelle, il n'est pas possible d'utiliser AXT et CMEK.
  • Les modèles ne sont pas visibles dans l'UI d'AutoML Tables et ne sont pas disponibles pour les prédictions par lot ou en ligne dans AutoML Tables.

Exemples d'instructions CREATE MODEL

L'exemple suivant crée des modèles nommés mymodel dans mydataset dans votre projet par défaut. Il utilise les données publiques sur les trajets en taxi "nyc-tlc.yellow.trips" disponibles dans BigQuery. L'exécution de la tâche prend environ trois heures, y compris les tâches d'entraînement, de compression du modèle, de transfert de données temporaire (vers AutoML) et de configuration.

Créer le modèle

CREATE OR REPLACE MODEL project_id.mydataset.mymodel
       OPTIONS(model_type='AUTOML_REGRESSOR',
               input_label_cols=['fare_amount'],
               budget_hours=1.0)
AS SELECT
  (tolls_amount + fare_amount) AS fare_amount,
  pickup_longitude,
  pickup_latitude,
  dropoff_longitude,
  dropoff_latitude,
  passenger_count
FROM `nyc-tlc.yellow.trips`
WHERE ABS(MOD(FARM_FINGERPRINT(CAST(pickup_datetime AS STRING)), 100000)) = 1
AND
  trip_distance > 0
  AND fare_amount >= 2.5 AND fare_amount <= 100.0
  AND pickup_longitude > -78
  AND pickup_longitude < -70
  AND dropoff_longitude > -78
  AND dropoff_longitude < -70
  AND pickup_latitude > 37
  AND pickup_latitude < 45
  AND dropoff_latitude > 37
  AND dropoff_latitude < 45
  AND passenger_count > 0

Exécuter des prédictions

SELECT * FROM ML.PREDICT(MODEL project_id.mydataset.mymodel, (
    SELECT * FROM `nyc-tlc.yellow.trips` LIMIT 100))

Régions où le service est disponible

L'entraînement des modèles AutoML Tables n'est pas accepté dans certaines régions BigQuery ML. Pour obtenir la liste complète des régions et zones multirégionales acceptées, consultez la page Zones.