Instrução CREATE MODEL para treinar modelos do AutoML Tables

Com o AutoML Tables, é possível criar automaticamente modelos de machine learning de última geração em dados estruturados com grande velocidade e escala. Consulte a documentação do AutoML Tables para mais detalhes sobre o tipo de modelo.

Instrução CREATE MODEL para modelos do AutoML Tables

Para treinar um modelo do AutoML Tables no BigQuery, use a instrução CREATE MODEL do BigQuery ML com um dos tipos de modelo do AutoML Tables.

Sintaxe 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

Cria um novo modelo do BigQuery ML no conjunto de dados especificado. Para modelos do AutoML Tables, o BigQuery ML treina e compacta o modelo do AutoML Tables e o converte em um modelo do BigQuery ML. Se o nome do modelo existir, CREATE MODEL retornará um erro.

CREATE MODEL IF NOT EXISTS

Só cria um novo modelo se o modelo não existir atualmente no conjunto de dados especificado.

CREATE OR REPLACE MODEL

Cria um novo modelo e substitui qualquer modelo atual com o mesmo nome no conjunto de dados especificado.

Opções de modelo

Atualmente, o BigQuery ML usa os valores padrão para as opções de treinamento do AutoML Tables, incluindo a divisão automática de dados e a função de otimização padrão.

model_name

model_name é o nome do modelo do BigQuery ML que você está criando ou substituindo. O nome do modelo precisa ser exclusivo por 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
  • letras maiúsculas, 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, preceda o nome do modelo com o ID do projeto no seguinte formato, incluindo os acentos graves:

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

Por exemplo:

`myproject.mydataset.mymodel`

CREATE MODEL é compatível com as seguintes opções:

MODEL_TYPE

Sintaxe

MODEL_TYPE = { 'AUTOML_REGRESSOR' | 'AUTOML_CLASSIFIER' }

Descrição

Especifica o tipo do modelo. Esta opção é obrigatória. Para um modelo de regressão, o tipo deve ser "AUTOML_REGRESSOR" e o tipo da coluna de rótulo deve ser numérico. Para um modelo de classificação, o tipo deve ser "AUTOML_CLASSIFIER" e a coluna de rótulo pode ser uma string ou um número.

BUDGET_HOURS

Sintaxe

BUDGET_HOURS = float64_value

Descrição

Define o orçamento de treinamento do AutoML Tables, especificado em horas. O padrão é 1,0 e precisa estar entre 1,0 e 72,0. Essa opção só pode ser usada se MODEL_TYPE for AUTOML_REGRESSOR ou AUTOML_CLASSIFIER.

Depois de treinar modelos do AutoML Tables, o BigQuery ML compacta o modelo para garantir que ele seja pequeno o suficiente para ser importado, o que pode levar até 50% do tempo de treinamento. O tempo para compactar o modelo não está incluído no tempo de orçamento do treinamento.

Argumentos

float64_value é um FLOAT64.

OPTIMIZATION_OBJECTIVE

Sintaxe

OPTIMIZATION_OBJECTIVE = string_value

Descrição

Define a função do objetivo de otimização a ser usada no treinamento do AutoML Tables. Para regressão, os valores permitidos são: MINIMIZE_RMSE (padrão), MINIMIZE_MAE e MINIMIZE_RMSLE. Para a classificação binária, os valores permitidos são MAXIMIZE_AU_ROC (padrão), MINIMIZE_LOG_LOSS, MAXIMIZE_AU_PRC. Para a classificação multiclasse, o único valor permitido é: MINIMIZE_LOG_LOSS.

Para mais detalhes sobre as funções do objetivo de otimização, consulte a documentação do AutoML Tables.

Argumentos

string_value é um dos seguintes: MAXIMIZE_AU_ROC, MINIMIZE_LOG_LOSS, MAXIMIZE_AU_PRC, MINIMIZE_RMSE, MINIMIZE_MAE ou MINIMIZE_RMSLE.

INPUT_LABEL_COLS

Sintaxe

INPUT_LABEL_COLS = string_array

Descrição

O nome da coluna de rótulo nos dados de treinamento. O padrão é "label".

Argumentos

string_array é um ARRAY de STRINGs. Os tipos de modelo do AutoML Tables são compatíveis somente com valores string_array que contêm um elemento.

DATA_SPLIT_COL

Sintaxe

DATA_SPLIT_COL = string_value

Descrição

O nome da coluna de divisão nos dados de treinamento. O padrão é a divisão automática.

Argumentos

string_value é uma das colunas nos dados de treinamento e precisa ser uma coluna de carimbo de data/hora ou de string. Essa coluna será transferida diretamente para o AutoML Tables. Em uma coluna de string, você especifica linhas a serem usadas para treinamento, validação e testes usando os valores TRAIN, VALIDATE, TEST e UNASSIGNED. Para mais informações sobre como usar esses valores, consulte a coluna de divisão de dados do AutoML Tables. Os carimbos de data/hora serão tratados como uma coluna de tempo do AutoML Tables.

Entradas compatíveis

A instrução CREATE MODEL é compatível com os seguintes tipos de dados para colunas de entrada de rótulo e de divisão de dados.

Tipos de dados aceitos para colunas de rótulo de entrada

O BigQuery ML é compatível com diferentes tipos de dados SQL padrão, dependendo do tipo de modelo. Os tipos de dados compatíveis com input_label_cols incluem:

Model type Supported label types
automl_regressor INT64
NUMERIC
BIGNUMERIC
FLOAT64
automl_classifier Qualquer tipo de dados agrupável

Tipos de dados compatíveis com outras colunas

Para colunas que não sejam a de rótulo, qualquer tipo de dados agrupável é compatível. O tipo de coluna do BigQuery será usado para determinar o tipo de coluna de atributo no AutoML Tables.

BigQuery type AutoML type
INT64
NUMERIC
BIGNUMERIC
FLOAT64
NUMERIC ou TIMESTAMP se o AutoML Tables determinar que é um carimbo de data/hora Unix
BOOL CATEGORICAL
STRING
BYTES
CATEGORICAL ou TEXT selecionado automaticamente pelo AutoML Tables.
TIMESTAMP
DATETIME
TIME
DATE
TIMESTAMP, CATEGORICAL ou TEXT selecionado automaticamente pelo AutoML Tables.

Para forçar que uma coluna numérica seja tratada como categórica, faça o CAST dela para uma string do BigQuery. Matrizes de tipos compatíveis são permitidas e permanecerão matrizes durante o treinamento do AutoML Tables.

Limitações

As instruções CREATE MODEL para modelos do AutoML Tables precisam obedecer às seguintes regras:

  • Os dados de entrada para o AutoML Tables precisam estar entre 1.000 e 100 milhões de linhas e ter menos de 100 GB.
  • No momento, o AXT e o CMEK não estão disponíveis.
  • Os modelos não são visíveis na IU do AutoML Tables e não estão disponíveis para previsões on-line ou em lote no AutoML Tables.

Exemplos de CREATE MODEL

O exemplo a seguir cria modelos denominados mymodel em mydataset no seu projeto padrão. Ele usa os dados públicos de viagens de táxi "nyc-tlc.yellow.trips" disponíveis no BigQuery. O job leva aproximadamente três horas para ser concluído, incluindo treinamento, compactação de modelo, movimentação temporária de dados (para o AutoML) e tarefas de configuração.

Criar o 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

Executar previsões

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

Regiões compatíveis

O treinamento de modelos do AutoML Tables não é compatível com todas as regiões do BigQuery ML. Para ver uma lista completa de regiões e multirregiões compatíveis, consulte a página Locais.