Declaración CREATE MODEL para entrenar modelos de AutoML Tables

AutoML Tables te permite compilar de forma automática modelos de aprendizaje automático de vanguardia en datos estructurados a gran velocidad y escala. Consulta la documentación de AutoML Tables para obtener más detalles sobre el tipo de modelo.

Declaración CREATE MODEL para modelos de AutoML Tables

Para entrenar un modelo de AutoML Tables dentro de BigQuery, usa la declaración CREATE MODEL de BigQuery ML con uno de los tipos de modelo de AutoML Tables.

Sintaxis 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 ]
[AS query_statement];

CREATE MODEL

Crea un modelo nuevo de BigQuery ML en el conjunto de datos especificado. Para los modelos de AutoML Tables, BigQuery ML entrena y comprime el modelo de AutoML Tables y lo convierte en un modelo de BigQuery ML. Si el nombre del modelo existe, CREATE MODEL muestra un error.

CREATE MODEL IF NOT EXISTS

Crea un modelo nuevo solo si el modelo no existe en la actualidad en el conjunto de datos especificado.

CREATE OR REPLACE MODEL

Crea un modelo nuevo y reemplaza los modelos existentes con el mismo nombre en el conjunto de datos especificado.

Opciones de modelos

En la actualidad, BigQuery ML usa los valores predeterminados para las opciones de entrenamiento de AutoML Tables, incluida la división automática de datos y la función de optimización predeterminada.

model_name

model_name es el nombre del modelo de BigQuery ML que estás creando o reemplazando. El nombre del modelo debe ser único por 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. Un nombre de modelo puede contener lo siguiente:

  • Hasta 1,024 caracteres
  • Letras en mayúscula o minúscula, números y guiones bajos

model_name no distingue entre mayúsculas y minúsculas.

Si no tienes un proyecto predeterminado configurado, antepone 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`

CREATE MODEL admite las siguientes opciones:

MODEL_TYPE

Sintaxis

MODEL_TYPE = { 'AUTOML_REGRESSOR' | 'AUTOML_CLASSIFIER' }

Descripción

Especifica el tipo de modelo. Esta opción es obligatoria. Para un modelo de regresión, el tipo debe ser “AUTOML_REGRESSOR” y el tipo de columna de etiqueta debe ser numérico. Para un modelo de clasificación, el tipo debe ser “AUTOML_CLASSIFIER” y la columna de etiqueta puede ser una string o un valor numérico.

BUDGET_HOURS

Sintaxis

BUDGET_HOURS = float64_value

Descripción

Establece el presupuesto de entrenamiento para AutoML Tables, que se especifica en horas. El valor predeterminado es 1.0 y debe estar entre 1.0 y 72.0. Esta opción solo se puede usar si MODEL_TYPE es AUTOML_REGRESSOR o AUTOML_CLASSIFIER.

Después de entrenar modelos de AutoML Tables, BigQuery ML comprime el modelo a fin de que sea lo suficientemente pequeño como para importarlo, lo que puede demorar hasta el 50% del tiempo de entrenamiento. El tiempo para comprimir el modelo no se incluye en el tiempo del presupuesto de entrenamiento.

Argumentos

float64_value es un FLOAT64.

OPTIMIZATION_OBJECTIVE

Sintaxis

OPTIMIZATION_OBJECTIVE = string_value

Descripción

Configura la función de objetivo de optimización que se usará para el entrenamiento de AutoML Tables. Para la regresión, los valores permitidos son: MINIMIZE_RMSE (predeterminado), MINIMIZE_MAE y MINIMIZE_RMSLE. Para la clasificación binaria, los valores permitidos son MAXIMIZE_AU_ROC (predeterminado), MINIMIZE_LOG_LOSS y MAXIMIZE_AU_PRC. Para la clasificación multiclase, el único valor permitido es MINIMIZE_LOG_LOSS.

Para obtener más detalles sobre las funciones del objetivo de optimización, consulta la documentación de AutoML Tables.

Argumentos

string_value es uno de los siguientes: MAXIMIZE_AU_ROC, MINIMIZE_LOG_LOSS, MAXIMIZE_AU_PRC, MINIMIZE_RMSE, MINIMIZE_MAE o MINIMIZE_RMSLE.

INPUT_LABEL_COLS

Sintaxis

INPUT_LABEL_COLS = string_array

Descripción

El nombre de la columna de etiqueta en los datos de entrenamiento. La configuración predeterminada es “label”.

Argumentos

string_array es un ARRAY de STRING. Los tipos de modelo de AutoML Tables solo admiten los valores string_array que contienen un elemento.

Entradas admitidas

La declaración CREATE MODEL admite los siguientes tipos de datos para etiquetas de entrada y columnas de división de datos.

Tipos de datos admitidos para columnas de etiquetas de entrada

BigQuery ML admite diferentes tipos de datos de SQL estándar según el tipo de modelo. Estos son los tipos de datos admitidos para input_label_cols:

Model type Supported label types
automl_regressor INT64
NUMERIC
FLOAT64
automl_classifier Cualquier tipo de datos agrupables

Para las columnas que no sean la columna de etiquetas, se admite cualquier tipo de datos agrupables.

Limitaciones

Las declaraciones CREATE MODEL para los modelos de AutoML Tables deben cumplir con las siguientes reglas:

  • Los datos de entrada a AutoML Tables deben tener entre 1,000 y 100 millones de filas y no deben superar los 100 GB.
  • En la actualidad, no se admiten las entradas de arreglo cuando se entrenan modelos de AutoML Tables a través de BigQuery ML.
  • AXT y CMEK no son compatibles en la actualidad.
  • Los modelos no son visibles en la IU de AutoML Tables y no están disponibles para las predicciones en línea o por lotes en AutoML Tables.

Ejemplos de CREATE MODEL

En el siguiente ejemplo, se crean modelos llamados mymodel en mydataset en el proyecto predeterminado. Usa los datos públicos de viajes en taxi de “nyc-tlc.yellow.trips” disponibles en BigQuery. El trabajo demora alrededor de 3 horas en completarse, lo que incluye el entrenamiento, la compresión del modelo, el movimiento temporal de datos (a AutoML) y las tareas de configuración.

Crea el modelo

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

Ejecuta predicciones

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

Regiones admitidas

El entrenamiento de modelos de AutoML Tables no es compatible con todas las regiones de BigQuery ML. Para obtener una lista completa de las regiones y multirregiones compatibles, consulta la página Ubicaciones.